叶翔的博客

MongoDB使用教程系列文章–开篇

ychtiger评论(0)赞(0)

根据DB-Engines的排名统计,MongoDB综合排名第四(2016年1月数据,前三名分别是Oracle,MySQL,SQL Server),NoSQL领域(非RDBMS)里排名第一。尤其是在2015年里,一口气发布了两个大版本,3月发...

MongoDB Kill Hang问题排查记录

ychtiger评论(2)赞(0)

AliCloudDB MongoDB在开发过程中遇到一个无法正常退出的BUG,由于是Release版本的编译(-O3),debuginfo已经不能很好的展现出堆栈的情况。这时又该如何确定问题所在呢?本篇文章完整的记录了整个排查过程。 场景 ...

MongoDB Replication NetworkInterface

ychtiger评论(0)赞(0)

Replication是MongoDB一套非常复杂的功能,功能包括数据同步,选举,心跳维护等。涉及到与其他MongoD进程通讯。RPC的封装相对也比较重要,作为这些功能实现的基础。 Replication相关的对象角色都被封装在Replic...

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

ychtiger评论(0)赞(0)

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

MongoDB的网络协议

ychtiger评论(2)赞(1)

这篇文章主要来说明MongoDB的网络协议,总结性的说MongoDB通讯基于TCP之上,数据采用BSON封装。 关于TCP TCP具有良好的拥塞控制,可靠传输等特性,比较适合数据库产品的通讯协议。一些对数据一致性,可靠性要求不高的产品也有采...

MongoDB的索引代码实现–BtreeBasedAccessMethod

ychtiger评论(0)赞(0)

前言 学习开源软件的最好的办法就是阅读代码,MongoDB整个代码库有接近90万行代码,DB核心层大概50万行,代码量确实非常多。本文作为MongoDB代码导读的第一篇,从Index部分上入手分析代码实现。 为何从索引部分开始介绍,首先代码...

基于MongoDB的全国电影票预定系统

ychtiger评论(1)赞(0)

前言 受到中文社区《电商参考架构第二部分:库存优化方法》启发,想到了去年做过类似的电影票预定系统,如果用MongoDB去做存储支撑,那应该是怎样架构的呢?本文的目的是为了更好的学习掌握MongoDB,所以某些设计上更偏向于功能的展示,在实际...