diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2004-01-07 15:53:14 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2004-01-07 15:53:14 +0000 |
commit | 7959354379416bd8513cb00e636c0310e42eaa01 (patch) | |
tree | 075f502ef3f4153c9695e3bfabf56d0bf8e1fc0c | |
parent | abe8c8c2aa24646955b78cd2c826483d8d8a1149 (diff) |
* Upgraded to Berkeley DB 4.2.52. The main advantage of 4.2 is that
it automatically removes log files when they are no longer needed.
*** IMPORTANT ***
If you have an existing Nix installation, you must checkpoint the
Nix database to prevent recent transactions from being undone. Do
the following:
- optional: make a backup of $prefix/var/nix/db.
- run `db_checkpoint' from Berkeley DB 4.1:
$ db_checkpoint -h $prefix/var/nix/db -1
- optional (?): run `db_recover' from Berkeley DB 4.1:
$ db_recover -h $prefix/var/nix/db
- remove $prefix/var/nix/db/log* and $prefix/var/nix/db/__db*
-rw-r--r-- | externals/Makefile.am | 11 | ||||
-rw-r--r-- | src/libstore/db.cc | 2 |
2 files changed, 7 insertions, 6 deletions
diff --git a/externals/Makefile.am b/externals/Makefile.am index 61122f4ab..c74cb227e 100644 --- a/externals/Makefile.am +++ b/externals/Makefile.am @@ -1,11 +1,11 @@ # Berkeley DB -DB = db-4.1.25 +DB = db-4.2.52 $(DB).tar.gz: @echo "Nix requires Berkeley DB to build." - @echo "Please download version 4.1.25 from" - @echo " http://www.sleepycat.com/update/snapshot/db-4.1.25.tar.gz" + @echo "Please download version 4.2.52 from" + @echo " http://www.sleepycat.com/update/snapshot/db-4.2.52.tar.gz" @echo "and place it in the externals/ directory." false @@ -20,8 +20,9 @@ build-db: have-db (pfx=`pwd` && \ cd $(DB)/build_unix && \ CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" \ - ../dist/configure --prefix=$$pfx/inst \ - --enable-cxx --disable-shared && \ + ../dist/configure --prefix=$$pfx/inst \ + --enable-cxx --disable-shared --disable-cryptography \ + --disable-replication --disable-verify && \ make && \ make install) touch build-db diff --git a/src/libstore/db.cc b/src/libstore/db.cc index a97111a3a..72823be8b 100644 --- a/src/libstore/db.cc +++ b/src/libstore/db.cc @@ -160,7 +160,7 @@ void Database::open(const string & path) env->set_lg_bsize(32 * 1024); /* default */ env->set_lg_max(256 * 1024); /* must be > 4 * lg_bsize */ env->set_lk_detect(DB_LOCK_DEFAULT); - env->set_flags(DB_TXN_WRITE_NOSYNC, 1); + env->set_flags(DB_TXN_WRITE_NOSYNC | DB_LOG_AUTOREMOVE, 1); /* The following code provides automatic recovery of the |