write locks junit tests pass
subsribes to for proxy puts exposed API in metadatastore that updates multiple metadatakeys "atomically" existing junit tests pass fine TODO add new unit tests to test the listener itself
RebalanceController - Changed default parallelism to "infinite" since scheduler throttles parallelism - Added TODOs for cleanup of scheduler - Added javadoc to document scheduler and its methods - Catch exceptions, log them, re-throw as VoldemmortRebalancingException A ton of white space changes due to futzing with eclipse code formatter preferences. Sorry.
Added RebalanceController.scheduler - limits each node to participating in a single task as either a stealer or donor. - randomizes the order in which tasks are attempted to be scheduled - not a clean implementation, but enough to evaluate.
RebalanceUtils - changed getLatestCluster to examine contents of cluster.xml on different nodes rather than timestamps since timestamps are incomparable across servers. AbstractZonedRebalanceTest - added a specific rebalance test that goes from current -> shuffle and then shuffle -> current. This confirms that rebalance can be invoked repeated times (if need be).