4 ms·
Depends on what you are after I guess. Datomic puts the query engine in your application, so you're querying over a built-in cache. This means Datomic could be
by Skinney 12y ago
Depends on what you are after I guess. Datomic puts the query engine in your application, so you're querying over a built-in cache. This means Datomic could be rediculusly fast for often requested data (should always be in cache). Datomic allows you to "travel back in time" as it has built in time management. Writes never blocks reads. All writes are atomic. Datomic supports functions (Java or Clojure) in queries and transactions. There is more, but this was a list of my most liked features.
Of course, Datomic has some drawbacks as well. Like storage space. Datomic never deletes anything, and isn't exactly conservative on storage either. For instance, a timestamp is saved for every value in the database. This allows you to view the database the way it was at any point in time, or tell you exactly when a user changed his password, username or email, but it does have a storage cost. Since Datomic is distributed, you also need a bigger setup (more machines) than with traditional databases.
- AlisdairO 12y agoI know you're not contrasting against PG here, but just to add: writes never block reads in PG either, all writes are atomic, and you can create functions for use in queries. The main USP for Datomic is the way it distributes data, which if you've got the right use case (i.e. you're generally querying over a subset of the data) is really nice.
- iso8859-1 12y agoStandard SQL also supports temporal databases: https://en.wikipedia.org/wiki/SQL:2011#Temporal_support https://en.wikipedia.org/wiki/SQL:2011#Temporal_support