Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    D

    Daniel Abadi

    dbmsmusings.blogspot.com · Personal blog · on HN since 2009

    Daniel Abadi, a database systems professor, writes about distributed database design, consistency models, and transaction protocols.

    Visit blogHN submissions
    DatabasesDistributed Systems
    What HN says

    HN commenters cite his posts in discussions of Spanner, NewSQL consistency, and distributed transactions, and point to them as further reading on those topics.

    Stats for nerds
    68HN people shared it
    66linked in comments
    2.3Kstory points
    Aug 2025last shared
    2010people per year2025

    Top posts on HN

    1. 1
      NewSQL databases fail to guarantee consistency and I blame Spanner
      8 people · 516 points · first shared 2018 · 301 comments on HN
    2. 2
      It’s Time to Move on from Two Phase Commit
      3 people · 400 points · first shared 2019 · 143 comments on HN
    3. 3
      Do we need a third Apache project for columnar data representation?
      3 people · 242 points · first shared 2017 · 86 comments on HN
    4. 4
      Problems with CAP, and Yahoo’s little known NoSQL system
      16 people · 139 points · first shared 2010 · 17 comments on HN
    5. 5
      Overview of Consistency Levels in Database Systems
      3 people · 116 points · first shared 2019 · 4 comments on HN
    6. 6
      The difference between isolation levels and consistency levels
      2 people · 111 points · first shared 2019 · 10 comments on HN
    7. 7
      Scalable ACID
      1 person · 109 points · first shared 2010 · 29 comments on HN
    8. 8
      Why some NoSQL DBs only let you perform transactions on a single data item
      4 people · 100 points · first shared 2015 · 55 comments on HN
    9. 9
      Why are Oracle and DB2 still on top of TPC-C? A roadmap to end their dominance.
      2 people · 96 points · first shared 2012 · 39 comments on HN
    10. 10
      Why I no longer trust EMC
      1 person · 70 points · first shared 2011 · 36 comments on HN

    What HN people wrote when they linked it

    • twicMar 2019

      FaunaDB uses Calvin, a transaction protocol developed by Daniel Abadi. Their blog post explains it nicely, after a bit of a slow start:

      https://fauna.com/blog/consistency-without-clocks-faunadb-transaction-protocol

      But in summary:

      1. A 'transaction' is a self-contained blob of code which reads input, does deterministic logic, and writes output (so not like a traditional RDBMS transaction, where the application opens a transaction and then interleaves its own logic between reads and writes)

      2. When a transaction arrives, the receiving node runs it, and captures the inputs it read, and the outputs it wrote

      3. The transaction, with its captured inputs and outputs, is written to a global stream of transactions - this is the only point of synchronisation between the nodes

      4. Each node reads the global stream, and writes each transaction into its persistent state; to do that, it repeats all the reads that the transaction did, and checks that they match the captured input - if so, the outputs are committed, and it not, the transaction is aborted, and retried

      The key idea is that because the process is deterministic, the nodes can write transactions to disk independently without drifting out of sync.

      It's pretty neat. And it's exactly what Abadi wrote about a couple of months ago:

      http://dbmsmusings.blogspot.com/2019/01/its-time-to-move-on-from-two-phase.html

      This is also what VoltDB does (which Abadi worked on, along with Michael Stonebraker):

      As an operational store,…

    • jamesblondeOct 2018

      You are correct that they serialize cross-partition transactions. So if your workload has a reasonable percentage of write/update/delete operations it is possible that you will bottleneck on the global coordinator. From this blog https://fauna.com/blog/distributed-acid-transaction-performance, you can get 3300 transactions/second.
      Daniel Abadi claims you can get to 500,000 trans/sec - http://dbmsmusings.blogspot.com/2018/09/newsql-database-systems-are-failing-to.html.

      In any case, there is an open-source in-memory database called NDB (MySQL Cluster) that can get to 100 million write transactions per second. The echo chamber of SV has ignored it, but it's real:
      http://mikaelronstrom.blogspot.com/2015/03/200m-reads-per-second-in-mysql-cluster.html

      NDB has what i call lock-aware programming. When you read a row, you take either a read_lock or a write_lock, as it only supports READ_COMMITTED isolation level. But, it does not serialize cross-partition transactions. Transaction coordinators run independently, and it is up to the developer to ensure consistency by taking either read or write locks on rows.

    • mjbSep 2013

      That depends on what level of book, and what you want to learn from it. On "how real distributed systems are built", there isn't a really good book available in my opinion. I liked The Datacenter as a Computer, but it's scope is fairly narrow and is more focused on global infrastructure issues than software design issues. On the math behind distributed systems, Nancy Lynch's book Distributed Algorithms (http://www.amazon.com/Distributed-Algorithms-Kaufmann-Management-Systems/dp/1558603484) is my favorite, but it's getting to be quite out-of-date.

      Absent a book, there are a lot of great resources online. High Scalability(http://highscalability.com/) has a good amount of quality links to distributed systems content, and some editorial content of varying quality. In general, it's a good site to follow if you're interested in how distributed systems are being used in industry. I also like to follow Aphyr's blog(http://aphyr.com/), Daniel Abadi's blog(http://dbmsmusings.blogspot.com/), and Henry Robinson's blog(http://the-paper-trail.org/blog/) and Peter Bailis's blog(http://www.bailis.org/).

    • surrealizeJul 2012

      That system works by giving up interactive transactions. But the foundationdb page claims to have interactive transactions, so it must be doing something else.

      From Abadi's blog:

      http://dbmsmusings.blogspot.com/2012/05/if-all-these-new-dbms-technologies-are.html

      Calvin requires all transactions to be executed fully server-side and sacrifices the freedom to non-deterministically abort or reorder transactions on-the-fly during execution. In return, Calvin gets scalability, ACID-compliance, and extremely low-overhead multi-shard transactions over a shared-nothing architecture.

      The comments on that post are pretty interesting, too.

      And from the foundationdb features page:

      http://foundationdb.com/#features

      FoundationDB transactions are true interactive sessions, unlike distributed databases that require stored procedures. This means that client code can make an iterative series of reads and writes over the network to execute complex transactions.

    • sb057Dec 2019

      A version which was rejected included the following (non-Apache-affiliated [afaik]) references:

      https://www.xenonstack.com/insights/what-is-apache-arrow/

      https://link.springer.com/chapter/10.1007%2F978-1-4842-1311-7_5

      https://www.biorxiv.org/content/biorxiv/early/2016/08/23/071092.full.pdf

      http://delivery.acm.org/10.1145/3110000/3103003/p138-Maas.pdf

      https://www.theregister.co.uk/2016/02/17/apache_arrow_toplevel_project/

      https://www.cio.com/article/3034279/big-data-gets-a-new-open-source-project-apache-arrow.html

      https://www.infoworld.com/article/3033446/hadoop/apache-arrow-aims-to-speed-access-to-big-data.html

      https://sdtimes.com/apache/guest-view-first-release-apache-arrow/

      https://www.infoq.com/news/2016/12/le-dem-apache-arrow/

      http://dbmsmusings.blogspot.com/2017/10/apache-arrow-vs-parquet-and-orc-do-we.html

      https://dbmsmusings.blogspot.com/2017/10/apache-arrow-vs-parquet-and-orc-do-we.html

    • imchairmanmSep 2019

      Hello, author here. That's a good question and something I had a hard time sorting out as I worked on this.

      I think those fall into a different category confusingly sometimes called column-oriented databases. They're primarily used for analytic-focused tasks and get their name from storing data by column instead of by row (all data in a single column is stored to disk together).

      I didn't include those as a separate category here because they're basically relational databases with a different underlying storage strategy to allow for easier column-based aggregation and so forth.

      My colleague shared this article [1] with me, which definitely helped inform how I distinguished between the two in my head.

      [1] http://dbmsmusings.blogspot.com/2010/03/distinguishing-two-major-types-of_29.html

    Related

    Peter Bailisbailis.org69 people

    ACIDRain: Concurrency-Related Attacks on Database-Backed Web Applications (2017) [pdf]

    Peter Bailis
    Personal · last shared 2026
    Aphyraphyr.com551 people

    Hexing the technical interview (2017)

    Aphyr
    Personal · last shared 2026
    Fauna Blogfauna.com70 people

    Demystifying Database Systems: An Introduction to Transaction Isolation Levels

    Fauna Blog
    Company · last shared 2025
    Marc Brookerbrooker.co.za204 people

    It's always TCP_NODELAY

    Marc Brooker
    Personal · last shared 2026
    The Morning Paperblog.acolyer.org606 people

    Local-first software: you own your data, in spite of the cloud

    The Morning Paper
    Personal · last shared 2026
    Mahesh Balakrishnanmaheshba.bitbucket.io15 people

    Things I learned from building a production database

    Mahesh Balakrishnan
    Personal · last shared 2026
    Small Datumsmalldatum.blogspot.com63 people

    The original LSM paper

    Small Datum
    Personal · last shared 2026
    Joe Hellerstein's Databetadatabeta.wordpress.com21 people

    Anna: A Fast, Scalable, Flexibly Consistent Key-Value Store

    Joe Hellerstein's Databeta
    Personal · last shared 2019