|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.cassandra.db.AtomicSortedColumns
public class AtomicSortedColumns
A thread-safe and atomic ISortedColumns implementation. Operations (in particular addAll) on this implemenation are atomic and isolated (in the sense of ACID). Typically a addAll is guaranteed that no other thread can see the state where only parts but not all columns have been added. The implementation uses snaptree (https://github.com/nbronson/snaptree), and in particular it's copy-on-write clone operation to achieve its atomicity guarantee. WARNING: removing element through getSortedColumns().iterator() is *not* isolated of other operations and could actually be fully ignored in the face of a concurrent. Don't use it unless in a non-concurrent context. TODO: check the snaptree license make it ok to use
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface org.apache.cassandra.db.ISortedColumns |
---|
ISortedColumns.Factory |
Field Summary | |
---|---|
static ISortedColumns.Factory |
factory
|
Method Summary | |
---|---|
void |
addAll(ISortedColumns cm,
Allocator allocator,
com.google.common.base.Function<IColumn,IColumn> transformation)
Adds the columns without necessarily computing the size delta |
long |
addAllWithSizeDelta(ISortedColumns cm,
Allocator allocator,
com.google.common.base.Function<IColumn,IColumn> transformation,
SecondaryIndexManager.Updater indexer)
Adds all the columns of a given column map to this column map. |
void |
addColumn(IColumn column,
Allocator allocator)
Adds a column to this column map. |
void |
clear()
Clear this column map, removing all columns. |
ISortedColumns |
cloneMe()
Shallow cloning of the column map. |
void |
delete(DeletionInfo info)
|
static ISortedColumns.Factory |
factory()
|
IColumn |
getColumn(java.nio.ByteBuffer name)
Get a column given its name, returning null if the column is not present. |
java.util.SortedSet<java.nio.ByteBuffer> |
getColumnNames()
Returns a set with the names of columns in this column map. |
AbstractType<?> |
getComparator()
|
DeletionInfo |
getDeletionInfo()
|
int |
getEstimatedColumnCount()
|
ISortedColumns.Factory |
getFactory()
Returns the factory used for this ISortedColumns implementation. |
java.util.Collection<IColumn> |
getReverseSortedColumns()
Returns the columns of this column map as a collection. |
java.util.Collection<IColumn> |
getSortedColumns()
Returns the columns of this column map as a collection. |
boolean |
isEmpty()
Returns true if this map is empty, false otherwise. |
boolean |
isInsertReversed()
Returns if this map only support inserts in reverse order. |
java.util.Iterator<IColumn> |
iterator()
|
java.util.Iterator<IColumn> |
iterator(ColumnSlice[] slices)
Returns an iterator over the columns of this map that returns only the matching @param slices. |
void |
maybeResetDeletionTimes(int gcBefore)
|
void |
removeColumn(java.nio.ByteBuffer name)
Remove if present a column by name. |
boolean |
replace(IColumn oldColumn,
IColumn newColumn)
Replace oldColumn if present by newColumn. |
void |
retainAll(ISortedColumns columns)
|
java.util.Iterator<IColumn> |
reverseIterator(ColumnSlice[] slices)
Returns a reversed iterator over the columns of this map that returns only the matching @param slices. |
void |
setDeletionInfo(DeletionInfo newInfo)
|
int |
size()
Returns the number of columns in this map. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final ISortedColumns.Factory factory
Method Detail |
---|
public static ISortedColumns.Factory factory()
public AbstractType<?> getComparator()
getComparator
in interface IIterableColumns
public ISortedColumns.Factory getFactory()
ISortedColumns
getFactory
in interface ISortedColumns
public ISortedColumns cloneMe()
ISortedColumns
cloneMe
in interface ISortedColumns
public DeletionInfo getDeletionInfo()
getDeletionInfo
in interface ISortedColumns
public void delete(DeletionInfo info)
delete
in interface ISortedColumns
public void setDeletionInfo(DeletionInfo newInfo)
setDeletionInfo
in interface ISortedColumns
public void maybeResetDeletionTimes(int gcBefore)
maybeResetDeletionTimes
in interface ISortedColumns
public void retainAll(ISortedColumns columns)
retainAll
in interface ISortedColumns
public void addColumn(IColumn column, Allocator allocator)
ISortedColumns
addColumn
in interface ISortedColumns
public void addAll(ISortedColumns cm, Allocator allocator, com.google.common.base.Function<IColumn,IColumn> transformation)
ISortedColumns
addAll
in interface ISortedColumns
public long addAllWithSizeDelta(ISortedColumns cm, Allocator allocator, com.google.common.base.Function<IColumn,IColumn> transformation, SecondaryIndexManager.Updater indexer)
ISortedColumns
for (Column c : cm)
add(c);
but is potentially faster.
addAllWithSizeDelta
in interface ISortedColumns
public boolean replace(IColumn oldColumn, IColumn newColumn)
ISortedColumns
replace
in interface ISortedColumns
public void removeColumn(java.nio.ByteBuffer name)
ISortedColumns
removeColumn
in interface ISortedColumns
public void clear()
ISortedColumns
clear
in interface ISortedColumns
public IColumn getColumn(java.nio.ByteBuffer name)
ISortedColumns
getColumn
in interface ISortedColumns
public java.util.SortedSet<java.nio.ByteBuffer> getColumnNames()
ISortedColumns
getColumnNames
in interface ISortedColumns
public java.util.Collection<IColumn> getSortedColumns()
ISortedColumns
getSortedColumns
in interface ISortedColumns
public java.util.Collection<IColumn> getReverseSortedColumns()
ISortedColumns
getReverseSortedColumns
in interface ISortedColumns
public int size()
ISortedColumns
size
in interface ISortedColumns
public int getEstimatedColumnCount()
getEstimatedColumnCount
in interface IIterableColumns
public boolean isEmpty()
ISortedColumns
isEmpty
in interface ISortedColumns
public java.util.Iterator<IColumn> iterator()
iterator
in interface java.lang.Iterable<IColumn>
public java.util.Iterator<IColumn> iterator(ColumnSlice[] slices)
ISortedColumns
iterator
in interface ISortedColumns
public java.util.Iterator<IColumn> reverseIterator(ColumnSlice[] slices)
ISortedColumns
reverseIterator
in interface ISortedColumns
public boolean isInsertReversed()
ISortedColumns
isInsertReversed
in interface ISortedColumns
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |