2 ms·
Calling fsync on each commit makes it slower, doesn't it? Its an extra syscall. It depends on the use-case if its needed or not
by hoppp 1y ago
Calling fsync on each commit makes it slower, doesn't it?
Its an extra syscall. It depends on the use-case if its needed or not
- senderista 1y agoYou can enqueue fsync as an op in io_uring, using link flag to sequence it after previous ops and drain flag to ensure no new ops are started until it completes.
- dgshsg 1y agoYou still need to wait for it to complete to report the commit success to the user, the cost of syscall itself is rather minor here.
- senderista 1y agoAvoiding the syscall cost is about maximizing throughput, not minimizing latency. The media's time-to-durability is what it is.
- praptak 1y agoThat's why big DBs do group commits, trading latency for throughput.
- mxey 1y agoIt’s slow because it forces a write to disk. I don’t think the syscall itself matters much.