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 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

      public Translog.Location add​(BytesReference data, long seqNo) throws java.io.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 write
      seqNo - 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.IOException
      write 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()
      Returns true 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 class BaseTranslogReader
    • sizeInBytes

      public long sizeInBytes()
      Specified by:
      sizeInBytes in class BaseTranslogReader
    • closeIntoReader

      public TranslogReader closeIntoReader() throws java.io.IOException
      Closes this writer and transfers its underlying file channel to a new immutable TranslogReader
      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 class BaseTranslogReader
    • readBytes

      protected void readBytes​(java.nio.ByteBuffer targetBuffer, long position) throws java.io.IOException
      Description copied from class: BaseTranslogReader
      reads bytes at position into the given buffer, filling it.
      Specified by:
      readBytes in class BaseTranslogReader
      Throws:
      java.io.IOException
    • ensureOpen

      protected final void ensureOpen()
    • close

      public final void close() throws java.io.IOException
      Specified by:
      close in interface java.lang.AutoCloseable
      Specified by:
      close in interface java.io.Closeable
      Throws:
      java.io.IOException
    • isClosed

      protected final boolean isClosed()