Hi Wintson,
Good question. You can load balance anyway we want using the migration and instrumentation capabilities. It is as simple as implementing a dynamic optimizer.
The existing dynamic optimizer (enabled with -instrument), tries to place bees in a way to reduce inter hive traffic. For your example, if we have new hives to the system and suddenly a few switches migrate to that hive, bees that are managing those switches are migrated accordingly.
This is good for SDN applications, but might not be optimal for other types workloads. For example, when the workload arrives at random on any hive with no predefined mapping. For those cases, the dynamic optimizer is pretty simple to implement. We just need to migrate a few bees to the new hive as soon as the new hive joins the cluster. It shouldn't be more than a few 10 lines of code.
Hope this helps.
Best,
Soheil