写点什么

MongoDB 1.8 通过 Journaling 日志改善可靠性​

  • 2011-03-28
  • 本文字数:1102 字

    阅读完需:约 4 分钟

面向文档的数据库引擎 MongoDB在3 月16 日发布了1.8 版本。关键的变更包括新增Journaling 日志、提升分片性能以及Shell 的Tab​补全。​

Journaling 日志通过预写式的 Redo 日志为 MongoDB 增加了额外的可靠性。开启该功能时,变更会先写入 Journaling 日志,​定期集中提交(目前是每 100ms 提交一次)​,然后在真实数据上进行这些变更。如果服务器安全关闭,日志会被清除。在服务器启动时,如果存在 Journaling 日志​,则会进行回放。这保证了那些已写入,但在服务器崩溃前还没有回放的​日志能在用户连接前​被执行。​两次提交之间那 100ms 的时间窗口​在未来的版本中有望被缩小。

MongoDB 是​一种 NoSQL 数据库​,不同于 SQL Server 这样的关系型数据库,MongoDB 中数据的基本单位是文档。类似于 JavaScript 对象,文档中包含一系列带有类型的键值对​,这些类型可以是字符串、对象、数组、正则表达式和代码。​这些文档以​BSON 格式存储​,根据文档类型被分组到集合(类似于SQL Server 里的表)中​。Schema 的设计取决于哪些文档应该有自己的集合​,哪些应该被嵌入到其他集合中去。嵌入的文档就像类里的成员对象。在关系型系统中,你会用一张表来存储订单,另一张外键的表来存储订单项。在MongoDB 中,​针对同样的场景,推荐的做法是用一个集合来保存订单,每个订单中保存一个订单项的数组,嵌入其中。​

水平扩展是通过​自动分片来​做的​,​它允许有序的集合数据分布。每个分片都是一组配置成Replica 集的机器​,这意味着分片里的每台机器​都拥有分片数据的完整拷贝。​分片中会自动进行故障转移。MongoDB 会自动将查询引导到合适的分片上,因此应用程序并不需要了解哪个分片持有什么数据元素。​新的Replica 集身份认证功能允许Replica 集的成员之间进行自动身份认证,其中使用了密钥文件和 –keyfile 选项。​

Covered 索引和 Sparse 索引也是该版本中新增加的特性。​Covered 索引允许​在索引本身里存储数据,而​Sparse 索引则会排除掉不包含索引字段的文档。Covered 索引在查询所请求的全部字段​都包含在Covered 索引中时能提升性能,因为不再需要取出完整的文档记录。Sparse 索引在所检索的字段并非经常出现在集合中时能提升性能。目前,Sparse 索引只能有一个字段。​

在MongoDB 的工具集中也有一些变化。mongostat 增加了​discover 模式(–discover)​,它会自动从集群的节点中取回统计信息。​通过_mongodump –oplog_ 和_mongorestore –oplogReplay_ 提供了高级事务日志转储和恢复​功能。​

欲更多地了解该版本中的新特性,请查看 MongoDB 1.8 Webinar

查看英文原文: MongoDB 1.8 Improves Reliability with Journaling

2011-03-28 10:023442
用户头像

发布了 135 篇内容, 共 62.8 次阅读, 收获喜欢 43 次。

关注

评论

发布
暂无评论
发现更多内容

三点微服务标准化要素

阿泽🧸

微服务 6月月更

读《Software Systems Architecture》(12)—— Producing Architectural Models

术子米德

架构师成长笔记

盘点攻防演练中红队的主要工具(下)

穿过生命散发芬芳

6月月更 攻防演练

计算机网络之IP协议与以太网

未见花闻

6月月更

数据库每日一题---第13天:寻找病患

知心宝贝

数据库 云计算 前端 后端 6月月更

全球Top 2!腾讯计算机视觉能力再突破

脑极体

读《Software Systems Architecture》(13)—— Creating the Architectural Description

术子米德

架构师成长笔记

读《Software Systems Architecture》(14)—— Evaluating the Architecture

术子米德

架构师成长笔记

读《Software Systems Architecture》(18)—— The Information Viewpoint

术子米德

架构师成长笔记

linux之我常用的20条命令(之二)

入门小站

Linux

数仓开发人员的价值体现

奔向架构师

数据仓库 数据模型 6月月更

接口测试使用Python装饰器

伤心的辣条

Python 程序人生 软件测试 自动化测试 接口测试

在线文本保留中文提取过滤工具

入门小站

工具

读《Software Systems Architecture》(19)—— The Concurrency Viewpoint

术子米德

架构师成长笔记

在线JSON转TSV工具

入门小站

工具

如何修改 Rancher v2.6 的 Rancher Server IP 地址

Rancher

Kubernetes k8s rancher

uni-app深入学习之模板运用【day4】

恒山其若陋兮

6月月更

GoLang简单易用的json value读取工具!还并发安全

Krysta

Go json 简单清楚 方便

js中的变量提升和函数提升

北洋

android 6月月更

读《Software Systems Architecture》(11)—— Using Styles and Patterns

术子米德

架构师成长笔记

读《Software Systems Architecture》(15)—— Introduction to the Viewpoint Catalog

术子米德

架构师成长笔记

读《Software Systems Architecture》(17)—— The Functional Viewpoint

术子米德

架构师成长笔记

凿开数据冰层,透出智能时代的光:华为云与开发者的结伴旅行

脑极体

文档管理系统对于企业有哪些优势

小炮

读《Software Systems Architecture》(16)—— The Context Viewpoint

术子米德

架构师成长笔记

从链上数据出发,分析stETH脱锚之后的市场动态

区块链前沿News

eth Hoo

读《Software Systems Architecture》(20)—— The Development Viewpoint

术子米德

架构师成长笔记

GetX 状态管理从入门到入迷

岛上码农

flutter ios 前端 安卓 6月月更

MongoDB 1.8通过Journaling日志改善可靠性​_Java_David Cooksey_InfoQ精选文章