Transactions
Tentris is ACID (Atomicity, Consistency, Isolation, Durability) compliant by leveraging Multiversion Concurrency Control.
Each update operation that is sent to the server via an HTTP request is considered to be a single transaction, which transforms the latest existing version of the dataset into a new version. Updates are executed sequentially in a first-come-first-served manner. The HTTP connection must stay open until the server answers an update request. If the connection is prematurely closed, the update operation is aborted and no changes are committed to the database.
Read queries run in parallel to update operations and are guaranteed to observe a single, immutable, and consistent version of the database, which is however unspecified, while they are being evaluated.
Durability is guaranteed through a combination of snapshots and a transaction log. In case of a server crash, the database is rolled back to a working state and the update operations that were received after the point of the snapshot's creation are replayed.