MongoDB的In-Memory存储引擎

太阳2年前技术文章722


   在企业版 3.2.6版本开始,MongoDB开始有In-Memory存储引擎,除了一些元数据和诊断数据外,In-Memory存储引擎不会存储任何数据到磁盘,包括配置数据、索引、用户凭证等。


   因为避免了磁盘IO,所以In-Memory存储引擎在操作的延迟会更小。


一、In-Memory存储引擎基本概念


1、需要在MongoDB启动时候指定 --storageEngine,或者配置文件中指定storage.engine。


2、需要指定--dbpath,In-Memory存储引擎会在磁盘存储一些元数据和诊断数据、以及创建大索引时使用到的临时文件。


3、In-Memory存储引擎在进程关闭后将不再保存数据。


4、In-Memory存储引擎支持文档级并发。


5、In-Memory存储引擎要求所有的数据、包括索引以及oplog等使用的内存都要限制在inMemorySizeGB参数内,默认情况下In-Memory存储引擎对内存的使用为50%物理内存-1G,当一个写操作导致超出当前的内存限制,MongoDB会直接报错。


6、In-Memory存储引擎不支持多文档事务。


二、In-Memory数据持久性


1)In-Memory存储引擎是不持久的,也不会将数据写入到一个持久化的存储引擎。


2)In-Memorey对数据、索引、用户权限、复制集信息等都不具有持久性。


3)在In-Memory存储引擎下,通过journal等待数据达到持久化是不存在的。


4)在副本集中,任何vote>0的节点如果使用In-Memory存储引擎,需要将该节点的writeConcernMajorityJournalDefault设置为false。


5)在In-Memory存储引擎下,一个指定write concern的写操作,journal认证后会立即被返回。当MongoDB实例关闭或者意外宕机后,是无法恢复内存中的这些数据的。


三、常见部署体系结构


1)两个节点使用In-Memory存储引擎;


2)一个节点使用WiredTiger存储引擎,且设置该节点的priority=0,hidden=true;


3)这样部署保证In-Memory存储引擎的节点为primary节点,且客户端仅可以连接到In-Memory存储引擎的节点。即使副本集提供业务节点出现宕机,也可以通过WiredTiger存储引擎的节点来sync进行数据恢复。


四、journaling


1)因为In-Memory存储引擎将所有数据保存在内存,包括journal也在内存中,当操作指定j:true,会立刻会返回。


2)In-Memory存储引擎的副本集节点必须设置writeConcernMajorityJournalDefault为false。


3)当writeConcernMajorityJournalDefault设置为false,MongoDB将不会等待w:“majority”在写入jounal file后完成ack。因此该参数可能有roll back的风险。


相关文章

em升级&添加节点实践

em升级&添加节点实践

一、扩容前准备 1.格式化磁盘分区并挂载(1)设置gpt分区表          &nbs...

Kafka指标性能分析

Kafka指标性能分析

1)      根据group组查看消费情况(数值不准,仅可参考)根据之前的分析,只有driver的consumer会提交offset,因此通过./k...

SQL Server优化入门系列(一)——快速定位阻塞SQL

SQL Server优化入门系列(一)——快速定位阻塞SQL

引言我们在运维数据库的时候,经常会面对这样的问题:数据库现在运行得怎么样有哪些会话在执行,当前状态是什么,在执行什么SQL哪些会话被阻塞,阻塞原因是什么会话是从哪些IP连接过来的,使用了什么账号通过这...

日志聚合工具loki

1、loki是什么Loki是一个水平可扩展,高可用性,多租户的日志聚合系统,受到Prometheus的启发。它的设计非常经济高效且易于操作,因为它不会为日志内容编制索引,而是为每个日志流编制一组标签。...

yarn常用命令

1、yarn application 查看任务1.1 列出所有 Application: yarn application -list1.2 根据 Application 状态过滤:yarn appl...

kafka高可靠性相关配置

kafka高可靠性相关配置

为保证高可靠可以通过以下方面进行设置:1) 物理机器场景配置项配置说明高可靠高性能不间断电源配置,防止服务器异常断电RAID卡电池配置,防止服务器异常断电RAID卡写缓存开启,提高性能RAID 1配置...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。