0

我正在尝试为 bdb 文件设置以千兆字节为单位的缓存大小。我正在为 bdb 使用 python 接口。我看到 bdb 的底层“C”api 有这个选项。

int DB->set_cachesize(DB *db, u_int32_t gbytes, u_int32_t bytes, int ncache);

但是我只能将一个 cachesize 参数传递给 btopen 函数,该函数被解释为以字节为单位的 cache_size。这将最大 cache_size 限制为 2GB。我希望能够将缓存大小设置为至少 4gb。

任何能够设置/增加缓存大小的帮助将不胜感激,在此先感谢!

下面是我用来设置 cache_size 的 python 函数。

cache_size = (2*1024*1024*1024) - 1

db = bsddb.btopen(self._bdbFileName, cachesize=cache_size, flag='n')
4

1 回答 1

0

我不熟悉BDB的python接口。当我使用 c api 时,我非常感谢使用环境打开 bdb 并在环境中设置很多配置。

例如,使用 environment 打开一个 bdb 文件,并将 env 目录设置为~/env/。然后在~/env/中放入一个名为DB_CONFIG的文件,内容为:

set_cachesize 4 0 1

缓存大小将设置为 4GB。无需代码。

您可以在DB_CONFIG中检查所有可用配置。

于 2013-08-07T08:02:14.817 回答