【赵渝强老师】MongoDB写入数据的过程

在MongoDB数据更新时,WiredTiger存储引擎使用预写日志的机制先将数据更新写入到Journal日志文件中。然后在创建检查点操作开始时,再将日志文件中记录的操作刷新到数据文件。换句话说,通过预写日志和检查点机制可以保证将数据更新持久化到数据文件中,并实现数据的一致性。

视频讲解如下
【赵渝强老师】MongoDB写入数据的过程

在检查点(Checkpoint)操作开始时,WiredTiger存储引擎将提供指定时间点的数据库快照,该快照反映的是MongoDB当前内存中的数据情况。当向磁盘写入数据时,WiredTiger存储引擎将快照中的所有数据以一致性方式写入到MongoDB的数据文件上,并保证数据文件和内存数据是一致性的。由于检查点是定期执行,因此检查点操作能够缩短MongoDB从Journal日志文件恢复数据的时间。在默认情况下,WiredTiger存储引擎创建检查点的时间间隔是60秒或产生2GB的Journal日志信息文件。在WiredTiger存储引擎创建新的检查点期间,上一个检查点仍然是有效的。这意味着即使MongoDB在创建新的检查点期间遭遇到错误而异常终止运行,只要重启MongoDB就能从上一个有效的检查点开始恢复数据。当新的检查点创建成功后,WiredTiger存储引擎以原子方式更新元数据表使其引用新创建的检查点,同时会将老的检查点占用的磁盘空间释放。

下图说明了MongoDB写入数据时,MongoDB的预写日志机制及与产生检查点操作之间的关系。

相关推荐
码农阿豪4 小时前
行标识符的抉择:深入理解数据库领域的OID与ROWID机制
数据库·oracle
不剪发的Tony老师4 小时前
MyCLI:一个增强型MySQL命令行客户端
数据库·mysql
SHANGHAILINGEN4 小时前
2400 万个未培养病毒重新定义病毒多样性
数据库·测序·组学
刘晨鑫14 小时前
PostgreSQL日常维护
数据库·postgresql
xiaokangzhe4 小时前
PG数据库日常应用
数据库·oracle
XDHCOM5 小时前
MySQL ER_DD_VERSION_INSTALLED报错解析,数据字典版本问题,故障修复与远程处理指南
数据库·mysql
yaoyouzhong6 小时前
MySQL 批量插入详解:快速提升大数据导入效率的实战方法
大数据·数据库·mysql
NineData7 小时前
NineData V5.0 产品发布会:让 AI 成为数据管理的驱动力,4月16日!
数据库·人工智能·ai编程
高梦轩8 小时前
PG数据库
数据库·oracle
云草桑8 小时前
DBA mssql 解决排序规则冲突 QA prod 和开发配置都是一样的服务器排序规则 为啥开发环境的的存储过程需要 加这个COLLATE Chinese_PRC_CI_AS
数据库·dba·mssql