MongoDB存储引擎(下)——In-Memory

  前两篇文章分别介绍了MMAPv1WiredTiger,这两个存储引擎都是会将数据持久化存储到硬盘的,除此之外,MongoDB也有只将数据存储在内存的存储引擎,那就是In-Memory

  In-Memory存储引擎将数据库数据都存储在内存中,只将少量的元数据和诊断日志、临时数据存储到硬盘文件中,避免了磁盘I/O操作,查询速度很快。In-Memory存储引擎更多特点如下:

1. 文档级别的并发控制

  In-Memory存储引擎使用文档级别锁,同一时刻多个写操作可以修改同一个集合中不同的文档,但不能修改同一个文档,必须以序列化方式执行。

2. 内存使用

  In-Memory需要将数据库的数据、索引和操作日志等内容存储到内存中。可以通过参数--inMemorySizeGB设置它占用的内存大小,默认为:50% of RAM - 1GB

3. 持久化

  In-Memory不需要单独的日志文件,不存在记录日志和等待数据持久化的问题。当MongoDB实例关机或系统异常终止时,所有存储在内存中的数据都将会丢失。

4. 记录oplog

  In-Memory虽然不将数据写入硬盘,但还是会记录oplog。利用这个特性,可以在集群中使用In-MemoryMongoDB作为主数据库,使用WiredTigerMongoDB作为备份数据库,然后将主数据库的oplog推送给备份数据库进行持久化存储,这样即使主数据库关机或异常崩溃,重启后还可以从备份数据库中同步数据。

 

posted @   疯一样的狼人  阅读(501)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示