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.UncaughtExceptionHandlerNested 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 intused by tests to get the snapcountvoidprocessRequest(Request request) voidrun()static voidsetSnapCount(int count) used by tests to check for changing snapcountsstatic voidsetSnapSizeInBytes(long size) used by tests to check for changing snapcountsvoidshutdown()Methods inherited from class org.apache.zookeeper.server.ZooKeeperCriticalThread
handleExceptionMethods 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:
shutdownin interfaceRequestProcessor
-
processRequest
- Specified by:
processRequestin interfaceRequestProcessor
-