[infinispan-dev] Dynamic data placement
Pedro Ruivo
pruivo at gsd.inesc-id.pt
Thu Jun 28 12:33:49 EDT 2012
Hi all,
In the Cloud-TM project we are working on a technique to change
dynamically the distribution of data across the nodes of an ISPN data
grid. The idea is basically to determine at run-time which are the keys
most accessed by each member/node and move these keys to that nodes. The
ultimate goal is to maximize data locality and reduce the number of
remote get operation.
One of the ingredients of the solution is to define a mechanism that
allows the entire data grid, which is running in a configuration A,
having a given data distribution strategy (determined by the current
hash function implementation), to switch to a configuration B, in which
all nodes have agreed on a new data distribution strategy, and have
completed to relocate accordingly the keys.
Our idea therefore is to add a functionality in ISPN, which allows to
support the dynamic change of the data distribution criterion (namely
the consistent hash function).
To us this mechanism resembles closely the state transfer problem,
except that in the latter case the keys are relocated when a node joins
or leaves the system.
We were thinking to implement this by introducing a command (say,
RedistributedDataCommand) that would take as input a new hash function,
and that would internally trigger a state transfer based on the hash
function passed as input parameter. Another alternative would be to
change the CacheViewControlCommand, allowing it to distributed across
all the nodes the new hash function, as well as to trigger the state
transfer.
The point is that we would like to do this in a clean way, in order to
simplify a possible future integration. We will therefore be grateful
for any feedback that you will be able to provide.
Cheers,
Pedro Ruivo
More information about the infinispan-dev
mailing list