Live data from Hacker News

TurboKV: Insanely fast Rust key-value store

github.com

81–90 of 90 posts

Re: TurboKV: Insanely fast Rust key-value store

#83
post #73

Most of these "insanely fast" projects kind of feel like people rediscovering compiled languages after the scripting languages dark ages. Insanely fast was making 8 bit games possible at all.

More or less. I think the use of CPU specific instructions can make an compiled program different than "the rest". Although nowadays some compilers are clever enough to do better than manual optimization.

Re: TurboKV: Insanely fast Rust key-value store

#84
post #74

> DbOptions::durable() > Appended to the WAL without a per-write sync So… it’s not durable? Durable doesn’t mean “survives a process restart”, it means “durably saved to persistent storage”. For example, this “durable” mode wouldn’t survive power loss.

Absolutely. If they just dirty some pages in memory and return back to the client the benchmarks will look "insanely fast". I have nothing against this being a non-default option in a db/kv engine but anything advertising to be durable and not fsyncing by default is something I would stay away from. To me it's like a litmus test of how well the author knows/cares data durability and not destroying users data.

durable() syncs periodically on flush, WAL rotation, and clean close; paranoid() is the sync-before-ack mode. This is clarified in the README, and the benchmarks report all three modes separately. Other KV-stores that you see on the market, do this too. It's a performance tradeoff most applications make. Sync on every write kills every optimization. See the benchmark table for example.

Re: TurboKV: Insanely fast Rust key-value store

#88

> DbOptions::durable() > Appended to the WAL without a per-write sync So… it’s not durable? Durable doesn’t mean “survives a process restart”, it means “durably saved to persistent storage”. For example, this “durable” mode wouldn’t survive power loss.

10 years after MongoDB is back....

https://youtu.be/b2F-DItXtZs

Re: TurboKV: Insanely fast Rust key-value store

#89

> DbOptions::durable() > Appended to the WAL without a per-write sync So… it’s not durable? Durable doesn’t mean “survives a process restart”, it means “durably saved to persistent storage”. For example, this “durable” mode wouldn’t survive power loss.

Every few years someone pulls this. If you search HN for fsync you can see the trail :)

Re: TurboKV: Insanely fast Rust key-value store

#90
post #83
post #73

Most of these "insanely fast" projects kind of feel like people rediscovering compiled languages after the scripting languages dark ages. Insanely fast was making 8 bit games possible at all.

More or less. I think the use of CPU specific instructions can make an compiled program different than "the rest". Although nowadays some compilers are clever enough to do better than manual optimization.

Michael Abrash wrote about such optimizations on the late 90's regarding Pentium versus its predecessors, and then everyone started using Python, Ruby, whatever for full stack applications, beyond plain OS scripting tasks.
Post reply on HN