Interface WriteableTransaction

All Superinterfaces:
ReadableTransaction

public interface WriteableTransaction extends ReadableTransaction
Represents a writeable transaction on a storage engine.
  • Method Details

    • createTreeIfAbsent

      default void createTreeIfAbsent(TreeName name)
      Ensures that the tree identified by the provided name exists, creating it if it does not.
      Parameters:
      name - the tree name
      Throws:
      ReadOnlyStorageException - If the tree specified by the name does not exist and cannot be created as a result of the underlying storage being opened in read-only mode.
      See Also:
    • deleteTree

      default void deleteTree(TreeName name)
      Deletes the tree identified by the provided name if it exists. Otherwise, do nothing.
      Parameters:
      name - the tree name
      Throws:
      ReadOnlyStorageException - if the underlying storage has been opened in read-only mode.
      See Also:
    • put

      default void put(TreeName treeName, ByteString key, ByteString value)
      Adds a record with the provided key and value, replacing any existing record having the same key.
      Parameters:
      treeName - the tree name. If the tree does not exist, it will be created.
      key - the key of the new record
      value - the value of the new record
      Throws:
      ReadOnlyStorageException - if the underlying storage has been opened in read-only mode.
      See Also:
    • update

      default boolean update(TreeName treeName, ByteString key, UpdateFunction f)
      Atomically adds, deletes, or replaces a record with the provided key according to the new value computed by the update function.
      Parameters:
      treeName - the tree name. If the tree does not exist, it will be created.
      key - the key of the new record
      f - the update function
      Returns:
      true if an update was performed, false otherwise
      Throws:
      ReadOnlyStorageException - if the underlying storage has been opened in read-only mode.
      See Also:
    • delete

      default boolean delete(TreeName treeName, ByteString key)
      Deletes the record with the provided key, in the tree whose name is provided.
      Parameters:
      treeName - the tree name. If the tree does not exist, it will be created.
      key - the key of the record to delete
      Returns:
      true if the record could be deleted, false otherwise
      Throws:
      ReadOnlyStorageException - if the underlying storage has been opened in read-only mode.
      See Also: