Last semester, Alex Hirschfeld (my son) did a simulation to explore the possible efficiency benefits of the Mayflies concept proposed by Josh McKenty and me.
In the initial phase of the research, he simulated a data center using load curves designed to oversubscribe the resources (he’s still interesting in actual load data). This was sufficient to test the theory and find something surprising: mayflies can really improve scheduling.
Alex found an unexpected benefit comes when you force mayflies to have a controlled “die off.” It allows your scheduler to be much smarter.
Let’s assume that you have a high mayfly ratio (70%), that means every day 10% of your resources would turn over. If you coordinate the time window and feed that information into your scheduler, then it can make much better load distribution decisions. Alex’s simulation showed that this approach basically eliminated hot spots and server over-crowding.
Here’s a snippet of his report explaining the effect in his own words:
On a system that is more consistent and does not have a massive virtual machine through put, Mayflies may not help with balancing the systems load, but with the social engineering aspect, it can increase the stability of the system.
Most of the time, the requests for new virtual machines on a cloud are immutable. They came in at a time and need to be fulfilled in the order of their request. Mayflies has the potential to change that. If a request is made, it has the potential to be added to a queue of mayflies that need to be reinitialized. This creates a queue of virtual machine requests that any load balancing algorithm can work with.
Mayflies can make load balancing a system easier. Knowing the exact size of the virtual machine that is going to be added and knowing when it will die makes load balancing for dynamic systems trivial.