Comment

Comment by espeed

This model is somewhat similar to how Datomic models transactions -- Datomic uses immutable datoms and includes a transaction ID with each datom: "A datom consists of an entity, attribute, value and transaction (time)" (http://www.datomic.com/rationale.html).

However, Datomic's design is based on a single, centralized transactor that pushes out all the new transaction information to an index that is distributed to all its clients (peers), whereas NBTA would enable distributed transactors.

See "The Datomic Data Model" http://www.datomic.com/rationale.html#DataModel

From Datomic's FAQ http://www.datomic.com/faq.html ...

How does Datomic provide ACID guarantees?

The transactor serializes all transactions, and each transaction runs against a stable view of the database, and succeed or fail in their entirety. Transactions are not acknowledged until after they are logged in storage. Atomic read/modify/write operations can be performed by database functions, which run on the transactor within the transaction. Note that Datomic can provide ACID guarantees without utilizing read-transactions, nor read locks, due to the presentation to the query engine(s) of the database as an immutable value.

---//---

Rich Hickey on Datomic's design...

Intro to Datomic (12 min) http://www.youtube.com/watch?v=RKcqYZZ9RDY#!

The Design of Datomic (60 min) http://www.infoq.com/presentations/The-Design-of-Datomic

The Datomic Architecture and Data Model (46 min) https://vimeo.com/45136212

parent espeed 13 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton