Class InMemoryRepository.MemRefDatabase

Enclosing class:
InMemoryRepository

protected class InMemoryRepository.MemRefDatabase extends DfsReftableDatabase
DfsRefDatabase used by InMemoryRepository.
  • Field Details

    • performsAtomicTransactions

      boolean performsAtomicTransactions
  • Constructor Details

    • MemRefDatabase

      protected MemRefDatabase()
      Initialize a new in-memory ref database.
  • Method Details

    • getReftableConfig

      public ReftableConfig getReftableConfig()
      Description copied from class: DfsReftableDatabase
      Get configuration to write new reftables with.
      Overrides:
      getReftableConfig in class DfsReftableDatabase
      Returns:
      configuration to write new reftables with.
    • performsAtomicTransactions

      public boolean performsAtomicTransactions()
      Description copied from class: DfsReftableDatabase
      Whether the database is capable of performing batch updates as atomic transactions.

      If true, by default BatchRefUpdate instances will perform updates atomically, meaning either all updates will succeed, or all updates will fail. It is still possible to turn off this behavior on a per-batch basis by calling update.setAtomic(false).

      If false, BatchRefUpdate instances will never perform updates atomically, and calling update.setAtomic(true) will cause the entire batch to fail with REJECTED_OTHER_REASON.

      This definition of atomicity is stronger than what is provided by ReceivePack. ReceivePack will attempt to reject all commands if it knows in advance some commands may fail, even if the storage layer does not support atomic transactions. Here, atomicity applies even in the case of unforeseeable errors.

      Overrides:
      performsAtomicTransactions in class DfsReftableDatabase
      Returns:
      whether transactions are atomic by default.