diff --git a/src/db.cpp b/src/db.cpp index 0344c796..7c3937a4 100644 --- a/src/db.cpp +++ b/src/db.cpp @@ -84,8 +84,11 @@ CDB::CDB(const char* pszFile, const char* pszMode) : pdb(NULL) string strErrorFile = strDataDir + "/db.log"; printf("dbenv.open strLogDir=%s strErrorFile=%s\n", strLogDir.c_str(), strErrorFile.c_str()); + int nDbCache = GetArg("-dbcache", 25); dbenv.set_lg_dir(strLogDir.c_str()); - dbenv.set_lg_max(10000000); + dbenv.set_cachesize(nDbCache / 1024, (nDbCache % 1024)*1048576, 1); + dbenv.set_lg_bsize(10485760); + dbenv.set_lg_max(104857600); dbenv.set_lk_max_locks(10000); dbenv.set_lk_max_objects(10000); dbenv.set_errfile(fopen(strErrorFile.c_str(), "a")); /// debug @@ -156,7 +159,7 @@ void CDB::Close() nMinutes = 1; if (strFile == "addr.dat") nMinutes = 2; - if (strFile == "blkindex.dat" && IsInitialBlockDownload() && nBestHeight % 500 != 0) + if (strFile == "blkindex.dat" && IsInitialBlockDownload() && nBestHeight % 5000 != 0) nMinutes = 1; dbenv.txn_checkpoint(0, nMinutes, 0); diff --git a/src/init.cpp b/src/init.cpp index a5db20b9..f9e08126 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -177,6 +177,7 @@ bool AppInit2(int argc, char* argv[]) " -min \t\t " + _("Start minimized") + "\n" + " -splash \t\t " + _("Show splash screen on startup (default: 1)") + "\n" + " -datadir= \t\t " + _("Specify data directory") + "\n" + + " -dbcache= \t\t " + _("Set database cache size in megabytes (default: 25)") + "\n" + " -timeout= \t " + _("Specify connection timeout (in milliseconds)") + "\n" + " -proxy= \t " + _("Connect through socks4 proxy") + "\n" + " -dns \t " + _("Allow DNS lookups for addnode and connect") + "\n" +