On Fri, Aug 04, 2017 at 06:49:42PM +0000, Peter Da Silva wrote: > On 8/4/17, 1:45 PM, "sqlite-users on behalf of Nico Williams" > <sqlite-users-boun...@mailinglists.sqlite.org on behalf of > n...@cryptonector.com> wrote: > > SQLite3's WAL is already log-structured. The main DB file isn't. > > So SQLite3 is a hybrid. But it doesn't have to be a hybrid. > > One issue I see with this is you’ll have to retain the old WALs as > long as they have any live data, or the checkpoint operation will have > to copy all the unmodified data in the log to the new WAL, or you’ll > have to keep a non-log structure containing all the relatively static > data that hasn’t been modified in the last “N” checkpoints.
The checkpoint process would look like this: - make a new file in the same directory - copy the DB to the new file - rename the new file into place - write the "closed, renamed" marker into the old file (which is still open) This works on POSIX, and if you use the right CreateFileEx() options, it works on WIN32. Nico -- _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users