/code-comment-on-mongodb3.6

分布式文档数据库mongodb-3.6(mongos、mongod、wiredtiger存储引擎)源码中文注释分析,持续更新。后期重点进行mongodb-4.4最新版本内核源码分析

Primary LanguageC++Apache License 2.0Apache-2.0

说明

mongodb3.6的代码注释 说明:

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

源码中文已注释代码列表如下:

boost-asio网络库/定时器源码实现注释(只注释mongodb相关实现的asio库代码)(100%注释):

mongodb网络传输模块(transport)处理实现(100%注释):

transport_layer传输层子模块:
Ticket数据收发回调处理子模块(100%注释):
Session会话子模块(100%注释):
service_state_machine状态机子模块(100%注释):
service_executor服务运行(工作线程模型)子模块(100%注释):
service_entry_point_impl服务入口子模块(100%注释):

message/DbMessage/OpMsgRequest协议处理(100%注释):

时间嘀嗒及系统级定时器实现(100%注释):

mongod/mongos服务入口处理(100%注释):

command命令处理模块(注释完毕,命令太多,请参考前面的《command命令处理模块源码实现》):

db.serverStatus()相关统计(注释完毕):

stats相关统计(注释完毕):

OpMsgRequest和写write_ops:(insert、update、delete)转换操作(100%注释): :

write写模块:

write处理入口(100%注释):
OpMsgRequest和写write_ops:(insert、update、delete)转换操作(100%注释): :
增删改处理(100%注释): :

query请求处理模块:

query_request请求解析和canonical_query规范化转换操作(核心流程注释完毕):
MatchExpression tree生成及优化过程(核心流程注释完毕):
get_executor获取PlanExecutor(核心流程注释完毕):
QueryPlannerIXSelect实现MatchExpression tree相关node关联对应RelevantTag(核心流程注释完毕):
plan_enumerator轮询枚举每个查询所有的候选索引信息(核心流程注释完毕):
index_tag相关(核心流程注释完毕):
生成QuerySolutionNode tree及querysolution(核心流程注释完毕):
get_executor根据querysolurion生成PlanStage(核心流程注释完毕):
PlanStage(核心流程注释完毕):

storage存储模块:

catalog中间层相关实现:
database中间层接口相关(重要接口注释):
collection中间层接口相关(重要接口注释):
index中间层接口相关(重要接口注释):
storage层相关实现(重要接口注释):
kv引擎管理注册(重要接口注释):
wiredtiger存储引擎接口相关(重要接口注释):
plan_ranker对每个候选solution打分,选出最优索引(核心流程注释完毕):
get_executor根据querysolurion生成PlanStage(核心流程注释完毕):
plan_executor执行器(核心流程注释完毕):
plan_cache plan缓存(核心流程注释完毕):

shard分片源码实现(注释进行中):

分布式锁实现源码注释分析(100%注释):
代理定期更新config.mongos实现源码注释分析(100%注释):
cfg复制集库表结构管理(config.databases、config.collections)(100%注释):
分片片建shard key(100%注释):