org.apache.cassandra.io.sstable
Class AbstractSSTableSimpleWriter

java.lang.Object
  extended by org.apache.cassandra.io.sstable.AbstractSSTableSimpleWriter
Direct Known Subclasses:
SSTableSimpleUnsortedWriter, SSTableSimpleWriter

public abstract class AbstractSSTableSimpleWriter
extends java.lang.Object


Field Summary
protected  ColumnFamily columnFamily
           
protected  DecoratedKey currentKey
           
protected  SuperColumn currentSuperColumn
           
protected  java.io.File directory
           
protected  CFMetaData metadata
           
protected  NodeId nodeid
           
 
Constructor Summary
AbstractSSTableSimpleWriter(java.io.File directory, CFMetaData metadata, IPartitioner partitioner)
           
 
Method Summary
 void addColumn(java.nio.ByteBuffer name, java.nio.ByteBuffer value, long timestamp)
          Insert a new "regular" column to the current row (and super column if applicable).
 void addCounterColumn(java.nio.ByteBuffer name, long value)
          Insert a new counter column to the current row (and super column if applicable).
 void addExpiringColumn(java.nio.ByteBuffer name, java.nio.ByteBuffer value, long timestamp, int ttl, long expirationTimestampMS)
          Insert a new expiring column to the current row (and super column if applicable).
abstract  void close()
          Close this writer.
protected abstract  ColumnFamily getColumnFamily()
           
protected  SSTableWriter getWriter()
           
 void newRow(java.nio.ByteBuffer key)
          Start a new row whose key is key.
 void newSuperColumn(java.nio.ByteBuffer name)
          Start a new super column with name name.
protected abstract  void writeRow(DecoratedKey key, ColumnFamily columnFamily)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

directory

protected final java.io.File directory

metadata

protected final CFMetaData metadata

currentKey

protected DecoratedKey currentKey

columnFamily

protected ColumnFamily columnFamily

currentSuperColumn

protected SuperColumn currentSuperColumn

nodeid

protected final NodeId nodeid
Constructor Detail

AbstractSSTableSimpleWriter

public AbstractSSTableSimpleWriter(java.io.File directory,
                                   CFMetaData metadata,
                                   IPartitioner partitioner)
Method Detail

getWriter

protected SSTableWriter getWriter()
                           throws java.io.IOException
Throws:
java.io.IOException

newRow

public void newRow(java.nio.ByteBuffer key)
            throws java.io.IOException
Start a new row whose key is key.

Parameters:
key - the row key
Throws:
java.io.IOException

newSuperColumn

public void newSuperColumn(java.nio.ByteBuffer name)
Start a new super column with name name.

Parameters:
name - the name for the super column

addColumn

public void addColumn(java.nio.ByteBuffer name,
                      java.nio.ByteBuffer value,
                      long timestamp)
Insert a new "regular" column to the current row (and super column if applicable).

Parameters:
name - the column name
value - the column value
timestamp - the column timestamp

addExpiringColumn

public void addExpiringColumn(java.nio.ByteBuffer name,
                              java.nio.ByteBuffer value,
                              long timestamp,
                              int ttl,
                              long expirationTimestampMS)
Insert a new expiring column to the current row (and super column if applicable).

Parameters:
name - the column name
value - the column value
timestamp - the column timestamp
ttl - the column time to live in seconds
expirationTimestampMS - the local expiration timestamp in milliseconds. This is the server time timestamp used for actually expiring the column, and as a consequence should be synchronized with the cassandra servers time. If timestamp represents the insertion time in microseconds (which is not required), this should be (timestamp / 1000) + (ttl * 1000).

addCounterColumn

public void addCounterColumn(java.nio.ByteBuffer name,
                             long value)
Insert a new counter column to the current row (and super column if applicable).

Parameters:
name - the column name
value - the value of the counter

close

public abstract void close()
                    throws java.io.IOException
Close this writer. This method should be called, otherwise the produced sstables are not guaranteed to be complete (and won't be in practice).

Throws:
java.io.IOException

writeRow

protected abstract void writeRow(DecoratedKey key,
                                 ColumnFamily columnFamily)
                          throws java.io.IOException
Throws:
java.io.IOException

getColumnFamily

protected abstract ColumnFamily getColumnFamily()


Copyright © 2012 The Apache Software Foundation