PostgreSQL's fsync() surprise
PostgreSQL's fsync() surprise
Posted Apr 26, 2018 16:18 UTC (Thu) by ringerc (subscriber, #3071)In reply to: PostgreSQL's fsync() surprise by mjthayer
Parent article: PostgreSQL's fsync() surprise
But it also needs to be able to know reliably that "all data from last successful flush is now fully flushed", so it can make decisions appropriately. Right now it turns out we can't know that.
Nobody really wants a kernel panic or database crash because we can't fsync() some random session table that gets nuked by the app every 15 minutes anyway, after all. In practice that won't happen because the table is usually created UNLOGGED but there are always going to be tables you don't want to lose, but don't want the whole system to grind to a halt over either.
Posted Apr 26, 2018 18:02 UTC (Thu)
by andresfreund (subscriber, #69562)
[Link]
FWIW, I don't agree that that's a useful goal. It'd be nice in theory, but it's not even remotely worth the sort of engineering effort it'd require.
> Nobody really wants a kernel panic or database crash because we can't fsync() some random session table that gets nuked by the app every 15 minutes anyway, after all.
I don't think that's a realistic concern. If your storage fails, you're screwed. Continuing to behave well in the face of failing storage would require a *LOT* of work. We'd need timeouts everywhere, we'd need multiple copies of the data etc.
PostgreSQL's fsync() surprise