org.apache.cassandra.db.index
Class AbstractSimplePerColumnSecondaryIndex

java.lang.Object
  extended by org.apache.cassandra.db.index.SecondaryIndex
      extended by org.apache.cassandra.db.index.PerColumnSecondaryIndex
          extended by org.apache.cassandra.db.index.AbstractSimplePerColumnSecondaryIndex
Direct Known Subclasses:
CompositesIndex, KeysIndex

public abstract class AbstractSimplePerColumnSecondaryIndex
extends PerColumnSecondaryIndex

Implements a secondary index for a column family using a second column family in which the row keys are indexed values, and column names are base row keys.


Field Summary
 
Fields inherited from class org.apache.cassandra.db.index.SecondaryIndex
baseCfs, columnDefs, CUSTOM_INDEX_OPTION_NAME, logger
 
Constructor Summary
AbstractSimplePerColumnSecondaryIndex()
           
 
Method Summary
 void delete(java.nio.ByteBuffer rowKey, IColumn column)
          Delete a column from the index
 java.lang.String expressionString(org.apache.cassandra.thrift.IndexExpression expr)
           
 void forceBlockingFlush()
          Forces this indexes in memory data to disk
protected abstract  AbstractType getExpressionComparator()
           
 ColumnFamilyStore getIndexCfs()
          Allow access to the underlying column family store if there is one
 java.lang.String getIndexName()
           
 long getLiveSize()
          Get current amount of memory this index is consuming (in bytes)
 void init()
          Perform any initialization work
protected abstract  void init(ColumnDefinition columnDef)
           
 void insert(java.nio.ByteBuffer rowKey, IColumn column)
          insert a column to the index
 void invalidate()
          Remove the index and unregisters this index's mbean if one exists
protected abstract  java.nio.ByteBuffer makeIndexColumnName(java.nio.ByteBuffer rowKey, IColumn column)
           
 void reload()
          Reload an existing index following a change to its configuration, or that of the indexed column(s).
 void removeIndex(java.nio.ByteBuffer columnName)
          Delete all files and references to this index
 void truncate(long truncatedAt)
          Truncate all the data from the current index
 void update(java.nio.ByteBuffer rowKey, IColumn col)
          update a column from the index
 
Methods inherited from class org.apache.cassandra.db.index.PerColumnSecondaryIndex
getNameForSystemTable, validate
 
Methods inherited from class org.apache.cassandra.db.index.SecondaryIndex
buildIndexAsync, buildIndexBlocking, createInstance, createSecondaryIndexSearcher, getBaseCfs, getColumnDefs, getIndexComparator, getIndexKeyFor, indexes, isIndexBuilt, setIndexBuilt, setIndexRemoved, validateOptions
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractSimplePerColumnSecondaryIndex

public AbstractSimplePerColumnSecondaryIndex()
Method Detail

init

public void init()
Description copied from class: SecondaryIndex
Perform any initialization work

Specified by:
init in class SecondaryIndex

init

protected abstract void init(ColumnDefinition columnDef)

makeIndexColumnName

protected abstract java.nio.ByteBuffer makeIndexColumnName(java.nio.ByteBuffer rowKey,
                                                           IColumn column)

getExpressionComparator

protected abstract AbstractType getExpressionComparator()

expressionString

public java.lang.String expressionString(org.apache.cassandra.thrift.IndexExpression expr)

delete

public void delete(java.nio.ByteBuffer rowKey,
                   IColumn column)
Description copied from class: PerColumnSecondaryIndex
Delete a column from the index

Specified by:
delete in class PerColumnSecondaryIndex
Parameters:
rowKey - the underlying row key which is indexed
column - all the column info

insert

public void insert(java.nio.ByteBuffer rowKey,
                   IColumn column)
Description copied from class: PerColumnSecondaryIndex
insert a column to the index

Specified by:
insert in class PerColumnSecondaryIndex
Parameters:
rowKey - the underlying row key which is indexed
column - all the column info

update

public void update(java.nio.ByteBuffer rowKey,
                   IColumn col)
Description copied from class: PerColumnSecondaryIndex
update a column from the index

Specified by:
update in class PerColumnSecondaryIndex
Parameters:
rowKey - the underlying row key which is indexed
col - all the column info

removeIndex

public void removeIndex(java.nio.ByteBuffer columnName)
Description copied from class: SecondaryIndex
Delete all files and references to this index

Specified by:
removeIndex in class SecondaryIndex
Parameters:
columnName - the indexed column to remove

forceBlockingFlush

public void forceBlockingFlush()
Description copied from class: SecondaryIndex
Forces this indexes in memory data to disk

Specified by:
forceBlockingFlush in class SecondaryIndex

invalidate

public void invalidate()
Description copied from class: SecondaryIndex
Remove the index and unregisters this index's mbean if one exists

Specified by:
invalidate in class SecondaryIndex

truncate

public void truncate(long truncatedAt)
Description copied from class: SecondaryIndex
Truncate all the data from the current index

Specified by:
truncate in class SecondaryIndex
Parameters:
truncatedAt - The truncation timestamp, all data before that timestamp should be rejected.

getIndexCfs

public ColumnFamilyStore getIndexCfs()
Description copied from class: SecondaryIndex
Allow access to the underlying column family store if there is one

Specified by:
getIndexCfs in class SecondaryIndex
Returns:
the underlying column family store or null

getIndexName

public java.lang.String getIndexName()
Specified by:
getIndexName in class SecondaryIndex
Returns:
The name of the index

getLiveSize

public long getLiveSize()
Description copied from class: SecondaryIndex
Get current amount of memory this index is consuming (in bytes)

Specified by:
getLiveSize in class SecondaryIndex

reload

public void reload()
Description copied from class: SecondaryIndex
Reload an existing index following a change to its configuration, or that of the indexed column(s). Differs from init() in that we expect expect new resources (such as CFS for a KEYS index) to be created by init() but not here

Specified by:
reload in class SecondaryIndex


Copyright © 2013 The Apache Software Foundation