分类目录归档:叶翔的博客

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

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

阅读全文

MongoDB的网络协议

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

关于TCP

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

阅读全文

MongoDB的索引代码实现–BtreeBasedAccessMethod

前言

学习开源软件的最好的办法就是阅读代码,MongoDB整个代码库有接近90万行代码,DB核心层大概50万行,代码量确实非常多。本文作为MongoDB代码导读的第一篇,从Index部分上入手分析代码实现。
为何从索引部分开始介绍,首先代码量较少,总共5000多行,且相对其他模块来说比较独立;其次[......]

阅读全文

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

前言

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

需求

电影票[......]

阅读全文