org.apache.cassandra.db
Class ExpiringColumn

java.lang.Object
  extended by org.apache.cassandra.db.Column
      extended by org.apache.cassandra.db.ExpiringColumn
All Implemented Interfaces:
IColumn, OnDiskAtom

public class ExpiringColumn
extends Column

Alternative to Column that have an expiring time. ExpiringColumn is immutable (as Column is). Note that ExpiringColumn does not override Column.getMarkedForDeleteAt, which means that it's in the somewhat unintuitive position of being deleted (after its expiration) without having a time-at-which-it-became-deleted. (Because ttl is a server-side measurement, we can't mix it with the timestamp field, which is client-supplied and whose resolution we can't assume anything about.)


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.cassandra.db.OnDiskAtom
OnDiskAtom.Serializer
 
Field Summary
static int MAX_TTL
           
 
Fields inherited from class org.apache.cassandra.db.Column
name, timestamp, value
 
Fields inherited from interface org.apache.cassandra.db.IColumn
MAX_NAME_LENGTH
 
Constructor Summary
ExpiringColumn(java.nio.ByteBuffer name, java.nio.ByteBuffer value, long timestamp, int timeToLive)
           
ExpiringColumn(java.nio.ByteBuffer name, java.nio.ByteBuffer value, long timestamp, int timeToLive, int localExpirationTime)
           
 
Method Summary
static Column create(java.nio.ByteBuffer name, java.nio.ByteBuffer value, long timestamp, int timeToLive, int localExpirationTime, int expireBefore, IColumnSerializer.Flag flag)
           
 int dataSize()
          the size of user-provided data, not including internal overhead
 boolean equals(java.lang.Object o)
           
 int getLocalDeletionTime()
           
 long getMarkedForDeleteAt()
           
 java.lang.String getString(AbstractType<?> comparator)
           
 int getTimeToLive()
           
 int hashCode()
           
 IColumn localCopy(ColumnFamilyStore cfs)
          clones the column for the row cache, interning column names and making copies of other underlying byte buffers
 IColumn localCopy(ColumnFamilyStore cfs, Allocator allocator)
          clones the column for the memtable, interning column names and making copies of other underlying byte buffers.
 int serializationFlags()
           
 int serializedSize(TypeSizes typeSizes)
           
 void updateDigest(java.security.MessageDigest digest)
           
 void validateFields(CFMetaData metadata)
           
 
Methods inherited from class org.apache.cassandra.db.Column
addColumn, addColumn, create, create, create, create, create, create, diff, getSubColumn, getSubColumns, hasIrrelevantData, isLive, isMarkedForDelete, maxTimestamp, minTimestamp, mostRecentLiveChangeAt, mostRecentNonGCableChangeAt, name, onDiskSerializer, reconcile, reconcile, serializedSizeForSSTable, serializer, timestamp, validateName, value
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAX_TTL

public static final int MAX_TTL
See Also:
Constant Field Values
Constructor Detail

ExpiringColumn

public ExpiringColumn(java.nio.ByteBuffer name,
                      java.nio.ByteBuffer value,
                      long timestamp,
                      int timeToLive)

ExpiringColumn

public ExpiringColumn(java.nio.ByteBuffer name,
                      java.nio.ByteBuffer value,
                      long timestamp,
                      int timeToLive,
                      int localExpirationTime)
Method Detail

create

public static Column create(java.nio.ByteBuffer name,
                            java.nio.ByteBuffer value,
                            long timestamp,
                            int timeToLive,
                            int localExpirationTime,
                            int expireBefore,
                            IColumnSerializer.Flag flag)
Returns:
Either a DeletedColumn, or an ExpiringColumn.

getTimeToLive

public int getTimeToLive()

dataSize

public int dataSize()
Description copied from interface: IColumn
the size of user-provided data, not including internal overhead

Specified by:
dataSize in interface IColumn
Overrides:
dataSize in class Column

serializedSize

public int serializedSize(TypeSizes typeSizes)
Specified by:
serializedSize in interface OnDiskAtom
Overrides:
serializedSize in class Column

updateDigest

public void updateDigest(java.security.MessageDigest digest)
Specified by:
updateDigest in interface OnDiskAtom
Overrides:
updateDigest in class Column

getLocalDeletionTime

public int getLocalDeletionTime()
Specified by:
getLocalDeletionTime in interface OnDiskAtom
Overrides:
getLocalDeletionTime in class Column

localCopy

public IColumn localCopy(ColumnFamilyStore cfs)
Description copied from interface: IColumn
clones the column for the row cache, interning column names and making copies of other underlying byte buffers

Specified by:
localCopy in interface IColumn
Overrides:
localCopy in class Column

localCopy

public IColumn localCopy(ColumnFamilyStore cfs,
                         Allocator allocator)
Description copied from interface: IColumn
clones the column for the memtable, interning column names and making copies of other underlying byte buffers. Unlike the other localCopy, this uses Allocator to allocate values in contiguous memory regions, which helps avoid heap fragmentation.

Specified by:
localCopy in interface IColumn
Overrides:
localCopy in class Column

getString

public java.lang.String getString(AbstractType<?> comparator)
Specified by:
getString in interface IColumn
Overrides:
getString in class Column

getMarkedForDeleteAt

public long getMarkedForDeleteAt()
Specified by:
getMarkedForDeleteAt in interface IColumn
Overrides:
getMarkedForDeleteAt in class Column

serializationFlags

public int serializationFlags()
Specified by:
serializationFlags in interface IColumn
Overrides:
serializationFlags in class Column

validateFields

public void validateFields(CFMetaData metadata)
                    throws MarshalException
Specified by:
validateFields in interface IColumn
Specified by:
validateFields in interface OnDiskAtom
Overrides:
validateFields in class Column
Throws:
MarshalException

equals

public boolean equals(java.lang.Object o)
Overrides:
equals in class Column

hashCode

public int hashCode()
Overrides:
hashCode in class Column


Copyright © 2013 The Apache Software Foundation