org.apache.cassandra.io.util
Class SegmentedFile

java.lang.Object
  extended by org.apache.cassandra.io.util.SegmentedFile
Direct Known Subclasses:
BufferedSegmentedFile, CompressedSegmentedFile, MmappedSegmentedFile

public abstract class SegmentedFile
extends java.lang.Object

Abstracts a read-only file that has been split into segments, each of which can be represented by an independent FileDataInput. Allows for iteration over the FileDataInputs, or random access to the FileDataInput for a given position. The JVM can only map up to 2GB at a time, so each segment is at most that size when using mmap i/o. If a segment would need to be longer than 2GB, that segment will not be mmap'd, and a new RandomAccessFile will be created for each access to that segment.


Nested Class Summary
static class SegmentedFile.Builder
          Collects potential segmentation points in an underlying file, and builds a SegmentedFile to represent it.
 
Field Summary
 long length
           
 long onDiskLength
           
 java.lang.String path
           
 
Constructor Summary
protected SegmentedFile(java.lang.String path, long length, long onDiskLength)
           
 
Method Summary
abstract  void cleanup()
          Do whatever action is needed to reclaim ressources used by this SegmentedFile.
static SegmentedFile.Builder getBuilder(Config.DiskAccessMode mode)
           
static SegmentedFile.Builder getCompressedBuilder()
           
abstract  FileDataInput getSegment(long position)
           
 java.util.Iterator<FileDataInput> iterator(long position, int bufferSize)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

path

public final java.lang.String path

length

public final long length

onDiskLength

public final long onDiskLength
Constructor Detail

SegmentedFile

protected SegmentedFile(java.lang.String path,
                        long length,
                        long onDiskLength)
Method Detail

getBuilder

public static SegmentedFile.Builder getBuilder(Config.DiskAccessMode mode)
Returns:
A SegmentedFile.Builder.

getCompressedBuilder

public static SegmentedFile.Builder getCompressedBuilder()

getSegment

public abstract FileDataInput getSegment(long position)

iterator

public java.util.Iterator<FileDataInput> iterator(long position,
                                                  int bufferSize)
Returns:
An Iterator over segments, beginning with the segment containing the given position: each segment must be closed after use.

cleanup

public abstract void cleanup()
Do whatever action is needed to reclaim ressources used by this SegmentedFile.


toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object


Copyright © 2011 The Apache Software Foundation