LMDB:如何确定剩余的可用空间?

7
创建LMDB环境时可以指定映射大小,是否有一种方法可以在任何时候确定使用了多少映射空间?
换句话说,我需要找出剩余多少可用空间,以便在出现问题之前解决空间不足的问题。
我唯一能想到的是遍历所有数据库并使用mdb_env_stat获取分支、叶子和溢出页数。在所有数据库中总结它们(乘以页面大小),并与当前映射大小进行比较。这是计算已用空间的正确方式吗?
1个回答

6

确实,这也是我正在使用的方法(也是我能找到的唯一方法)。

对于每个数据库:

MDB_stat stat;
mdb_stat(d->transaction, d->dbi, &stat);
auto dbSize = stat.ms_psize * (stat.ms_leaf_pages + stat.ms_branch_pages + stat.ms_overflow_pages);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接