MongoDB 官方文档笔记之存储 Storage

两种存储引擎

WiredTiger 存储引擎,默认

In-memory 内存存储引擎

WiredTiger

文档级并发模型

支持多个客户端同时修改集合的不同文档。

快照和检查点 checkpoint

WiredTiger使用MultiVersion(MVVC)并发控制。

检查点可以充当恢复点

日志 Journal

日志与检查点结合使用,确保数据持久性。日志保留检查点之间的数据修改

日志通过快速压缩库进行压缩,通过 storage.wiredTiger.engineConfig.journalCompressor 配置压缩算法或不压缩。

压缩

MongoDB支持对集合和索引压缩,压缩可以减少存储空间,但增加CPU开销。

MongoDB Wiredtiger存储引擎实现原理:https://mongoing.com/archives/2540

MongoDB 存储引擎 WiredTiger 原理解析:https://mongoing.com/archives/5367

In-Memory内存存储引擎

文档级并发模型

同样支持文档级并发

持久性

没有持久化支持,所有数据均在内存中,包括应用程序数据和系统数据,例如用户,权限,索引,副本集配置,分片群集配置等。

日志功能不适用内存引擎

日志

使用日志记录的恢复过程:

1.在数据文件中查找最后一个检查点 checkpoint 的标识符。

2.在日记 journal 文件中搜索与最后一个检查点 checkpoint 的标识符匹配的记录。

3.从上一个检查点 checkpoint 开始,将操作应用于日志文件。

使用日志功能,WiredTiger为每个客户端发起的写操作创建一个日记记录。日志记录包括由初始写入引起的任何内部写入操作。

例如,对集合中文档的更新可能会导致对索引的修改;WiredTiger创建单个日志记录,其中包含更新操作及其关联的索引修改。

https://docs.mongoing.com/cun-chu/journaling

本文由mdnice多平台发布

你可能感兴趣的:(后端)