about summary refs log tree commit diff
path: root/src/libmain/shared.cc
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2010-08-04T17·35+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2010-08-04T17·35+0000
commitfd9c77dfc7b90d447e6bfdb4f0d5b521184aeddb (patch)
treee491a8694bdbc947b4ea86383604b6c72e3b24a6 /src/libmain/shared.cc
parent7f893b7a43fdca728fd1f7a72e51d31d2a6e7147 (diff)
* Use SQLite 3.7.0's write-ahead logging (WAL mode). This is a lot
  faster than the old mode when fsyncs are enabled, because it only
  performs an fsync() when doing a checkpoint, rather than at every
  commit.  Some timings for doing a "nix-instantiate /etc/nixos/nixos
  -A system" after modifying the stdenv setup script:

    42.5s - SQLite 3.6.23 with truncate mode and fsync
     3.4s - SQLite 3.6.23 with truncate mode and no fsync
    32.1s - SQLite 3.7.0 with truncate mode and fsync
    16.8s - SQLite 3.7.0 with WAL mode and fsync, auto-checkpoint
            every 1000 pages
     8.3s - SQLite 3.7.0 with WAL mode and fsync, auto-checkpoint
            every 8192 pages
     1.7s - SQLite 3.7.0 with WAL mode and no fsync

  The default is now to use WAL mode with fsyncs.  Because WAL doesn't
  work on remote filesystems such as NFS (as it uses shared memory),
  truncate mode can be re-enabled by setting the "use-sqlite-wal"
  option to false.

Diffstat (limited to 'src/libmain/shared.cc')
0 files changed, 0 insertions, 0 deletions