Class SSTableWriter
- java.lang.Object
-
- org.apache.cassandra.io.sstable.SSTable
-
- org.apache.cassandra.io.sstable.format.SSTableWriter
-
- All Implemented Interfaces:
java.lang.AutoCloseable,Transactional
- Direct Known Subclasses:
BigTableWriter
public abstract class SSTableWriter extends SSTable implements Transactional
This is the API all table writers must implement. TableWriter.create() is the primary way to create a writer for a particular format. The format information is part of the Descriptor.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSSTableWriter.Factorystatic interfaceSSTableWriter.SSTableSizeParametersParameters for calculating the expected size of an sstable.protected classSSTableWriter.TransactionalProxy-
Nested classes/interfaces inherited from interface org.apache.cassandra.utils.concurrent.Transactional
Transactional.AbstractTransactional
-
-
Field Summary
Fields Modifier and Type Field Description protected SerializationHeaderheaderprotected booleanisTransientprotected longkeyCountprotected longmaxDataAgeprotected MetadataCollectormetadataCollectorprotected java.util.Collection<SSTableFlushObserver>observersprotected TimeUUIDpendingRepairprotected longrepairedAtprotected RowIndexEntry.IndexSerializerrowIndexEntrySerializerprotected SSTableWriter.TransactionalProxytxnProxy-
Fields inherited from class org.apache.cassandra.io.sstable.SSTable
components, compression, descriptor, first, last, metadata, optimizationStrategy, TOMBSTONE_HISTOGRAM_BIN_SIZE, TOMBSTONE_HISTOGRAM_SPOOL_SIZE, TOMBSTONE_HISTOGRAM_TTL_ROUND_SECONDS
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedSSTableWriter(Descriptor descriptor, long keyCount, long repairedAt, TimeUUID pendingRepair, boolean isTransient, TableMetadataRef metadata, MetadataCollector metadataCollector, SerializationHeader header, java.util.Collection<SSTableFlushObserver> observers)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidabort()java.lang.Throwableabort(java.lang.Throwable accumulate)abstract RowIndexEntryappend(UnfilteredRowIterator iterator)Appends partition data to this writer.voidclose()java.lang.Throwablecommit(java.lang.Throwable accumulate)static voidcopy(Descriptor tmpdesc, Descriptor newdesc, java.util.Set<Component> components)static SSTableWritercreate(Descriptor descriptor, long keyCount, long repairedAt, TimeUUID pendingRepair, boolean isTransient, int sstableLevel, SerializationHeader header, java.util.Collection<Index> indexes, LifecycleNewTracker lifecycleNewTracker)static SSTableWritercreate(Descriptor descriptor, long keyCount, long repairedAt, TimeUUID pendingRepair, boolean isTransient, SerializationHeader header, java.util.Collection<Index> indexes, LifecycleNewTracker lifecycleNewTracker)static SSTableWritercreate(Descriptor descriptor, java.lang.Long keyCount, java.lang.Long repairedAt, TimeUUID pendingRepair, boolean isTransient, TableMetadataRef metadata, MetadataCollector metadataCollector, SerializationHeader header, java.util.Collection<Index> indexes, LifecycleNewTracker lifecycleNewTracker)static SSTableWritercreate(TableMetadataRef metadata, Descriptor descriptor, long keyCount, long repairedAt, TimeUUID pendingRepair, boolean isTransient, int sstableLevel, SerializationHeader header, java.util.Collection<Index> indexes, LifecycleNewTracker lifecycleNewTracker)protected java.util.Map<MetadataType,MetadataComponent>finalizeMetadata()SSTableReaderfinish(boolean openResult)SSTableReaderfinish(long repairedAt, long maxDataAge, boolean openResult)SSTableReaderfinished()Open the resultant SSTableReader once it has been fully written, and all related state is ready to be finalised including other sstables being written involved in the same operationlonggetEstimatedOnDiskBytesWritten()abstract longgetFilePointer()abstract longgetOnDiskFilePointer()static voidguardCollectionSize(TableMetadata metadata, DecoratedKey partitionKey, Unfiltered unfiltered)static voidhardlink(Descriptor tmpdesc, Descriptor newdesc, java.util.Set<Component> components)abstract voidmark()abstract SSTableReaderopenEarly()Open the resultant SSTableReader before it has been fully writtenabstract SSTableReaderopenFinalEarly()Open the resultant SSTableReader once it has been fully written, but before the _set_ of tables that are being written together as one atomic operation are all readyvoidprepareToCommit()voidreleaseMetadataOverhead()static voidrename(Descriptor tmpdesc, Descriptor newdesc, java.util.Set<Component> components)abstract voidresetAndTruncate()SSTableWritersetMaxDataAge(long maxDataAge)SSTableWritersetOpenResult(boolean openResult)SSTableWritersetRepairedAt(long repairedAt)protected StatsMetadatastatsMetadata()protected abstract SSTableWriter.TransactionalProxytxnProxy()-
Methods inherited from class org.apache.cassandra.io.sstable.SSTable
addComponents, appendTOC, bytesOnDisk, componentsFor, decorateKey, delete, discoverComponentsFor, estimateRowsFromIndex, getAllFilePaths, getBounds, getColumnFamilyName, getComponents, getFilename, getIndexFilename, getKeyspaceName, getMinimalKey, getPartitioner, metadata, readTOC, readTOC, toString, tryComponentFromFilename, tryDescriptorFromFilename, validateRepairedMetadata
-
-
-
-
Field Detail
-
repairedAt
protected long repairedAt
-
pendingRepair
protected TimeUUID pendingRepair
-
isTransient
protected boolean isTransient
-
maxDataAge
protected long maxDataAge
-
keyCount
protected final long keyCount
-
metadataCollector
protected final MetadataCollector metadataCollector
-
rowIndexEntrySerializer
protected final RowIndexEntry.IndexSerializer rowIndexEntrySerializer
-
header
protected final SerializationHeader header
-
txnProxy
protected final SSTableWriter.TransactionalProxy txnProxy
-
observers
protected final java.util.Collection<SSTableFlushObserver> observers
-
-
Constructor Detail
-
SSTableWriter
protected SSTableWriter(Descriptor descriptor, long keyCount, long repairedAt, TimeUUID pendingRepair, boolean isTransient, TableMetadataRef metadata, MetadataCollector metadataCollector, SerializationHeader header, java.util.Collection<SSTableFlushObserver> observers)
-
-
Method Detail
-
txnProxy
protected abstract SSTableWriter.TransactionalProxy txnProxy()
-
create
public static SSTableWriter create(Descriptor descriptor, java.lang.Long keyCount, java.lang.Long repairedAt, TimeUUID pendingRepair, boolean isTransient, TableMetadataRef metadata, MetadataCollector metadataCollector, SerializationHeader header, java.util.Collection<Index> indexes, LifecycleNewTracker lifecycleNewTracker)
-
create
public static SSTableWriter create(Descriptor descriptor, long keyCount, long repairedAt, TimeUUID pendingRepair, boolean isTransient, int sstableLevel, SerializationHeader header, java.util.Collection<Index> indexes, LifecycleNewTracker lifecycleNewTracker)
-
create
public static SSTableWriter create(TableMetadataRef metadata, Descriptor descriptor, long keyCount, long repairedAt, TimeUUID pendingRepair, boolean isTransient, int sstableLevel, SerializationHeader header, java.util.Collection<Index> indexes, LifecycleNewTracker lifecycleNewTracker)
-
create
public static SSTableWriter create(Descriptor descriptor, long keyCount, long repairedAt, TimeUUID pendingRepair, boolean isTransient, SerializationHeader header, java.util.Collection<Index> indexes, LifecycleNewTracker lifecycleNewTracker)
-
mark
public abstract void mark()
-
append
public abstract RowIndexEntry append(UnfilteredRowIterator iterator)
Appends partition data to this writer.- Parameters:
iterator- the partition to write- Returns:
- the created index entry if something was written, that is if
iteratorwasn't empty,nullotherwise. - Throws:
FSWriteError- if a write to the dataFile fails
-
getFilePointer
public abstract long getFilePointer()
-
getOnDiskFilePointer
public abstract long getOnDiskFilePointer()
-
getEstimatedOnDiskBytesWritten
public long getEstimatedOnDiskBytesWritten()
-
resetAndTruncate
public abstract void resetAndTruncate()
-
setRepairedAt
public SSTableWriter setRepairedAt(long repairedAt)
-
setMaxDataAge
public SSTableWriter setMaxDataAge(long maxDataAge)
-
setOpenResult
public SSTableWriter setOpenResult(boolean openResult)
-
openEarly
public abstract SSTableReader openEarly()
Open the resultant SSTableReader before it has been fully written
-
openFinalEarly
public abstract SSTableReader openFinalEarly()
Open the resultant SSTableReader once it has been fully written, but before the _set_ of tables that are being written together as one atomic operation are all ready
-
finish
public SSTableReader finish(long repairedAt, long maxDataAge, boolean openResult)
-
finish
public SSTableReader finish(boolean openResult)
-
finished
public SSTableReader finished()
Open the resultant SSTableReader once it has been fully written, and all related state is ready to be finalised including other sstables being written involved in the same operation
-
prepareToCommit
public final void prepareToCommit()
- Specified by:
prepareToCommitin interfaceTransactional
-
commit
public final java.lang.Throwable commit(java.lang.Throwable accumulate)
- Specified by:
commitin interfaceTransactional
-
abort
public final java.lang.Throwable abort(java.lang.Throwable accumulate)
- Specified by:
abortin interfaceTransactional
-
close
public final void close()
- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfaceTransactional
-
abort
public final void abort()
-
finalizeMetadata
protected java.util.Map<MetadataType,MetadataComponent> finalizeMetadata()
-
statsMetadata
protected StatsMetadata statsMetadata()
-
releaseMetadataOverhead
public void releaseMetadataOverhead()
-
rename
public static void rename(Descriptor tmpdesc, Descriptor newdesc, java.util.Set<Component> components)
-
copy
public static void copy(Descriptor tmpdesc, Descriptor newdesc, java.util.Set<Component> components)
-
hardlink
public static void hardlink(Descriptor tmpdesc, Descriptor newdesc, java.util.Set<Component> components)
-
guardCollectionSize
public static void guardCollectionSize(TableMetadata metadata, DecoratedKey partitionKey, Unfiltered unfiltered)
-
-