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]