Monday, November 3, 2003, 11:22:55 PM, Ben Carlyle wrote:

>> > Can any readers suggest ways that I have not thought of for making
>> > large numbers of non-localized INSERTs go faster?

>> Instead of journaling the old ("undo") pages of idx2, simply record
>> the fact that idx2 is modified (i.e., make a single record in the
>> journal). Upon recovery, noticing that idx2 is modified will cause it
>> to be recreated from the rolled-back data.

> I've been thinking about his for a while and I think the solution, as with 
> many other potential sqlite performance issues is to solve it in the 
> operating system, not sqlite it's self. If you don't have enough bandwidth 
> to your file, raid it. If you want to be able to write a large number of 
> transactions per second using journalling that lazily writes to the 
> database enable data-journalling on your filesystem.

Using the OS or RAID may solve many problems. In this case, though, I
proposed a solution that eliminated all of the index journaling
normally applied by sqlite. In D. Richard Hipp's example there were
30000 writes to (mostly) different pages for idx2. With sqlite
presently this means 60000 pages written, and a lot of disk head
motion. With my approach, it means 30001 pages written (lazily) -- and
it works without added hardware or a journaling file system.

Now, I'm not necessarily advocating changing sqlite in this way, but I
don't think you'll see this > 2::1 speed advantage with just OS
journaling.

e


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to