Ambari managed Rolling Upgrade has batch size concept with which multiple hosts are upgraded in parallel. e.g. slave/client components are restarted on multiple hosts in parallel.
However, we should provide support for parallel hosts upgrade that exist on single rack. If client provides location of rack to hosts mapping file location as part of cluster-env property, we should read the mapping and proceed with parallel Rolling Restart on multiple hosts on single rack.
This can significantly improve resiliency and availability as slave/client components that don't belong to single rack won't be restarted in parallel.