8 ms·
When Is “ACID” ACID? Rarely (2013)
- jhugg 11y agoOne of my favorite things about VoltDB, as one of the people who built it, is that its serializable isolation is actually a fundimental part of the architecture. Many of these systems get slower as you turn up the isolation. VoltDB is faster because of isolation. More here: http://voltdb.com/products/featuresbenefits/reasons-behind-voltdb-architecture http://voltdb.com/products/featuresbenefits/reasons-behind-v...
- sargun 11y agoI've heard VoltDB has had a lot of problems with this, actually: https://forum.voltdb.com/showthread.php?552-Nodes-stop-talking-to-each-other-and-form-independent-clusters https://forum.voltdb.com/showthread.php?552-Nodes-stop-talki...
- deleted 11y ago[deleted]
- rbetts 11y agoAs mentioned in my reply to that forum post, VoltDB includes a fault resolution protocol to prevent split brain (VoltDB will trade availability for consistency if required.) a couple of years ago, we decided to to enable that feature by default to maintain the serializability contract as the default choice.
- jhugg 11y agoYeah, as Ryan said, no split brains possible in VoltDB for quite some time. We originally had split brain protection something you could enable for cloud deployments, but figured it wouldn't be worth the tradeoff if you had 5 machines in a rack connected directly. It turns out we made a bad choice and we fixed it. Unless you're speaking of something else you heard about on a more recent version?
- indlebe 11y agoDid anyone else expect this to be an article about the drug LSD and the unreliability of its composition when being purchased at the street level?
- nstart 11y agoI have to admit, for a brief moment when clicking the link, I did expect that.
- yoklov 11y agoNo, but that does sound like it could be an interesting article.
- joshontheweb 11y agoYes because this is a big issue. Many research chemicals are sold as being LSD. Though the effects can be similar, some of them have unknown side effects and a much lower 'overdose' level. It's practically impossible to overdose on LSD but something like NBOME can be dangerous in as little as 10 hits.
- ThreeAs 11y agoNBOME can be dangerous in two hits. And at smaller doses then you've taken previously. It's an interesting series though, very visual.
- sova 11y agoWas incredibly disappointed when this turned out to not be the case. If I Could type out melting letters, this would be the right time.
- bagosm 11y agoWow why does what you say melt and change colors then?... Anyhow, that's what I expected too
- 11y ago
- deleted 11y ago[deleted]
- dgreensp 11y agoIt would be more accurate to say, several SQL databases (that you may or may not have heard) of don't provide full ACID in the strongest sense, while MySQL, Postgres, and MS SQL Server all do if you pass the right flags. In a world plagued by NoDBs, it seems like a very small point.
- AlisdairO 11y agoI found the article pretty poor in general. It equates use of lower isolation levels with use of NoSQL, despite the fact that RC still provides dramatically higher guarantees than a typical NoSQL DB - particularly when you add in the ability to use foreign keys. Further, it counts 'well understood and quantifiable' consistency flaws as a negative, where in fact the whole point is that you can trade off isolation for performance in ways that are easy to mitigate for certain applications. By contrast, the consistency tradeoffs you make when using a NoSQL DBs are clearly rather poorly understood by the community at large.
- ExpiredLink 11y ago> The textbook definition of ACID Isolation is serializability Not really: https://en.wikipedia.org/wiki/ACID https://en.wikipedia.org/wiki/ACID He confuses ACID and isolation levels. Typical internet FUD.
- ak39 11y agoAgreed. Also, Microsoft SQL Server does support snapshot isolation. See: https://msdn.microsoft.com/en-us/library/tcbchxcb(v=vs.110).aspx https://msdn.microsoft.com/en-us/library/tcbchxcb(v=vs.110)....
- strictfp 11y agoBut not for indexes...
- angelbob 11y agoThe link you give defines isolation like this: "The isolation property ensures that the concurrent execution of transactions results in a system state that would be obtained if transactions were executed serially, i.e., one after the other." That sounds awfully close to the definition of serializability he's using.
- shin_lao 11y agoYou know you're being sold something solid if the vendor start talking about multi-phase commit and/or multi-version currency control. If they just splash you ACID all over as a mantra to tell you their database is reliable, be wary. For databases that persist to disk, it is for example not possible to do that asynchronously and be ACID. You need, at the very least, to journal every write before confirming the write. Last but not least, it is not possible to have 100% bulletproof transactions. Even with 2PC, or 3PC. There is always a windows of opportunity for a failure to screw your transaction.
- jeffdavis 11y agoYou have to consider the capabilities in addition to the performance/guarantees trade-off. A key/value store with SERIALIZABLE transactions isn't as useful as a system that allows multiple-statement transactions but only offers REPEATABLE READ.
- jeffdavis 11y agoPostgreSQL uses serializable snapshot isolation (SSI) for the SERIALIZABLE level, which is a relatively new technique that doesn't have much of a performance penalty. READ COMMITTED will probably remain the default forever though, because many applications aren't prepared for serialization failures (which should normally be retried).
- jeffdavis 11y agoEven though some anomalies are possible, SQL does a great job of eliminating some of the trickiest bugs, particularly on the error paths.
- deleted 11y ago[deleted]
- adamconroy 11y agoJunk article. The important vendors are ACID. Just because the default isolation level isn't serializable doesn't warrant the conclusion. One amusing thing is that every now and then there is an article stating that certain relational dbs aren't webscale because the default isolation level is too high.