← Back to context

Comment by bigtunacan

3 years ago

@ithrow, yeah I know he is clearly biased which is why I don't really agree with him. I do however think it would have helped me to start using/learning before I needed it since the paradigm is so foreign to the relational model that is now second nature.

DynamoDB (and Mongo) is nice, right up until you need those relations. I haven’t found a document oriented database that gives me the consistency guarantees of a RDBMS yet.

  • Would a hybrid key-value & document store, indices on any user defined path, with optional strong consistency DWYW?

  • You must not have looked at MongoDB. We have been delivering fully consistent ACID transactions since 4.0 which shipped several years. Yes, Jepsen did find some issues with the initial release of ACID transactions and yes, we fixed those problems pretty rapidly.

    • > Yes, Jepsen did find some issues with the initial release of ACID transactions (...)

      By "some issues" you mean lost data and violated causal by default.

      https://www.infoq.com/news/2020/05/Jepsen-MongoDB-4-2-6/

      And no, the issues were not fixed. Jepsen pointed out that "the newer MongoDB 4.2.6 has more problems" including “retrocausal transactions”.

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

      From Jepsen's report:

      > Jepsen evaluated MongoDB version 4.2.6, and found that even at the strongest levels of read and write concern, it failed to preserve snapshot isolation. Instead, Jepsen observed read skew, cyclic information flow, duplicate writes, and internal consistency violations.

      5 replies →

  • It's been a long time since I've used Mongo so I don't know if it only supports eventual consistency, but DynamoDB does support transactions and traditional consistency, but it comes at the cost of reduced read throughput.

    DynamoDB also supports relations, but they aren't called relations because they don't resemble anything like relations in traditional relational databases.

    You may already know this, but just to clarify DynamoDB isn't really a document oriented database. It's both a key/value database and a columnar database, so in that sense I'd closer to Redis and Cassandra than Mongo, but there's definitely a lot of misinformation on this front.