Writing Datomic in Clojure
Rich Hickey Datomic, Clojure
Writing Datomic in Clojure Rich Hickey Datomic, Clojure Overview - - PowerPoint PPT Presentation
Writing Datomic in Clojure Rich Hickey Datomic, Clojure Overview What is Datomic? Architecture Implementation - Clojure Applied Summary What is Datomic? A new kind of database Bringing data power into the application
Rich Hickey Datomic, Clojure
Queries Transactions Consistency Storage
Server App App App App App App App App
Client-Server
Server App App App App App App App App
Client-Server
Queries Transactions Consistency Storage
Server Server App App App App App App App App
Clustered Client-Server
Server Server App App App App App App App App
Clustered Client-Server
Queries Transactions Consistency Storage
App App App App App App App App Server Server Server
Sharded Client-Server
App App App App App App App App Server Server Server
Sharded Client-Server
Queries Transactions Consistency Storage
App App App App App App App App Server Server Server
Sharded Client-Server
App App App App App App App App Server Server Server
Sharded Client-Server
Queries Transactions Consistency Storage
Queries Transactions Consistency Storage
App App App App App App App App Server Server Server
K/V Store
App App App App App App App App Server Server Server
K/V Store
Queries Transactions Consistency Storage
Queries Transactions Consistency Storage
App App App App App App App App Server Server Server
K/V Store
App App App App App App App App Server Server Server
K/V Store
Queries Transactions Consistency Storage Queries Transactions Consistency Storage
Queries Transactions Consistency Storage
App App App App App App App App Service Storage Distributed
K/V Store
App App App App App App App App Service Storage Distributed
K/V Store
Queries Transactions Consistency Storage Queries Transactions Consistency Storage
App App Service Storage Distributed App App App App App App App App Service Storage Distributed App App App App App App
App App Service Storage Distributed App App App App App App App App Service Storage Distributed App App App App App App
Queries Transactions Consistency Storage
App App Service Storage Distributed App App App App App App App App Service Storage Distributed App App App App App App
Queries Transactions Consistency Storage
App App Service Storage Distributed App App App App App App App App Service Storage Distributed App App App App App App
Transactor
Queries Transactions Consistency Storage
App App Service Storage Distributed App App App App App App App App Service Storage Distributed App App App App App App
Transactor
Queries Transactions Consistency Storage Queries Transactions Consistency Storage
App App Service Storage Distributed App App App App App App App App Service Storage Distributed App App App App App App
Transactor
Queries Transactions Consistency Storage Queries Transactions Consistency Storage
App App Service Storage Distributed App App App App App App App App Service Storage Distributed App App App App App App
Transactor
Queries Transactions Consistency Storage Queries Transactions Consistency Storage
App App Service Storage Distributed App App App App App App App App Service Storage Distributed App App App App App App
Transactor
Queries Transactions Consistency Storage Queries Transactions Consistency Storage
App App Service Storage Distributed App App App App App App App App Service Storage Distributed App App App App App App
Transactor
Queries Transactions Consistency Storage Queries Transactions Consistency Storage
T raditional DB Datomic
Storage Service App Process D Peer Lib b,c,e a,d,e a,b,d D Transactor Indexing Trans- actions Query Cache App Data Data Data segments Live Index Data Segments Data Segments Server Indexing Trans- actions Query App Process I/O App Strings DDL + DML Result Sets Storage cache
ransactions/Rules/Queries/Results are data
alue/T ransaction
ransactions are totally ordered
ransactions are first-class entities
App Process Peer Lib Query Cache App Live Index Comm Transactor AMI Indexing Trans- actions Data Segments Storage Service (Dynamo DB)
SSD SSD
Data Segments Redundant segment storage
Sorted Datoms Index Root
T 42 VeAET AEVT AVET Lucene EAVT Storage Service dirs segs
EAVT t VeAET AEVT db atom Lucene index history live Lucene sinceT asOfT key->id ids id->key keys index being-indexed db value live Storage Hierarchical Cache Roots Memory index (live window) Storage-backed index
+ + + + foo
+ + + + bar
+ + +
+ + + +