- Unbundled architecture
- A database split so that the transaction component and the data component are separate systems, following Lomet et al. In FDB the split goes further: the transaction system, the log system and the storage system are three independently scalable tiers, and transaction logging is decoupled from the transaction component as well.
- Layer
- A stateless application built on top of FDB that supplies a data model, query capability or other database features that FDB deliberately omits. Layers inherit FDB's strictly serializable transactions, which is what lets a relational store, a document store and a graph store all sit on the same key-value core.
- Sequencer
- The singleton process that assigns every transaction its read version and its commit version, advancing versions at one million per second. Its commit versions define the serial history of the database and are used directly as Log Sequence Numbers.
- Resolver
- A stateless process that performs FDB's optimistic concurrency control by checking a transaction's read ranges against a history of recently modified key ranges. The key space is partitioned across Resolvers and a transaction commits only if every Resolver admits it.
- LogServer
- A member of the log system, acting as a replicated, sharded, distributed persistent queue that stores write-ahead log data for particular StorageServers. A commit is acknowledged only after all k = f+1 designated LogServers report the record durable.
- Storage team
- The group of k = f+1 StorageServers that asynchronously replicate a given shard. A StorageServer belongs to many teams so its data spreads widely, and DataDistributor moves shards off any team that loses a process.
- Known Committed Version (KCV)
- The maximum LSN a given Proxy has confirmed committed, meaning every replica LogServer acknowledged it durable. Proxies piggyback their KCV on log messages, and recovery takes the maximum KCV across LogServers as the previous epoch's end version.
- Recovery Version (RV)
- The chosen end of the redo log for a failed epoch, computed as the minimum Durable Version across the old LogServers. Any data above the RV in old LogServers and StorageServers is discarded, which is FDB's entire substitute for undo log processing.
- Buggification
- A fault injection technique in which the code base itself offers the simulator opportunities to inject unusual but contract-preserving behaviour, such as returning an error from an operation that normally succeeds, delaying a fast operation, or picking an odd tuning parameter. It makes rare states common and ensures no tuning value quietly becomes necessary for correctness.