Interface TableTransactionProcessor

All Known Implementing Classes:
ArrayVariableWidthObjectLocalAppendableColumn, BufferVariableWidthObjectLocalAppendableColumn, CharSequenceLocalAppendableColumn, CompressedStringLocalAppendableColumn, DateTimeLocalAppendableColumn, ExternalizableLocalAppendableColumn, FixedWidthObjectCodecLocalAppendableColumn, InstantLocalAppendableColumn, LocalAppendableColumn, LocalAppendableTable, NanosBackedTimeAppendableColumn, SerializableLocalAppendableColumn, StringLocalAppendableColumn, SymbolLocalAppendableColumn, SymbolManagerLocalAppendableColumn, SymbolSetLocalAppendableColumn, VariableWidthObjectCodecLocalAppendableColumn, VariableWidthObjectLocalAppendableColumn

public interface TableTransactionProcessor
Interface for table writing components that support transactions. For purposes of the Deephaven table format, a transaction is an ordered set of rows that must:
  1. Be written consecutively
  2. Be made visible to readers as a unit, or not at all
  3. Be made durable as a unit, or not at all
  • Method Details

    • inTransaction

      boolean inTransaction()
      Returns:
      True if this processor is currently in a transaction, else false
    • startTransaction

      void startTransaction()
      Begin a new transaction. Causes any existing pending transaction to be aborted.
    • abortTransaction

      void abortTransaction()

      Abort the current pending transaction.

      This should not be called if there is no current transaction.

      Throws:
      IllegalStateException - If there is no current transaction
    • finishTransaction

      void finishTransaction()

      Finish the current pending transaction.

      This makes the rows that were part of the transaction eligible to be made visible and durable, but does not in itself make them visible or durable.

      This should not be called if there is no current transaction.

      Throws:
      IllegalStateException - If there is no current transaction