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,
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
getMyAddress
public Address getMyAddress()
Copyright © 2010 JBoss, a division of Red Hat. All Rights Reserved.