|
|
|
|
|
by jmpman
337 days ago
|
|
“Write intent record (async)
Perform operation in memory
Write completion record (async)
Return success to client During recovery, I only apply operations that have both intent and completion records. This ensures consistency while allowing much higher throughput.
“ Does this mean that a client could receive a success for a request, which if the system crashed immediately afterwards, when replayed, wouldn’t necessarily have that request recorded? How does that not violate ACID? |
|
Yup. OP says "the intent record could just be sitting in a kernel buffer", but then the exact same issue applies to the completion record. So confirmation to the client cannot be issued until the completion record has been written to durable storage. Not really seeing the point of this blogpost.