繁体   English   中英

LMDB 中的内容是否总是同时存储在磁盘和 memory 中?

[英]Are the contents in a LMDB always stored BOTH in disk AND memory?

我想使用 LMDB 的 rust 实现,但我似乎无法找到它是否会始终在磁盘中维护 memory 中的内容副本,反之亦然。 我的推理是,数据库将有一些缓存,任何溢出都会写入磁盘,但由于我在文档中找不到它,所以我不确定。

另一种情况是 LMDB 将其在磁盘上的内容映射到 memory,这适用于少量但不适用于我的想法。

有没有人知道 LMDB 在这方面是如何工作的?

有没有人知道 LMDB 在这方面是如何工作的?

如果您担心无法对不适合 memory 的数据集进行操作,没关系 - LMDB 会处理这个问题。 您的数据集不限于 ram 的大小。

LMDB 是内存映射的,这是一种允许开发人员在磁盘上读取/写入数据的技术,就像在 memory 中一样——操作系统会完成所需的所有繁重工作

LMDB 总是同时存储在磁盘和 memory 中?

整个数据集都在磁盘上。 它的某些部分在 memory 中。当需要不在 memory 中的部分时 - 操作系统从磁盘中获取它并通过将其放入进程'memory 中将其提供给应用程序

另一种情况是 LMDB 将其在磁盘上的内容映射到 memory,这适用于少量但不适用于我的想法。

是的,就是这样。

我读到 RocksDB 支持您正在寻找的用法,同时提供类似的保证。

少量取决于可用的 RAM。 主要供应商包括带有 wiredtiger 后端的 mongodb,但不仅如此,还想到了 postgresql,强烈建议将 memory 与工作数据集一样多。

相反,您可以使用冷(离线?)object 存储找到数据库系统,例如 rust 全文搜索引擎。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM