写点什么

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:023532
用户头像

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

关注

评论

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

FinClip小程序+Rust(一):夹心饼架构

Speedoooo

rust 前端框架 小程序容器

FinClip小程序+Rust(三):一个加密钱包

Speedoooo

rust 前端框架 小程序容器

你中奖了吗?低代码开发师(高级)认证中奖名单揭晓啦!

一只大光圈

钉钉宜搭

学生管理系统(5)

5月月更

FinClip小程序+Rust(二):环境搭建

Speedoooo

rust 前端框架 小程序容器

FinClip小程序+Rust(五):用内联SVG实现二维码

Speedoooo

rust 前端框架 小程序容器

Kubernetes下web服务的性能测试三部曲之三:横向扩容

程序员欣宸

Java Kubernetes 5月月更

Redis「5」事件处理模型与键过期策略

Samson

学习笔记 Redis 核心技术与实战 5月月更

企业架构如何促进创新?

涛哥 数字产品和业务架构

企业架构

String基础整合

工程师日月

java 5月月更

ABBYY2022全新版PDF文字识别功能

茶色酒

FinClip小程序里如何安全使用SVG

Speedoooo

rust SVG 前端框架 小程序容器

Druid 连接池源码阅读 06

石小天

JavaWeb 数据库操作

Emperor_LawD

sql javaWeb 5月月更

先进数据中心背后,“东数西算”的三重意志

脑极体

飞书将于5月25日举行春季发布会 同步推出全新项目管理产品

陈泽涛

飞书 飞书项目

三种常见的 Mac 安装 git 工具的方法

liuzhen007

git git 学习 5月月更

零基础学Java第一节(语法格式、数据类型)

编程攻略

java 5月月更

FFmpeg介绍

Loken

音视频 5月月更

【JavaScript】数值转换为数值

恒山其若陋兮

5月月更

设计模式之装饰器模式

乌龟哥哥

5月月更

数据库连接池 -Druid 源码学习(六)

wjchenge

Druid 数据库连接池

AIrserver2022手机软件无线投屏电脑屏幕

茶色酒

AirServer

druid 源码阅读(七)Druid Filter 介绍

爱晒太阳的大白

5月月更

宠物类自媒体运营心得:如何才能拍得更有创意

石头IT视角

druid 源码阅读 6——如何实现断链重连的?

张大彪

OpenMLDB v0.5.0 发布 | 性能、成本、灵活性再攀高峰!

第四范式开发者社区

人工智能 机器学习 数据库 数据 特征平台

FinClip小程序+Rust(四):端到端融合

Speedoooo

rust 前端框架 小程序容器

源码分析 Flutter 的 setState 过程

岛上码农

flutter ios 前端 跨平台开发 5月月更

Go Web 编程入门:Go pongo2 模板引擎

宇宙之一粟

Go web Go 语言 模板 5月月更

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