月度归档:2015年08月

MongoDB丢数据问题的分析

坊间有很多传说MongoDB会丢数据。特别是最近有一个InfoQ翻译的Sven的一篇水文(为什么叫做水文?因为里面并没有他自己的原创,只是搜罗了一些网上的博客,炒了些冷饭吃),其中又提到了丢数据的事情。大家知道作为一个数据库来说,数据的持久性基本上是数据库的最低要求了。如果MongoDB真的有那么糟[......]

阅读全文

MongoDB权限验证流程–基本请求

上篇文章说到,MongoDB的网络通讯协议流程。拿到请求对象后,会调用assemblyResonse函数处理。这部分的代码实在没什么章法可言,if-else遍地,实在不怎么优雅。可以感受到随着需求的增长,很多代码都是硬套上去的。本篇介绍的是基本的处理请求,基本请求所指的是command命令以外的处理[......]

阅读全文

电商参考架构第四部分:推荐及个性化

在我们电商参考架构系列的前三部分中,我们主要讨论了在电商领域两个实用的MongoDB应用:产品目录和库存系统。这两个应用都是非常传统的用户案例,MongoDB在其中作为一个相对静止、直接的数据集合的记录系统。例如,在系列的第一部分中介绍了产品目录,使用MongoDB存储和检索产品和他们系列的库存。[......]

阅读全文

MongoDB的网络协议

这篇文章主要来说明MongoDB的网络协议,总结性的说MongoDB通讯基于TCP之上,数据采用BSON封装。

关于TCP

TCP具有良好的拥塞控制,可靠传输等特性,比较适合数据库产品的通讯协议。一些对数据一致性,可靠性要求不高的产品也有采用UDP协议实现。如Redis,Memcached都支持[......]

阅读全文

电商参考架构第三部分:查询优化及扩展

在本系列电商参考架构的第一部分中,我们讨论了如何使用MongoDB作为一个大型产品目录的数据持久层。在第二部分中,我们介绍了库存系统的模式及数据模型。今天,我们将介绍如何查询和更新库存以及如何扩展系统。

库存更新及聚合

一个好的库存系统不应该只是一个检索静态数据的记录系统。我们还需要能够在库存上[......]

阅读全文

MongoDB 在线讲座系列4 – 如何测试、调整及监控MongoDB性能

活动内容
性能和稳定性是数据库产品最重要的指标之一,我们是怎样保证它们的?在本次讲座中,我们将会讨论如何保证MongoDB性能、性能评估以及容量计划的可用工具以及如何调整和监控MongoDB集群。讲座之后会有10-15分钟问答时间,欢迎大家积极参与。
时间:
2015.09.02 21:00-22:[......]

阅读全文

片键 – 搭建MongoDB分片集群之关键

MongoDB至关重要的特色之一就是其内置的分片功能。这一功能允许你在多个普通的商用服务器之间分担你的数据量以及数据库工作负载。

尽管分片是MongoDB的内置功能,你仍然需要弄清楚很多事情以保证成功的安装。最需要技巧的地方之一就是选择一个好的片键。

为什么选择一个好的片键如此棘手和重要呢?下面[......]

阅读全文