y123456yz / Reading And Annotate Mongodb 3.6
Licence: apache-2.0
分布式文档数据库mongodb-3.6(mongos、mongod、wiredtiger存储引擎)源码中文注释分析,近期持续更新(源码学习交流QQ群:568892619)
Stars: ✭ 227
reading-and-annotate-mongodb-3.6
mongodb-3.6源码注释分析,持续更新
===================================
对外演讲
- Qcon全球软件开发大会分享:OPPO万亿级文档数据库MongoDB集群性能优化实践
- 2019年mongodb年终盛会:OPPO百万级高并发MongoDB集群性能数十倍提升优化实践
- 2020年mongodb年终盛会:万亿级文档数据库集群性能优化实践
- 2021年dbaplus分享:万亿级文档数据库集群性能优化实践
专栏
- infoq专栏:《MongoDB内核源码设计、性能优化、最佳运维实践》
- oschina专栏:《mongodb内核源码中文注释详细分析及性能优化实践系列》
- 知乎专栏:《MongoDB内核源码设计、性能优化、最佳运维实践》
- itpub专栏:《mongodb内核源码设计实现、性能优化、最佳运维实践》
其他
nginx高并发设计优秀思想应用于其他高并发代理中间件:
redis、nginx、memcache、twemproxy、mongodb等更多中间件,分布式系统,高性能服务端核心思想实现博客:
===================================
<<mongodb源码设计实现、性能优化、最佳运维实践>>
<<千万级峰值tps/十万亿级数据量文档数据库内核研发及运维之路>>
- 万亿级数据库 MongoDB 集群性能数十倍提升及机房多活容灾实践
- 百万级高并发mongodb集群性能数十倍提升优化实践(上篇)
- 百万级高并发mongodb集群性能数十倍提升优化实践(下篇)
- Mongodb网络传输处理源码实现及性能调优-体验内核性能极致设计
- 常用高并发网络线程模型设计及mongodb线程模型优化实践(最全高并发网络IO线程模型设计及优化)
- Mongodb集群搭建一篇就够了-复制集模式、分片模式、带认证、不带认证等(带详细步骤说明)
- Mongodb特定场景性能数十倍提升优化实践(记一次mongodb核心集群雪崩故障)
- mongodb内核源码设计实现、性能优化、最佳运维系列-mongodb网络传输层模块源码实现二
- 为何需要对开源mongodb社区版本做二次开发,需要做哪些必备二次开发
- 对开源mongodb社区版本做二次开发收益列表
- 盘点 2020 | 我要为分布式数据库 mongodb 在国内影响力提升及推广做点事
- 万亿级数据库 MongoDB 集群性能数十倍提升及机房多活容灾实践
- Qcon现代数据架构 -《万亿级数据库 MongoDB 集群性能数十倍提升优化实践》核心 17 问详细解答
- 话题讨论 | mongodb 相比 mysql 拥有十大核心优势,为何国内知名度不高?
- mongodb内核源码实现、性能调优、最佳运维实践系列-数百万行mongodb内核源码阅读经验分享
- mongodb内核源码实现、性能调优、最佳运维实践系列-mongodb网络传输层模块源码实现一
- mongodb内核源码实现、性能调优、最佳运维实践系列-mongodb网络传输层模块源码实现二
- mongodb内核源码实现、性能调优、最佳运维实践系列-mongodb网络传输层模块源码实现三
- mongodb内核源码实现、性能调优、最佳运维实践系列-mongodb网络传输层模块源码实现四
- mongodb内核源码实现、性能调优、最佳运维实践系列-command命令处理模块源码实现一
- mongodb内核源码实现、性能调优、最佳运维实践系列-command命令处理模块源码实现二
- mongodb内核源码实现、性能调优、最佳运维实践系列-command命令处理模块源码实现三
- mongodb内核源码实现、性能调优、最佳运维实践系列-记mongodb详细表级操作及详细时延统计实现原理(教你如何快速进行表级时延问题分析)
- mongodb内核源码实现、性能调优、最佳运维实践系列-Mongodb write写(增、删、改)模块设计与实现
说明:
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
源码中文已注释代码列表如下:
boost-asio网络库/定时器源码实现注释(只注释mongodb相关实现的asio库代码)(100%注释):
- asio/include/asio/detail/impl/scheduler.ipp
- asio/include/asio/detail/impl/epoll_reactor.ipp
- asio/include/asio/detail/scheduler.hpp
- asio/include/asio/detail/impl/scheduler.hpp
- asio/include/asio/detail/timer_queue.hpp
- asio/include/asio/detail/timer_queue_base.hpp
- asio/include/asio/detail/timer_queue_set.hpp
- asio/include/asio/detail/impl/timer_queue_set.ipp
- asio/include/asio/detail/epoll_reactor.hpp
- asio/include/asio/detail/impl/epoll_reactor.hpp
- asio/include/asio/impl/read.hpp
- asio/include/asio/impl/write.hpp
- asio/include/asio/basic_socket_acceptor.hpp
- asio/include/asio/detail/reactive_socket_service.hpp)
- asio/include/asio/basic_socket_acceptor.hpp
- asio/include/asio/basic_stream_socket.hpp
- asio/include/asio/detail/reactive_socket_service_base.hpp
- asio/include/asio/detail/reactive_socket_recv_op.hpp
- asio/include/asio/detail/reactor_op.hpp
- asio/include/asio/detail/scheduler_operation.hpp
- asio/include/asio/detail/deadline_timer_service.hpp
mongodb网络传输模块(transport)处理实现(100%注释):
transport_layer传输层子模块:
- transport_layer_asio.h
- transport_layer_asio.cpp
- transport_layer_manager.h
- transport_layer_manager.cpp
- transport_layer.h
Ticket数据收发回调处理子模块(100%注释):
Session会话子模块(100%注释):
service_state_machine状态机子模块(100%注释):
service_executor服务运行(工作线程模型)子模块(100%注释):
- service_executor.h
- service_executor_adaptive.cpp
- service_executor_adaptive.h
- service_executor_synchronous.cpp
- service_executor_synchronous.h
service_entry_point_impl服务入口子模块(100%注释):
- service_entry_point.h
- service_entry_point_impl.cpp
- service_entry_point_impl.h
- service_entry_point_utils.cpp
- service_entry_point_utils.h
message/DbMessage/OpMsgRequest协议处理(100%注释):
时间嘀嗒及系统级定时器实现(100%注释):
mongod/mongos服务入口处理(100%注释):
- service_entry_point_mongod.h
- service_entry_point_mongod.cpp
- service_entry_point_mongos.h
- service_entry_point_mongos.cpp
command命令处理模块(注释完毕,命令太多,请参考前面的《command命令处理模块源码实现》):
db.serverStatus()相关统计(注释完毕):
- server_status.cpp
- server_status.h
- server_status_internal.cpp
- server_status_internal.h
- server_status_metric.cpp
- server_status_metric.h
stats相关统计(注释完毕):
- counters.cpp
- counters.h
- operation_latency_histogram.cpp
- operation_latency_histogram.h
- top.cpp
- top.h
- latency_server_status_section.cpp
- toplatency_server_status_sectionh
OpMsgRequest和写write_ops:(insert、update、delete)转换操作(100%注释): :
write写模块:
write处理入口(100%注释):
OpMsgRequest和写write_ops:(insert、update、delete)转换操作(100%注释): :
增删改处理(100%注释): :
query请求处理模块:
query_request请求解析和canonical_query规范化转换操作(核心流程注释完毕):
- query_request.cpp
- query_request.h
- canonical_query.cpp
- canonical_query.h
- parsed_projection.cpp
- parsed_projection.h
MatchExpression tree生成及优化过程(核心流程注释完毕):
- expression_parser.cpp
- expression_parser.h
- expression.cpp
- expression.h
- expression_tree.cpp
- expression_tree.h
get_executor获取PlanExecutor(核心流程注释完毕):
QueryPlannerIXSelect实现MatchExpression tree相关node关联对应RelevantTag(核心流程注释完毕):
plan_enumerator轮询枚举每个查询所有的候选索引信息(核心流程注释完毕):
index_tag相关(核心流程注释完毕):
生成QuerySolutionNode tree及querysolution(核心流程注释完毕):
- planner_access.cpp
- planner_access.h
- planner_analysis.cpp
- planner_analysis.h
- query_planner.cpp
- query_planner.h
get_executor根据querysolurion生成PlanStage(核心流程注释完毕):
PlanStage(核心流程注释完毕):
- plan_stage.cpp
- plan_stage.h
- plan_stats.cpp
- plan_stats.h
- stage_builder.cpp
- stage_builder.h
- multi_plan.cpp
- multi_plan.h
- subplan.cpp
- subplan.h
- stage_types.cpp
- collection_scan.h
- collection_scan.cpp
- collection_scan.h
- index_scan.cpp
- index_scan.h
- fetch.cpp
- fetch.h
- sort.cpp
- sort.h
- sort_key_generator.cpp
- sort_key_generator.h
- projection.cpp
- projection.h
- limit.cpp
- limit.h
- skip.cpp
- skip.h
- cached_plan.cpp
- cached_plan.h
- update.cpp
- update.h
- delete.cpp
- delete.h
- ......
plan_ranker对每个候选solution打分,选出最优索引(核心流程注释完毕):
get_executor根据querysolurion生成PlanStage(核心流程注释完毕):
plan_executor执行器(核心流程注释完毕):
plan_cache plan缓存(核心流程注释完毕):
shard分片源码实现(注释进行中):
分布式锁实现源码注释分析(100%注释):
- dist_lock_catalog_impl.cpp
- dist_lock_catalog_impl.h
- dist_lock_manager.cpp
- dist_lock_catalog.h
- dist_lock_catalog_impl.cpp
- dist_lock_catalog_impl.h
- dist_lock_catalog_impl.cpp
- dist_lock_manager.cpp
- type_lockpings.cpp
- type_lockpings.h
- type_locks.cpp
- type_locks.h
- configsvr_enable_sharding_command.h
代理定期更新config.mongos实现源码注释分析(100%注释):
cfg复制集库表结构管理(config.databases、config.collections)(100%注释):
分片片建shard key(100%注释):
mongodb存储引擎wiredtiger源码分析
https://github.com/y123456yz/reading-and-annotate-wiredtiger-3.0.0
rocksdb存储引擎源码分析
https://github.com/y123456yz/reading-and-annotate-rocksdb-6.1.2
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].