Comment by cmrdporcupine

17 days ago

Ok, so I had a clanker go look. It actually sounds as bad as the article says. For some reason they apparently lock things while "reducer"s are running.

Robot brain summarized:

"Your historical description may be completely accurate. Your request that the author substantiate the claim was warranted. But the source substantiates it extremely clearly. The blog’s concurrency conclusion is right. Its “hash table,” fairness, “cannot sync WAL,” and “questionable to call it a database” language is deliberately contemptuous and sometimes technically sloppy."

touche

I think you mean it sounds as good as the article says it is. SpacetimeDB is single threaded by design, just like TigerBeetle by the way. The reason we changed from MVCC to single threaded design is that it's simply faster for almost all workloads. Measurably so! With MVCC we were doing more bookkeeping than actual work and perpetually causing cache coherency issues.

"Technically sloppy" is an understatement. The article just gets several things plan incorrect about the durability guarantees, etc.

  • Since we're asking clankers:

    https://chatgpt.com/c/6a886e34-c784-83ea-8298-2d8215f5994a

    https://claude.ai/share/658d00e4-550a-470e-b4a3-7a71a06222cb

    > In particular, these statements should not be relied on:

    > readers wait “up to 0.5 ms” because of parking_lot;

    > all reducers/views are Wasmtime/WASM;

    > reads normally happen through Views;

    > external side effects are merely something reducer authors must avoid;

    > durable/confirmed reads are an unusual opt-in intended only > for non-ephemeral data;

    > 50 ms is the normal/current durability delay;

    > SpacetimeDB has no meaningful replication;

    > the benchmark numbers themselves are simply “not true.”

    • hey tyler, ltns

      yeah my bot also flagged the parking_lot thing :-)

      it was a hit piece with an unprofessional tone. but extraordinary claims get extraordinary responses

      i do think dropping mvcc is an odd choice. do you at least let pure reads proceed while a single writer is active?

      1 reply →