| ▲ | dangoodmanUT a day ago | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
> 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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | procaryote a day ago | parent | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Pretty much... paranoid() seems to be the real durable() which isn't a great look for a database project. Being able to recover a db without corruption beyound losing the last few writes is a pretty useful feature, and buys a lot of performance, but it would be better to label that clearly, as a reasonable expectation on the durable() preset would be for it to be Durable. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | stingraycharles a day ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Yeah this should be benchmarked against other systems that have flush() disabled. mmap is nice but it doesn’t support durable semantics in the way that we usually mean with databases. if a write is acknowledged it should not be forgotten, which is not what this is. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | nijave 15 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
I give a little leeway to distributed systems that replicate and don't flush since there's a bit of middle ground assuming they're in different fault domains. Garage object storage defaults to that However, this doesn't appear to be the case here... Unsurprisingly, performance goes to crap when sync is enabled. This is pretty old now but has some useful fsync/sec numbers which can be completely divorced from other I/O performance https://www.percona.com/blog/fsync-performance-storage-devic... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | rdtsc 15 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | deepsun a day ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Are we back to MongoDB -- no fsync() but webscale speed? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | random3 10 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Every few years someone pulls this. If you search HN for fsync you can see the trail :) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | Betelbuddy 10 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10 years after MongoDB is back.... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | insanitybit 20 hours ago | parent | prev [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This is surprisingly common, from what I can tell. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||