Richard Hipp <drh@...> writes: > > Fsync() is a very close approximation to a write barrier since (when it > works as advertised) all pending I/O reaches persistent storage before the > fsync() returns. And since no subsequent I/Os are issued until after the > fsync() returns, the requirements above a clearly satisfied. But it really > isn't necessary to actually wait for content to reach persistent storage as > long as we know that content will not reach persistent storage out-of-order.
There's been some interesting research work by Ed Nightingale from Microsoft Research based on precisely this idea. Its called external synchrony, and the idea is that you dont have to commit something to do unless something external (writing something a a screen, a network packet which depends on the data, some other process reading the file etc) depends on the output. The output can be buffered in memory and later written out in order, without affecting any correctness guarantees. The paper is available at: http://research.microsoft.com/pubs/75317/syncio.pdf. _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users