>> >> Interesting, I did a test on a 7200 file and the best I could do was 50 >> commits per second (a simple base/table with only id, journalling off >> and >> no >> extra code since the tool I use has "a repeated query" option with >> accurate >> timing). You mentioned 3 syncs per commit, but I tried to look at the >> log >> of >> Process Monitor for the tool process and I saw only one entry with >> 'FlushBuffersFile' that is as I suppose was a mirror name for >> FlushFileBuffers in winSync of sqlite so probably 3 syncs was a too big >> an >> estimate, wasn't it? In this case 50 commits per second looks reasonable >> limit > > I found the number of 3 syncs some time ago, I can't proofe it > right now. As far as I remeber I simply activated the debug logout put in > sqlite and have seen these syncs. sqlite needs to sync the journal file > once it has copied the pages from the DB, then it needs to sync the > DB file itselve after written pages to the main DB, then it probably needs > to clear and sync the journal file to indicate that the operation is > finished. This sums up to 3 -- but I'm guessing here, maybe DRH is willing > to confirm... :-) > > Note that this handling is changed via PRAGMA synchronous; > > I'm talking about windows, not sure if that applies on unix or mac. > > Marcus >
okay, to avoid that I'm talking nuts I repeated the debug log. The following output is generated by sqlite in debug mode after a "INSERT INTO T VALUES(7);": INSERT COMMAND... LOCK 4072 1 was 0(0) READ 4072 lock=1 LOCK 4072 2 was 1(0) OPEN 4084 C:\batch.db-journal 0xc0000000 ok WRITE 4084 lock=0 WRITE 4084 lock=0 WRITE 4084 lock=0 WRITE 4084 lock=0 LOCK 4072 4 was 2(0) unreadlock = 1 WRITE 4084 lock=0 WRITE 4084 lock=0 WRITE 4084 lock=0 READ 4084 lock=0 SYNC 4084 lock=0 WRITE 4084 lock=0 SYNC 4084 lock=0 WRITE 4072 lock=4 WRITE 4072 lock=4 SYNC 4072 lock=4 CLOSE 4084 CLOSE 4084 ok DELETE "C:\batch.db-journal" ok UNLOCK 4072 to 1 was 4(0) UNLOCK 4072 to 0 was 1(0) INSERT COMMAND END. So my brain isn't that lasy, we count 3 syncs.... :-) When you turn journaling to off you will most likely see less syncs, probably 2 in your case. So that is all in line.. Marcus > >> >> Max Vlasov >> > > > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users