If current server_state is {@link VoldemortState#REBALANCING_MASTER_SERVER}then handle incoming requests in the following way, if the key belongs to a partition that this server is currently stealing. Such a server has what we call a 'proxy node', which is the server which owned that partition as the exact same type of replica in the same zone, as per the old cluster topology. 1. getVersions/get
If the server contains the key locally, then serve it directly. Else, fetch from proxy node, update local storage and then serve it off that. 2. getAll
Similarly, for keys that exist locally, serve it off directly. Else, fetch-update the missing keys from proxyNode and then serve them off local storage. 3. put
First write it to local storage, then submit a async put() to the proxy node, so we can safely abort the rebalancing if we have to. 4. delete
:) :) :)
|
|