Package org.elasticsearch.index.translog
Class TranslogWriter
java.lang.Object
org.elasticsearch.index.translog.BaseTranslogReader
org.elasticsearch.index.translog.TranslogWriter
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,java.lang.Comparable<BaseTranslogReader>
public class TranslogWriter extends BaseTranslogReader implements java.io.Closeable
-
Field Summary
Fields Modifier and Type Field Description protected java.util.concurrent.atomic.AtomicBoolean
closed
Fields inherited from class org.elasticsearch.index.translog.BaseTranslogReader
channel, generation, header, path
-
Method Summary
Modifier and Type Method Description Translog.Location
add(BytesReference data, long seqNo)
Add the given bytes to the translog with the specified sequence number; returns the location the bytes were written to.void
close()
TranslogReader
closeIntoReader()
Closes this writer and transfers its underlying file channel to a new immutableTranslogReader
static TranslogWriter
create(ShardId shardId, java.lang.String translogUUID, long fileGeneration, java.nio.file.Path file, ChannelFactory channelFactory, ByteSizeValue bufferSize, long initialMinTranslogGen, long initialGlobalCheckpoint, java.util.function.LongSupplier globalCheckpointSupplier, java.util.function.LongSupplier minTranslogGenerationSupplier, long primaryTerm, TragicExceptionHolder tragedy, java.util.function.LongConsumer persistedSequenceNumberConsumer, BigArrays bigArrays)
protected void
ensureOpen()
protected boolean
isClosed()
org.elasticsearch.index.translog.TranslogSnapshot
newSnapshot()
protected void
readBytes(java.nio.ByteBuffer targetBuffer, long position)
reads bytes at position into the given buffer, filling it.long
sizeInBytes()
void
sync()
write all buffered ops to disk and fsync file.boolean
syncNeeded()
Returnstrue
if there are buffered operations that have not been flushed and fsynced to disk or if the latest global checkpoint has not yet been fsyncedint
totalOperations()
Methods inherited from class org.elasticsearch.index.translog.BaseTranslogReader
checksummedStream, compareTo, getFirstOperationOffset, getGeneration, getLastModifiedTime, getPrimaryTerm, path, read, readSize, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Field Details
-
closed
protected final java.util.concurrent.atomic.AtomicBoolean closed
-
-
Method Details
-
create
public static TranslogWriter create(ShardId shardId, java.lang.String translogUUID, long fileGeneration, java.nio.file.Path file, ChannelFactory channelFactory, ByteSizeValue bufferSize, long initialMinTranslogGen, long initialGlobalCheckpoint, java.util.function.LongSupplier globalCheckpointSupplier, java.util.function.LongSupplier minTranslogGenerationSupplier, long primaryTerm, TragicExceptionHolder tragedy, java.util.function.LongConsumer persistedSequenceNumberConsumer, BigArrays bigArrays) throws java.io.IOException- Throws:
java.io.IOException
-
add
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:
java.io.IOException
- if writing to the translog resulted in an I/O exception
-
sync
public void sync() throws java.io.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:
java.io.IOException
-
syncNeeded
public boolean syncNeeded()Returnstrue
if 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:
totalOperations
in classBaseTranslogReader
-
sizeInBytes
public long sizeInBytes()- Specified by:
sizeInBytes
in classBaseTranslogReader
-
closeIntoReader
Closes this writer and transfers its underlying file channel to a new immutableTranslogReader
- Returns:
- a new
TranslogReader
- Throws:
java.io.IOException
- if any of the file operations resulted in an I/O exception
-
newSnapshot
public org.elasticsearch.index.translog.TranslogSnapshot newSnapshot()- Overrides:
newSnapshot
in classBaseTranslogReader
-
readBytes
protected void readBytes(java.nio.ByteBuffer targetBuffer, long position) throws java.io.IOExceptionDescription copied from class:BaseTranslogReader
reads bytes at position into the given buffer, filling it.- Specified by:
readBytes
in classBaseTranslogReader
- Throws:
java.io.IOException
-
ensureOpen
protected final void ensureOpen() -
close
public final void close() throws java.io.IOException- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Throws:
java.io.IOException
-
isClosed
protected final boolean isClosed()
-