The acknowledgement functions from the commands submitted from the balancer defragmentation policy all run on an executor. Currently, we are using a ThreadClient per callback. We should unify this to do something similar to what the primary only service does.
Since the defragmenter is relying on the fixed executor thread pool that is used by many other components we can't set a default thread client for all the newly spawned thread.