org.infinispan.distribution
Class JoinTask
java.lang.Object
org.infinispan.distribution.RehashTask
org.infinispan.distribution.JoinTask
- All Implemented Interfaces:
- Callable<Void>
public class JoinTask
- extends RehashTask
5. JoinTask: This is a PULL based rehash. JoinTask is kicked off on the JOINER. 5.1. Obtain OLD_CH from
coordinator (using GetConsistentHashCommand) 5.2. Generate TEMP_CH (which is a union of OLD_CH and NEW_CH) 5.3.
Broadcast TEMP_CH across the cluster (using InstallConsistentHashCommand) 5.4. Log all incoming writes/txs and
respond with a positive ack. 5.5. Ignore incoming reads, forcing callers to check next owner of data. 5.6. Ping
each node in OLD_CH's view and ask for state (PullStateCommand) 5.7. Apply state received from 5.6. 5.8. Drain tx
log and apply, stop logging writes once drained. 5.9. Reverse 5.5. 5.10. Broadcast NEW_CH so this is applied (using
InstallConsistentHashCommand) 5.11. Loop through data container and unicast invalidations for keys that "could" exist
on OLD_CH and not in NEW_CH
- Since:
- 4.0
- Author:
- Manik Surtani
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
JoinTask
public JoinTask(RpcManager rpcManager,
CommandsFactory commandsFactory,
Configuration conf,
TransactionLogger transactionLogger,
DataContainer dataContainer,
DistributionManagerImpl dmi)
performRehash
protected void performRehash()
throws Exception
- Specified by:
performRehash
in class RehashTask
- Throws:
Exception
getLog
protected Log getLog()
- Specified by:
getLog
in class RehashTask
Copyright © 2010 JBoss, a division of Red Hat. All Rights Reserved.