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 sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users