With the fixes to ISSUE #596 ISSUE #583(6fcabfc80c5bd6cdfa9252cdfc4ed209cc0620a6) which allowed auto replication should honor ensemble placement policy, this patch also removed `targetBookie` from ReplicationWorker which means any node can replicate 'to' any other node in the cluster.
This is great but I believe it exposes an issue. Given that RackAwareEnsemble policy defaults to finding a replacement bookie within the same rack, when a bookie is lost in a rack, the entire cluster will be replicating to the same 'rack'. This puts a lot of pressure on the rack and also takes a longer time to bring up the replication levels. I would think the right fix is to bring back the targetBookie concept (with a configuration parameter) and add placement check predicate on top of it. When this is configured each bookie picks up the work, checks if the ensemble placement policy gets satisfied, if so replicate it, if not move on. Comments? -- Jvrao --- First they ignore you, then they laugh at you, then they fight you, then you win. - Mahatma Gandhi