From f7c7aad1351a0ed58f458e485968af498d542b5b Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 16 Oct 2003 08:52:44 +0000 Subject: [PATCH] * Upgraded to Berkeley DB 4.1.25 and do not synchronously flush the log on commit. This means that there is a small change that some transactions may be rolled back in case of a system crash, but this should not be a problem (it merely might cause some expression realisations to be rolled back), and it vastly improves performance. * Upgraded to ATerm 2.0.5 (which also includes Armijn's 64-bit patches). --- externals/Makefile.am | 12 ++++++------ src/db.cc | 9 +++++---- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/externals/Makefile.am b/externals/Makefile.am index 6a3d3a1f7..46b1a9fdb 100644 --- a/externals/Makefile.am +++ b/externals/Makefile.am @@ -1,11 +1,11 @@ # Berkeley DB -DB = db-4.0.14 +DB = db-4.1.25 $(DB).tar.gz: @echo "Nix requires Berkeley DB to build." - @echo "Please download version 4.0.14 from" - @echo " http://www.sleepycat.com/update/snapshot/db-4.0.14.tar.gz" + @echo "Please download version 4.1.25 from" + @echo " http://www.sleepycat.com/update/snapshot/db-4.1.25.tar.gz" @echo "and place it in the externals/ directory." false @@ -28,12 +28,12 @@ build-db: have-db # CWI ATerm -ATERM = aterm-2.0 +ATERM = aterm-2.0.5 $(ATERM).tar.gz: @echo "Nix requires the CWI ATerm library to build." - @echo "Please download version 2.0 from" - @echo " http://www.cwi.nl/projects/MetaEnv/aterm/aterm-2.0.tar.gz" + @echo "Please download version 2.0.5 from" + @echo " http://www.cwi.nl/projects/MetaEnv/aterm/aterm-2.0.5.tar.gz" @echo "and place it in the externals/ directory." false diff --git a/src/db.cc b/src/db.cc index 75f97a1e4..2f53ca3b5 100644 --- a/src/db.cc +++ b/src/db.cc @@ -160,6 +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); /* The following code provides automatic recovery of the @@ -252,11 +253,11 @@ void Database::close() { debug(format("closing table %1%") % i->first); Db * db = i->second; - db->close(0); + db->close(DB_NOSYNC); delete db; } - env->txn_checkpoint(0, 0, 0); +// env->txn_checkpoint(0, 0, 0); env->close(0); } catch (DbException e) { rethrow(e); } @@ -285,8 +286,8 @@ TableId Database::openTable(const string & tableName) Db * db = new Db(env, 0); try { - // !!! fixme when switching to BDB 4.1: use txn. - db->open(tableName.c_str(), 0, DB_HASH, DB_CREATE, 0666); + db->open(0, tableName.c_str(), 0, + DB_HASH, DB_CREATE | DB_AUTO_COMMIT, 0666); } catch (...) { delete db; throw;