最近一直在学习Mongodb的源码,很希望能够搞清楚Mongodb内部的具体实现。从Mongodb中文社区和其他人的博客里面学到了很多, 因此, 开了这个博客希望把自己学到的一些分享给大家。
任何源码的分析都是从整体架构来开始的, Mongodb的整体架构跟其他的关系型的数据库很类似,
都是有一些关键的模块组成,
作为一个简单的对比, 我们给出了如下经典的关系型数据库的结构图:

作为对比, 我们也提供一个类似的Mongodb的结构图:

在我后续的文章中, 会详细的讲述各个某块的具体实现。

数据库管理

CRUD与Command: https://blog.csdn.net/baijiwei/article/details/86560794
连接池:https://blog.csdn.net/baijiwei/article/details/86404776
原子操作: https://mp.csdn.net/mdeditor/86351130#

查询引擎

查询相关的文章: http://blog.csdn.net/baijiwei/article/details/78128632

副本集

oplog 同步: http://blog.csdn.net/baijiwei/article/details/78303200
executor 实现:
http://blog.csdn.net/baijiwei/article/details/78378050
heartbeat实现:
http://blog.csdn.net/baijiwei/article/details/78441843
raft选主,主从切换
http://blog.csdn.net/baijiwei/article/details/78443525
oplog同步位置更新:
https://blog.csdn.net/baijiwei/article/details/85370519
副本集节点的状态变化
https://blog.csdn.net/baijiwei/article/details/78311665

存储引擎

WiredTiger概述:
https://blog.csdn.net/baijiwei/article/details/80506121
WiredTiger的缓存:
https://blog.csdn.net/baijiwei/article/details/80504715
WiredTiger Journal:
https://blog.csdn.net/baijiwei/article/details/89739781
WiredTiger Hazard pointer:
https://blog.csdn.net/baijiwei/article/details/89705491

分片 auto-sharding

概述:
https://blog.csdn.net/baijiwei/article/details/87535186
MoveChunk:
https://blog.csdn.net/baijiwei/article/details/88072121

事务相关

MongoDB事务的实现:
https://blog.csdn.net/baijiwei/article/details/90113775
MongoDB的并行机制:
https://blog.csdn.net/baijiwei/article/details/90054272

Mongodb 源码分析:整体架构相关推荐

  1. Mongodb源码分析--Replication之主从模式--Master

    mongodb中提供了复制(Replication)机制,通过该机制可以帮助我们很容易实现读写分离方案,并支持灾难恢复(服务器断电)等意外情况下的数据安全. 在老版本(1.6)中,Mongo提供了两种 ...

  2. PX4 Autopilot源码分析 - 总体架构

    PX4 Autopilot源码分析 - 总体架构 应用场景 单独飞控 飞控+任务计算机场景 软件架构 译自PX4 user guide,原文请参阅: https://docs.px4.io/maste ...

  3. spring transaction源码分析--事务架构

    1. 引言  事务特性 事务是并发控制的单元,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位.通过事务将逻辑相关的一组操作绑定在一起,以便服务器 保持数据的完整性.事 ...

  4. FairFuzz 论文简读+源码分析+整体流程简述

    FairFuzz: A Targeted Mutation Strategy for Increasing Greybox Fuzz Testing Coverage 一.论文阅读 Abstract ...

  5. Backbone源码分析-Backbone架构+流程图

    作者:nuysoft/高云/nuysoft@gmail.com 声明:本文为原创文章,如需转载,请注明来源并保留原文链接. Backbone0.9.1源码分析分析系列 jQuery1.6.1源码分析系 ...

  6. 一步步去阅读koa源码,整体架构分析

    阅读好的框架的源码有很多好处,从大神的视角去理解整个框架的设计思想.大到架构设计,小到可取的命名风格,还有设计模式.实现某类功能使用到的数据结构和算法等等. 使用koa 其实某个框架阅读源码的时候,首 ...

  7. 【深入浅出jQuery】源码浅析--整体架构(转)

    最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...

  8. 【jQuery源码】整体架构

    jQuery源码可以精简为以下内容: 方框上面的代码根据Jq注释我们可以知道是对AMD规范的支持. jQuery整体上被包裹在一个匿名函数中,这个匿名函数再作为另一个匿名函数的参数被传入,形参fact ...

  9. JQuery源码解析-整体架构的设计

    最近在看jQuery的源码,查了一些资料,偶尔看到了网易云课堂里有套视频是对源码进行讲解的,是叫妙味课堂出的,看着还不错,对这方面感兴趣的推荐看下, 个人感觉很不错.所以发些文章,边学边记录. 版本: ...

最新文章

  1. TCP 和 UDP 在socket编程中的区别
  2. sicily 1024 Magic Island
  3. c 最大子序列和_最大子序列和暴力法、分治+递归法、妙法
  4. 实验3 动态规划(0/1背包)
  5. pdfLaTeX和XeLaTeX
  6. 在mac OSX中安装启动zookeeper
  7. oracle多条件分组统计_多条件统计,就必须用Ifs系列函数,绝对的高能!
  8. C++primer 第 5 章语句 5.2语句作用域 5.3条件语句 5 . 4 迭代语句 5.5跳转语句 5.6 try语句块和异常处理
  9. Vivado MMCM IP核接口信号介绍
  10. 秋季海报设计元素|水彩手绘纹理植物素材,从人群中脱颖而出。
  11. Windows和Mac os x一样不安全?!
  12. 简单几行javascript代码,实现动态倒计时功能
  13. 模型算法_生产建模型 算法控效率
  14. SonarQube安装步骤 Windows10系统
  15. 今年水果贵,咱走网购
  16. html+css+jquery制作图片展示效果
  17. 【转载】20款密码破解工具
  18. 清明节日期的计算方法
  19. DirectX11,DirectX12,OpenGL,Vulkan学习资料
  20. 4-5. do...while循环

热门文章

  1. matlab cnn 局部最大值,Matlab实现CNN(一)
  2. idea整合gitte团队协作开发项目
  3. Winsoft ComPort for Android Prolific-SEO狼术
  4. python提取斜坡结构
  5. SSL代理是什么?有哪些使用场景?
  6. oculus设备VR漫游
  7. cesium实现飞行漫游
  8. 【JLOI2014】松鼠的新家
  9. EMQX Windows部署 MQTT服务器 EMQX安装
  10. 乘”公“而上,Golff腾飞AMA实录