写点什么

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

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

关注

评论

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

YashanDB:以自研根技术筑牢企业数字化发展根基

YashanDB

国产数据库

软件设计中你考虑过重试了吗?

Java你猿哥

Java ssm 软件设计

1行代码合并多个PPT文件,Python自动化办公

程序员晚枫

Python PPT 自动化办公

背刺Alibaba?阿里巴巴工程师1480道Java面试题及答案整理( 2023年 整理版)

Java你猿哥

Java MySQL redis JVM mybatis

ERP已死,秒杀系统称王!阿里巴巴内部「10亿级并发设计文档」

Java你猿哥

数据库 缓存 分布式 消息队列 秒杀系统

Go Module 语义化版本规范

江湖十年

Go 语言 go module go mod

GitHub星标126K的京东「微服务进阶笔记」首次开源!好评如潮

Java你猿哥

Java 架构 微服务 微服务架构 架构师

线程池是如何执行的?任务太多会怎样?

javacn.site

YashanDB推出共享集群技术 剑指核心系统替换

YashanDB

国产数据库

开源一个网页版的 Xshell,支持 FTP 和 SFTP 两种方式!

Java你猿哥

Java json ssm Cookie xshell

人工智能与数据分析

Data 探险实验室

人工智能 机器学习 AI 数据分析 数据

Software 软件版本的含义

Andy

CISA零信任成熟度模型(译文)

权说安全

LangChain:构建个人AI代理从这里开始

devpoint

人工智能 AI langchain

ChatGPT对软件测试的影响

BY林子

软件测试 ChatGPT

数据可视化管理尽在RazorSQL注册激活版~

真大的脸盆

Mac 数据库管理 Mac 软件 管理数据库 数据库处理

BeanUtils.copyProperties的11个坑

Java你猿哥

Java spring ssm bean

【论文解读|GL-Cache 】基于组级学习的缓存替换算法

Databend

卧薪尝胆30天!啃透京东大牛的高并发设计进阶手册,终获P7意向书

Java 系统设计 高并发

实测 亚马逊AI 编程助手 Amazon CodeWhisperer(全网最全)

攻城先森

人工智能 编程 测试 AWS 亚马逊云科技

知识点总结

程序员小张

未来,零信任安全还会持续火热吗?

权说安全

微服务架构:构建灵活、可拓展和高效的现代应用体系

xfgg

Java 微服务

防lombok实现一个Getter注解,AbstractProcessor实例

Java你猿哥

Java ssm lombok

阿里逆天级调优方案,内部这套Java性能调优实战宝典,堪称教科书

Java 性能优化 性能调优

YashanDB携手中地数码联合发布空间数据存储管理解决方案

YashanDB

国产数据库

HUAWEI永远滴神!华为顶级网络专家总结出了这份网络协议开源手册

Java你猿哥

TCP ssm 网络协议 io IP

英特尔黑科技加持,腾讯应用宝登陆电脑:安卓应用完美移植PC 更有神器辅助

E科讯

听听飞桨框架硬核贡献者如何玩转开源!

飞桨PaddlePaddle

开源社区 百度飞桨 PaddlePaddle

究诸经典,探寻大模型演变之踪迹

Baihai IDP

人工智能 深度学习 大模型 LLM 白海科技

CIO视角|平台工程带来的优势与机遇

SEAL安全

IdP 平台工程 企业号 5 月 PK 榜 内部开发平台

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