Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Write ordering constraints, and how these can be used to achieve some of the Durability in ACID without needing fsync()

Background on how filing systems work
Write ordering data and durability: why does it matter?

ACID stands for Atomic Consistent Isolated Durable, and it is a key requirement for database implementations which manage data you don't want to lose, which tends to be a common use case in databases. Whilst achieving all four is non-trivial, achieving Durability is simultaneously both the easiest and the hardest of the four. This is because the easy way of ensuring durability is to always wait for each write to reach non-volatile storage, yet such a naive solution is typically exceptionally slow. Achieving performant data durability is without doubt a wicked hard problem in computer science.

Because a majority of users of Boost.AFIO are going to be people needing some form of data persistence guarantees, this section is a short essay on the current state of data persistence on various popular platforms. Any errors or omissions, both of which are probable, are entirely the fault of this author Niall Douglas. Note also that the forthcoming information was probably correct around the winter of 2014, and it highly likely to become less correct over time as filing system implementations evolve.


PrevUpHomeNext