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

Reply via email to