Class AbstractCommitLogSegmentManager

java.lang.Object
org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager
Direct Known Subclasses:
CommitLogSegmentManagerCDC, CommitLogSegmentManagerStandard

public abstract class AbstractCommitLogSegmentManager extends Object
Performs eager-creation of commit log segments in a background thread. All the public methods are thread safe.
  • Method Details

    • allocate

      public abstract CommitLogSegment.Allocation allocate(Mutation mutation, int size)
      Allocate a segment within this CLSM. Should either succeed or throw.
    • createSegment

      protected CommitLogSegment createSegment()
      Hook to allow segment managers to track state surrounding creation of new segments. Onl perform as task submit to segment manager so it's performed on segment management thread.
    • onDiskSize

      public long onDiskSize()
      Returns:
      the space (in bytes) used by all segment files.
    • stopUnsafe

      public void stopUnsafe(boolean deleteSegments)
      Stops CL, for testing purposes. DO NOT USE THIS OUTSIDE OF TESTS. Only call this after the AbstractCommitLogService is shut down.
    • awaitManagementTasksCompletion

      public void awaitManagementTasksCompletion()
      To be used by tests only. Not safe if mutation slots are being allocated concurrently.
    • shutdown

      public void shutdown()
      Initiates the shutdown process for the management thread.
    • awaitTermination

      public boolean awaitTermination(long timeout, TimeUnit units) throws InterruptedException
      Returns when the management thread terminates.
      Throws:
      InterruptedException
    • getActiveSegments

      public Collection<CommitLogSegment> getActiveSegments()
      Returns:
      a read-only collection of the active commit log segments
    • sync

      public void sync(boolean flush) throws IOException
      Requests commit log files sync themselves, if needed. This may or may not involve flushing to disk.
      Parameters:
      flush - Request that the sync operation flush the file to disk.
      Throws:
      IOException