|
|
|
@ -55,7 +55,7 @@ void CDBEnv::Close()
@@ -55,7 +55,7 @@ void CDBEnv::Close()
|
|
|
|
|
EnvShutdown(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool CDBEnv::Open(boost::filesystem::path pathEnv_) |
|
|
|
|
bool CDBEnv::Open(const boost::filesystem::path& path) |
|
|
|
|
{ |
|
|
|
|
if (fDbEnvInit) |
|
|
|
|
return true; |
|
|
|
@ -63,18 +63,16 @@ bool CDBEnv::Open(boost::filesystem::path pathEnv_)
@@ -63,18 +63,16 @@ bool CDBEnv::Open(boost::filesystem::path pathEnv_)
|
|
|
|
|
if (fShutdown) |
|
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
pathEnv = pathEnv_; |
|
|
|
|
filesystem::path pathDataDir = pathEnv; |
|
|
|
|
filesystem::path pathLogDir = pathDataDir / "database"; |
|
|
|
|
filesystem::path pathLogDir = path / "database"; |
|
|
|
|
filesystem::create_directory(pathLogDir); |
|
|
|
|
filesystem::path pathErrorFile = pathDataDir / "db.log"; |
|
|
|
|
filesystem::path pathErrorFile = path / "db.log"; |
|
|
|
|
printf("dbenv.open LogDir=%s ErrorFile=%s\n", pathLogDir.string().c_str(), pathErrorFile.string().c_str()); |
|
|
|
|
|
|
|
|
|
unsigned int nEnvFlags = 0; |
|
|
|
|
if (GetBoolArg("-privdb", true)) |
|
|
|
|
nEnvFlags |= DB_PRIVATE; |
|
|
|
|
|
|
|
|
|
int nDbCache = GetArg("-dbcache", 25); |
|
|
|
|
unsigned int nDbCache = GetArg("-dbcache", 25); |
|
|
|
|
dbenv.set_lg_dir(pathLogDir.string().c_str()); |
|
|
|
|
dbenv.set_cachesize(nDbCache / 1024, (nDbCache % 1024)*1048576, 1); |
|
|
|
|
dbenv.set_lg_bsize(1048576); |
|
|
|
@ -85,7 +83,7 @@ bool CDBEnv::Open(boost::filesystem::path pathEnv_)
@@ -85,7 +83,7 @@ bool CDBEnv::Open(boost::filesystem::path pathEnv_)
|
|
|
|
|
dbenv.set_flags(DB_AUTO_COMMIT, 1); |
|
|
|
|
dbenv.set_flags(DB_TXN_WRITE_NOSYNC, 1); |
|
|
|
|
dbenv.log_set_config(DB_LOG_AUTO_REMOVE, 1); |
|
|
|
|
int ret = dbenv.open(pathDataDir.string().c_str(), |
|
|
|
|
int ret = dbenv.open(path.string().c_str(), |
|
|
|
|
DB_CREATE | |
|
|
|
|
DB_INIT_LOCK | |
|
|
|
|
DB_INIT_LOG | |
|
|
|
|