Package org.apache.zookeeper.server
Class SyncRequestProcessor
java.lang.Object
java.lang.Thread
org.apache.zookeeper.server.ZooKeeperThread
org.apache.zookeeper.server.ZooKeeperCriticalThread
org.apache.zookeeper.server.SyncRequestProcessor
- All Implemented Interfaces:
Runnable
,RequestProcessor
This RequestProcessor logs requests to disk. It batches the requests to do
the io efficiently. The request is not passed to the next RequestProcessor
until its log has been synced to disk.
SyncRequestProcessor is used in 3 different cases
1. Leader - Sync request to disk and forward it to AckRequestProcessor which
send ack back to itself.
2. Follower - Sync request to disk and forward request to
SendAckRequestProcessor which send the packets to leader.
SendAckRequestProcessor is flushable which allow us to force
push packets to leader.
3. Observer - Sync committed request to disk (received as INFORM packet).
It never send ack back to the leader, so the nextProcessor will
be null. This change the semantic of txnlog on the observer
since it only contains committed txns.
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Thread
Thread.State, Thread.UncaughtExceptionHandler
Nested classes/interfaces inherited from interface org.apache.zookeeper.server.RequestProcessor
RequestProcessor.RequestProcessorException
-
Field Summary
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic int
used by tests to get the snapcountvoid
processRequest
(Request request) void
run()
static void
setSnapCount
(int count) used by tests to check for changing snapcountsstatic void
setSnapSizeInBytes
(long size) used by tests to check for changing snapcountsvoid
shutdown()
Methods inherited from class org.apache.zookeeper.server.ZooKeeperCriticalThread
handleException
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
-
Constructor Details
-
SyncRequestProcessor
-
-
Method Details
-
setSnapCount
public static void setSnapCount(int count) used by tests to check for changing snapcounts- Parameters:
count
-
-
getSnapCount
public static int getSnapCount()used by tests to get the snapcount- Returns:
- the snapcount
-
setSnapSizeInBytes
public static void setSnapSizeInBytes(long size) used by tests to check for changing snapcounts- Parameters:
size
-
-
run
public void run() -
shutdown
public void shutdown()- Specified by:
shutdown
in interfaceRequestProcessor
-
processRequest
- Specified by:
processRequest
in interfaceRequestProcessor
-