Package org.elasticsearch.index.translog
Class TranslogWriter
- java.lang.Object
-
- org.elasticsearch.index.translog.BaseTranslogReader
-
- org.elasticsearch.index.translog.TranslogWriter
-
- All Implemented Interfaces:
Closeable,AutoCloseable,Comparable<BaseTranslogReader>
public class TranslogWriter extends BaseTranslogReader implements Closeable
-
-
Field Summary
Fields Modifier and Type Field Description protected AtomicBooleanclosed-
Fields inherited from class org.elasticsearch.index.translog.BaseTranslogReader
channel, generation, header, path
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Translog.Locationadd(BytesReference data, long seqNo)Add the given bytes to the translog with the specified sequence number; returns the location the bytes were written to.voidclose()TranslogReadercloseIntoReader()Closes this writer and transfers its underlying file channel to a new immutableTranslogReaderstatic TranslogWritercreate(ShardId shardId, String translogUUID, long fileGeneration, Path file, ChannelFactory channelFactory, ByteSizeValue bufferSize, long initialMinTranslogGen, long initialGlobalCheckpoint, LongSupplier globalCheckpointSupplier, LongSupplier minTranslogGenerationSupplier, long primaryTerm, TragicExceptionHolder tragedy, LongConsumer persistedSequenceNumberConsumer)protected voidensureOpen()protected booleanisClosed()org.elasticsearch.index.translog.TranslogSnapshotnewSnapshot()protected voidreadBytes(ByteBuffer targetBuffer, long position)reads bytes at position into the given buffer, filling it.longsizeInBytes()voidsync()write all buffered ops to disk and fsync file.booleansyncNeeded()Returnstrueif there are buffered operations that have not been flushed and fsynced to disk or if the latest global checkpoint has not yet been fsyncedinttotalOperations()-
Methods inherited from class org.elasticsearch.index.translog.BaseTranslogReader
checksummedStream, compareTo, getFirstOperationOffset, getGeneration, getLastModifiedTime, getPrimaryTerm, path, read, readSize, toString
-
-
-
-
Field Detail
-
closed
protected final AtomicBoolean closed
-
-
Method Detail
-
create
public static TranslogWriter create(ShardId shardId, String translogUUID, long fileGeneration, Path file, ChannelFactory channelFactory, ByteSizeValue bufferSize, long initialMinTranslogGen, long initialGlobalCheckpoint, LongSupplier globalCheckpointSupplier, LongSupplier minTranslogGenerationSupplier, long primaryTerm, TragicExceptionHolder tragedy, LongConsumer persistedSequenceNumberConsumer) throws IOException
- Throws:
IOException
-
add
public Translog.Location add(BytesReference data, long seqNo) throws IOException
Add the given bytes to the translog with the specified sequence number; returns the location the bytes were written to.- Parameters:
data- the bytes to writeseqNo- the sequence number associated with the operation- Returns:
- the location the bytes were written to
- Throws:
IOException- if writing to the translog resulted in an I/O exception
-
sync
public void sync() throws IOExceptionwrite all buffered ops to disk and fsync file. Note: any exception during the sync process will be interpreted as a tragic exception and the writer will be closed before raising the exception.- Throws:
IOException
-
syncNeeded
public boolean syncNeeded()
Returnstrueif there are buffered operations that have not been flushed and fsynced to disk or if the latest global checkpoint has not yet been fsynced
-
totalOperations
public int totalOperations()
- Specified by:
totalOperationsin classBaseTranslogReader
-
sizeInBytes
public long sizeInBytes()
- Specified by:
sizeInBytesin classBaseTranslogReader
-
closeIntoReader
public TranslogReader closeIntoReader() throws IOException
Closes this writer and transfers its underlying file channel to a new immutableTranslogReader- Returns:
- a new
TranslogReader - Throws:
IOException- if any of the file operations resulted in an I/O exception
-
newSnapshot
public org.elasticsearch.index.translog.TranslogSnapshot newSnapshot()
- Overrides:
newSnapshotin classBaseTranslogReader
-
readBytes
protected void readBytes(ByteBuffer targetBuffer, long position) throws IOException
Description copied from class:BaseTranslogReaderreads bytes at position into the given buffer, filling it.- Specified by:
readBytesin classBaseTranslogReader- Throws:
IOException
-
ensureOpen
protected final void ensureOpen()
-
close
public final void close() throws IOException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
isClosed
protected final boolean isClosed()
-
-