Ok, how about this! We revert back to old collector that had a lock with explicit synchronize. Yes, it was not optimal, but it works guaranteed. We integrate this one and I open a JIRA to go back to this one, eviscerate Collector into top class, write a bunch of stress tests and put it back in. Overall, I really doubt that it will make a lot of difference given the nature of the migrate keys algorithm and how migrations takes an order of magnitude longer then any type of locking optimization we do here. Cool @danberindei and @wburns ?