org.apache.cassandra.db.commitlog

## Class AbstractCommitLogService

- java.lang.Object
- - org.apache.cassandra.db.commitlog.AbstractCommitLogService

-     public abstract class AbstractCommitLogService
      extends java.lang.Object

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.util.concurrent.Semaphore` | `haveWork`
    `protected long` | `lastSyncedAt`
    `protected java.util.concurrent.atomic.AtomicLong` | `pending`
    `protected WaitQueue` | `syncComplete`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `awaitTermination()`
    `void` | `finishWriteFor(org.apache.cassandra.db.commitlog.CommitLogSegment.Allocation alloc)` Block for @param alloc to be sync'd as necessary, and handle bookkeeping
    `long` | `getCompletedTasks()`
    `long` | `getPendingTasks()`
    `protected abstract void` | `maybeWaitForSync(org.apache.cassandra.db.commitlog.CommitLogSegment.Allocation alloc)`
    `WaitQueue.Signal` | `requestExtraSync()` Sync immediately, but don't block for the sync to cmplete
    `void` | `restartUnsafe()` FOR TESTING ONLY
    `void` | `shutdown()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### lastSyncedAt

          protected volatile long lastSyncedAt

    - #### pending

          protected final java.util.concurrent.atomic.AtomicLong pending

    - #### syncComplete

          protected final WaitQueue syncComplete

    - #### haveWork

          protected final java.util.concurrent.Semaphore haveWork

  - ### Method Detail

    - #### finishWriteFor

          public void finishWriteFor(org.apache.cassandra.db.commitlog.CommitLogSegment.Allocation alloc)

      Block for @param alloc to be sync'd as necessary, and handle bookkeeping

    - #### maybeWaitForSync

          protected abstract void maybeWaitForSync(org.apache.cassandra.db.commitlog.CommitLogSegment.Allocation alloc)

    - #### requestExtraSync

          public WaitQueue.Signal requestExtraSync()

      Sync immediately, but don't block for the sync to cmplete

    - #### shutdown

          public void shutdown()

    - #### restartUnsafe

          public void restartUnsafe()

      FOR TESTING ONLY

    - #### awaitTermination

          public void awaitTermination()
                                throws java.lang.InterruptedException

      Throws:
        `java.lang.InterruptedException`

    - #### getCompletedTasks

          public long getCompletedTasks()

    - #### getPendingTasks

          public long getPendingTasks()

Copyright © 2018 The Apache Software Foundation