Monday, October 27, 2003, 9:22:57 AM, D. Richard Hipp wrote:

> If you think about how a disk driver works, you'll quickly realize
> that to truly commit a transaction to the disk surface requires at
> least one revolution of the platter. So for a 5400 RPM disk drive,
> you will get (at most) 90 transactions per second. SQLite gets you
> very close to this number. The INSERT times reported back by other
> database engines often exceed this number, which tells me they are
> not really committing the changes to the disk surface before they
> return.

Database servers that use Write Ahead Logs (WALs : log files that
store both redo and undo information, as well as transaction
checkpoint and commit status) can consider the data "written to disk"
as soon as a commit record is appended to the WAL. The update of the
primary on-disk data structures can proceed lazily since (a) other
transactions will use the in-memory (cached) copy of the data
structures first, and (b) any crash will replay the WAL and recover
the on-disk data structures.

So, database servers using WAL can commit transactions as fast as they
can be appended to a sequential log on disk; if the driver is smart
and has enough writes enqueued, this is as fast as the disk can take
data: no waiting for disk rotation.

e


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

Reply via email to