如何限制 Berkeley DB 的缓冲区?

How to limit Berkeley DB's buffer?

我需要限制 Berkeley 缓冲区的最大大小。我试过使用下面的代码,但缓冲区一直在增长。

DB_ENV *db_env; 
u_int32_t env_flags;
char *DBNOMENV = "";
db_env_create(&db_env, 0);
db_env->set_cache_max(db_env, 0.1, 0);
env_flags = DB_CREATE | DB_INIT_MPOOL;
db_env->open(db_env, DBNOMENV, env_flags, 0);
DB *BDB_database;
db_create(&BDB_database, db_env, 0);

你想要DB_ENV->set_cachesizeset_cachesize, from the Oracle docs

set_cache_max 的目的是什么,它似乎只是限制您可以通过其他函数调用指定的数量?你懂我。这里可能有些细微差别,但实际上,set_cache_max 只是为了增加混乱。

请注意,这两个函数都只接受用于调整大小的整数参数。你需要 set_cachesize(db_env, 0, 100*1024*1024, 1); 来做你想做的事情 0.1

“缓存数量”应为 1。