Details
Description
The defragmentation logic in c++ must interact with the balancer to ensure conflicting migrations are not issued. This ticket is to create the background infrastructure to run the defragmentation algorithm and to connect this infrastructure to the balancer.
Phases 1 and 3 of the algorithm do not need to be connected to the balancer rounds because they do not include migrations, so they should be run in a separate thread from the migrations.