On May 22, 2008, at 9:40 AM, Shawn Wilsher wrote:
> It was mentioned in the bug that opening the file with the O_SYNC flag
> would no longer require fsyncs. Has this been looked into before by
> sqlite?
>
I have a prepared a version of SQLite that uses O_SYNC on the main
database file and its journal and never calls fsync(). I ran this on
SuSE 10.1 x86 and found that preformance was roughly half of what we
got using fsync() (with synchronous=FULL). Here are the numbers:
O_SYNC:
real 13m6.918s
user 0m14.693s
sys 0m22.329s
fsync:
real 7m5.159s
user 0m14.745s
sys 0m11.049s
But versions were compiled with -Os. Gcc version 4.1.0.
Of course, your mileage may vary, but based on the magnitude of the
difference seen above, I'm thinking that O_SYNC is probably a bad idea.
As a point of comparison, the same code compiled with -
DSQLITE_NO_SYNC=1 is between 40 and 70 times faster:
real 0m10.479s
user 0m6.736s
sys 0m3.732s
Oh, what a difference a disk cache makes.....
D. Richard Hipp
[EMAIL PROTECTED]
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users