4 ms·
We took the tradeoff in our product due to the strong performance upside. Our reasoning goes something like - whatever happened approximately at the edge of th
by bob1029 4y ago
We took the tradeoff in our product due to the strong performance upside.
Our reasoning goes something like - whatever happened approximately at the edge of the power-loss abyss is considered part of the explosion. We have never held out hope that we'd be able to get information to disk up until the last microsecond.
Letting WAL roll us back a few transactions is not a huge deal for our customers. Even if this breaks logical consistency with regard to external systems. We have many degrees of "redo" and the back office is always going to be a thing in our line of business.
We file this under the "edge cases not economically worth targeting" bucket and take our 2 ~free orders of magnitude.
- vlovich123 4y agoAre you sure that those failures modes are the only ones guaranteed? I'd be worried about durability failures that happen due to non-obvious interactions (e.g. committing transaction A, losing transaction B, committing transaction C) or the database getting left in a state where it can't even start.
- bob1029 4y agoWAL enforces serialization semantics at crash recovery time. The only real variable is how many WAL frames made it to disk before the rug pull.