Class SyncRequestProcessor

  • All Implemented Interfaces:
    java.lang.Runnable, RequestProcessor

    public class SyncRequestProcessor
    extends ZooKeeperCriticalThread
    implements 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.
    • Field Summary

      • Fields inherited from class java.lang.Thread

        MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static int getSnapCount()
      used by tests to get the snapcount
      void processRequest​(Request request)  
      void run()  
      static void setSnapCount​(int count)
      used by tests to check for changing snapcounts
      static void setSnapSizeInBytes​(long size)
      used by tests to check for changing snapcounts
      void shutdown()  
      • Methods inherited from class java.lang.Thread

        activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Method Detail

      • 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()
        Specified by:
        run in interface java.lang.Runnable
        Overrides:
        run in class java.lang.Thread