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

Reply via email to