Hasty Briefsbeta

Bilingual

Jepsen: TigerBeetle 0.16.11

a year ago
  • #database
  • #financial-technology
  • #distributed-systems
  • TigerBeetle is an OLTP database optimized for double-entry accounting, emphasizing safety and speed.
  • It uses the Viewstamped Replication (VR) consensus protocol for Strong Serializable consistency.
  • TigerBeetle's data model is specialized for financial transactions, storing only accounts and transfers.
  • The database is designed for high-contention workloads like central bank switches or brokerages.
  • TigerBeetle employs batching, IO parallelization, and hardware-friendly optimizations for performance.
  • It offers robust fault tolerance models for memory, process, clock, storage, and network faults.
  • TigerBeetle uses deterministic simulation testing (VOPR) to verify safety under various faults.
  • The database supports seamless upgrades by including multiple versions in each binary.
  • TigerBeetle defines an explicit model of time, using logical and physical timestamps with strict monotonicity.
  • Its data model includes immutable accounts and transfers, with specific fields for tracking balances.
  • Operations in TigerBeetle are atomic, with no interactive or mixed read-write transactions.
  • Jepsen testing revealed issues like uninitialized memory access, missing query results, and panic on disk faults.
  • Performance issues include elevated latencies during single-node faults due to the ring replication design.
  • TigerBeetle lacks a safe recovery path for single-node disk failures, though a recovery command is planned.
  • The database's client design retries requests indefinitely, complicating error handling.
  • TigerBeetle's defensive programming includes assertions that crash the process to preserve safety.
  • Future work includes improving timeout semantics, testing upgrades, and membership changes.