TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Jepsen: Datomic Pro 1.0.7075

401 pointsby aphyrabout 1 year ago

15 comments

adriancoabout 1 year ago
I was a fly on the wall as this work was being done and it was super interesting to see the discussions. I was also surprised that Jepsen didn’t find critical bugs. Clarifying the docs and unusual (intentional) behaviors was a very useful outcome. It was a very worthwhile confidence building exercise given that we’re running a bank on Datomic…
评论 #40379662 未加载
评论 #40376635 未加载
评论 #40372953 未加载
评论 #40373438 未加载
koito17about 1 year ago
This is the first time I try reading a Jepsen report in-depth, but I really like the clear description of Datomic&#x27;s intra-transaction behavior. I didn&#x27;t realize how little I understood the difference between Datomic&#x27;s transactions and those of SQL databases.<p>One thing that stands out to me is this paragraph<p><pre><code> Datomic used to refer to the data structure passed to d&#x2F;transact as a “transaction”, and to its elements as “statements” or “operations”. Going forward, Datomic intends to refer to this structure as a “transaction request”, and to its elements as “data”. </code></pre> What does this mean for d&#x2F;transact-async and related functionality from the datomic.api namespace? I haven&#x27;t used Datomic in nearly a year. A lot seems to have changed.
评论 #40372705 未加载
jwrabout 1 year ago
This is a fantastic detailed report about a really good database. I&#x27;m also really happy to see the documentation being clarified and updated.<p>As a side note: I so wish Apple would pay for a Jepsen analysis of FoundationDB. I know Aphyr said that &quot;their tests are likely better&quot;, but if indeed Jepsen caught no problems in FoundationDB, it would be a strong data point for another really good database.
评论 #40379513 未加载
poidosabout 1 year ago
Really nice work as always. I love reading these to learn more about these systems, for little tidbits of writing Clojure programs, and for the writing style. Thanks for what you do!
评论 #40375584 未加载
amgregabout 1 year ago
It struck me that Jepsen has identified clear situations leading to invariant violations but Datomic’s approach seems to have been purely to clarify their documentation. Does this essentially mean the Datomic team accepts that the violations will happen, but don’t care?<p>From the article:<p>&gt; From Datomic’s point of view, the grant workload’s invariant violation is a matter of user error. Transaction functions do not execute atomically in sequence. Checking that a precondition holds in a transaction function is unsafe when some other operation in the transaction could invalidate that precondition!
评论 #40371918 未加载
评论 #40371198 未加载
评论 #40375386 未加载
评论 #40371545 未加载
bforsabout 1 year ago
For those who aren&#x27;t aware, the name Jepsen is a play on Carly Rae Jepsen, singer behind &quot;call me maybe&quot;. In my opinion a perfect name for a distributed systems research effort.
评论 #40379524 未加载
评论 #40379525 未加载
thomabout 1 year ago
I’ve not really spent much time with Datomic in anger because it’s super weird, but is any of this surprising? Datomic transactions are basically just batches and I always thought it was single threaded so obviously it doesn’t have a lot of race conditions. It’s slow and safe by design.
评论 #40376101 未加载
评论 #40384463 未加载
stuarthallowayabout 1 year ago
Thanks Kyle! It is evident that our docs were insufficient. Rich and I have written what we hope is clearer, more comprehensive documentation about Datomic’s transaction model. We hope that this can preempt common misconceptions and we welcome all feedback!<p><a href="https:&#x2F;&#x2F;docs.datomic.com&#x2F;transactions&#x2F;model.html" rel="nofollow">https:&#x2F;&#x2F;docs.datomic.com&#x2F;transactions&#x2F;model.html</a>
fulafelabout 1 year ago
The data model in Datomic is pretty intuitive if you&#x27;re familiar with triple stores &#x2F; RDF. But these similarities aren&#x27;t very often referenced in by the docs or online discussions. Is it because people are rarely familiar with those concepts, or is the association with semantic web things considered potentially distracting, (or am I missing something and there are major fundamental differences)?
khalidxabout 1 year ago
Oh, boy, have I been waiting for this one! I&#x27;ve been building my own datomic-like datastore recently and this is going to be useful. Reading it now.<p>I enjoyed the MongoDB analyses. Make sure to check it out too as well as the one for Redis, RethinkDB, and others.<p>Would be great if there was an analysis done for rqlite&#x2F;dqlite or turso&#x2F;libsql at some point in the future.
评论 #40380330 未加载
amlutoabout 1 year ago
I wonder if Datomic’s model has room for something like an “extra-strict” transaction. Such a transaction would operate exactly like an ordinary transaction except that it would also check that no transaction element reads a value or predicate that is modified by a different element. This would be a bit like saying that each element would work like an independent transaction, submitted concurrently, in a more conventional serializable database (with predicate locking!), except that the transaction only commits if <i>all</i> the elements would commit successfully.<p>This would have some runtime cost and would limit the set of things one could accomplish in a transaction. But it would remove a footgun, and maybe this would be a good tradeoff for some users, especially if it could be disabled on a per-transaction basis.
评论 #40374969 未加载
评论 #40374893 未加载
synthcabout 1 year ago
Seem like the design decision to only allow a single thread to handle writes paid off. Datomic is a marvel of good design, I wish I could use it again....
CrazyPyroLinuxabout 1 year ago
aphyr had given some conference talks on previous analyses (available on youtube) that are informative and entertaining
baqabout 1 year ago
aphyr you bastard I&#x27;ve got work to do today.
luc4sdreyerabout 1 year ago
I&#x27;m a bit worried that most of the links on <a href="https:&#x2F;&#x2F;www.datomic.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.datomic.com&#x2F;</a> are broken.
评论 #40376445 未加载