org.apache.cassandra.db.commitlog
Class CommitLogAllocator

java.lang.Object
  extended by org.apache.cassandra.db.commitlog.CommitLogAllocator

public class CommitLogAllocator
extends java.lang.Object

Performs the pre-allocation of commit log segments in a background thread. All the public methods are thread safe.


Field Summary
static int TICK_CYCLE_TIME
          The (theoretical) max milliseconds between loop runs to perform janitorial tasks
 
Constructor Summary
CommitLogAllocator()
           
 
Method Summary
 void awaitTermination()
          Returns when the allocator thread terminates.
 long bytesUsed()
           
 void enableReserveSegmentCreation()
          Throws a flag that enables the behavior of keeping at least one spare segment available at all times.
 CommitLogSegment fetchSegment()
          Fetches an empty segment file.
 java.util.Collection<CommitLogSegment> getActiveSegments()
           
 boolean manages(java.lang.String name)
           
 void recycleSegment(CommitLogSegment segment)
          Indicates that a segment is no longer in use and that it should be recycled.
 void recycleSegment(java.io.File file)
          Differs from the above because it can work on any file instead of just existing commit log segments managed by this allocator.
 void resetUnsafe()
          Resets all the segments, for testing purposes.
 void shutdown()
          Initiates the shutdown process for the allocator thread.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TICK_CYCLE_TIME

public static final int TICK_CYCLE_TIME
The (theoretical) max milliseconds between loop runs to perform janitorial tasks

See Also:
Constant Field Values
Constructor Detail

CommitLogAllocator

public CommitLogAllocator()
Method Detail

fetchSegment

public CommitLogSegment fetchSegment()
Fetches an empty segment file.

Returns:
the next writable segment

recycleSegment

public void recycleSegment(CommitLogSegment segment)
Indicates that a segment is no longer in use and that it should be recycled.

Parameters:
segment - segment that is no longer in use

recycleSegment

public void recycleSegment(java.io.File file)
Differs from the above because it can work on any file instead of just existing commit log segments managed by this allocator.

Parameters:
file - segment file that is no longer in use.

bytesUsed

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

manages

public boolean manages(java.lang.String name)
Parameters:
name - the filename to check
Returns:
true if file is managed by this allocator.

enableReserveSegmentCreation

public void enableReserveSegmentCreation()
Throws a flag that enables the behavior of keeping at least one spare segment available at all times.


resetUnsafe

public void resetUnsafe()
Resets all the segments, for testing purposes. DO NOT USE THIS OUTSIDE OF TESTS.


shutdown

public void shutdown()
Initiates the shutdown process for the allocator thread.


awaitTermination

public void awaitTermination()
                      throws java.lang.InterruptedException
Returns when the allocator thread terminates.

Throws:
java.lang.InterruptedException

getActiveSegments

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


Copyright © 2013 The Apache Software Foundation