org.apache.hadoop.hbase.regionserver
Class SplitLogWorker
java.lang.Object
org.apache.hadoop.hbase.zookeeper.ZooKeeperListener
org.apache.hadoop.hbase.regionserver.SplitLogWorker
- All Implemented Interfaces:
- Runnable
@InterfaceAudience.Private
public class SplitLogWorker
- extends ZooKeeperListener
- implements Runnable
This worker is spawned in every regionserver (should we also spawn one in
the master?). The Worker waits for log splitting tasks to be put up by the
SplitLogManager running in the master and races with other workers
in other serves to acquire those tasks. The coordination is done via
zookeeper. All the action takes place at /hbase/splitlog znode.
If a worker has successfully moved the task from state UNASSIGNED to
OWNED then it owns the task. It keeps heart beating the manager by
periodically moving the task from UNASSIGNED to OWNED state. On success it
moves the task to TASK_DONE. On unrecoverable error it moves task state to
ERR. If it cannot continue but wants the master to retry the task then it
moves the task state to RESIGNED.
The manager can take a task away from a worker by moving the task from
OWNED to UNASSIGNED. In the absence of a global lock there is a
unavoidable race here - a worker might have just finished its task when it
is stripped of its ownership. Here we rely on the idempotency of the log
splitting task for correctness
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SplitLogWorker
public SplitLogWorker(ZooKeeperWatcher watcher,
org.apache.hadoop.conf.Configuration conf,
RegionServerServices server,
SplitLogWorker.TaskExecutor splitTaskExecutor)
SplitLogWorker
public SplitLogWorker(ZooKeeperWatcher watcher,
org.apache.hadoop.conf.Configuration conf,
ServerName serverName,
SplitLogWorker.TaskExecutor splitTaskExecutor)
SplitLogWorker
public SplitLogWorker(ZooKeeperWatcher watcher,
org.apache.hadoop.conf.Configuration conf,
RegionServerServices server,
LastSequenceId sequenceIdChecker)
run
public void run()
- Specified by:
run in interface Runnable
nodeDataChanged
public void nodeDataChanged(String path)
- Overrides:
nodeDataChanged in class ZooKeeperListener
nodeChildrenChanged
public void nodeChildrenChanged(String path)
- Overrides:
nodeChildrenChanged in class ZooKeeperListener
start
public void start()
- start the SplitLogWorker thread
stop
public void stop()
- stop the SplitLogWorker thread
Copyright © 2013 The Apache Software Foundation. All Rights Reserved.