|
DotNext.Net.Cluster 6.3.0, .NET 10. I expose a synchronous storage API, so a write must be durable before it returns, or at minimum survive a graceful (SIGTERM) restart. Completion is detected with a waiter completed inside
Questions:
Goal: one cluster per pod that can batch flushes for throughput yet never lose a committed write across a graceful restart. Happy to provide a minimal repro. |
Replies: 3 comments 1 reply
|
Not doing For performance reasons, applied and committed state of a log record are separated. The leader is not interested in |
|
I added test in the commit aea3ec1 to make sure that |
|
Thanks, this fully clarifies it. As an FYI on the use case: I use |
This optimization allows the client to get ACK earlier than
fsync, which is fine, because the log record is replicated and committed to the quorum. This doesn't work well with 1-node setup (which is inappropriate for production clusters). In other words,WriteAheadLogguarantee the durability of the last write while the whole cluster alive. Then the whole cluster is crashed,WriteAheadLogcan recover from some safe point, which is not the last write.