1. 9
  1. 1

    BonsaiDb is a new database aiming to be the most developer-friendly Rust database

    I don’t think the language a database is written in matters that much as a selling point; this seems like RIIR hype. Yes, Rust is good for writing robust software, but you can write buggy software in Rust and bulletproof software in C, like SQLite.

    many popular NoSQL database choices do not offer ACID-compliant storage. An example of where ACID-compliance matters: Storing a customer’s order in a web store. If the method of writing the customer’s order to the database is not ACID-compliant, a power failure could occur between saving the customer’s order and the bytes being persisted to disk. This could result in a user being notified that their order was successfully submitted (and worse, their credit card charged), yet after the power is restored, your database has no record of the transaction.

    This is really misleading. I’m not aware of any real-world database that drops stuff on the floor on a power failure; certainly no db that would be in real-world commercial use like “popular NoSQL databases.” (This is also only a description of Durability.) What I assume they are talking about is transactions — it’s true that document databases tended to do without multi-document transactions, that doesn’t mean they didn’t have atomicity, consistency, isolation or durability. And by now transactions are supported too.

    1. 2

      I’m not aware of any real-world database that drops stuff on the floor on a power failure; certainly no db that would be in real-world commercial use like “popular NoSQL databases.” (This is also only a description of Durability.)

      IIRC MongoDB’s default read / write concern settings are famously prone to do this: https://aphyr.com/posts/322-jepsen-mongodb-stale-reads

      And by now transactions are supported too.

      https://jepsen.io/analyses/mongodb-4.2.6

      To be fair, this was believed to be fixed, but IIRC they claimed to have fixed all these issues prior to the Jepsen evaluation anyway, sooo…