#reading-and-annotate-mongodb-3.6
mongodb-3.6源码注释分析,持续更新
===================================
# | 对外演讲 | 演讲内容 |
---|---|---|
1 | Qcon全球软件开发大会分享 | OPPO万亿级文档数据库MongoDB集群性能优化实践 |
2 | 2021年度Gdevops全球敏捷运维峰会 | PB级万亿数据库性能优化及最佳实践 |
3 | 2019年mongodb年终盛会 | OPPO百万级高并发MongoDB集群性能数十倍提升优化实践 |
4 | 2020年mongodb年终盛会 | 万亿级文档数据库集群性能优化实践 |
5 | 2021年dbaplus分享 | 万亿级文档数据库集群性能优化实践 |
# | 专栏名 | 专栏内容 |
---|---|---|
1 | infoq专栏 | 《MongoDB内核源码设计、性能优化、最佳运维实践》 |
2 | oschina专栏 | 《mongodb内核源码中文注释详细分析及性能优化实践系列》 |
3 | 知乎专栏 | 《MongoDB内核源码设计、性能优化、最佳运维实践》 |
4 | itpub专栏 | 《mongodb内核源码设计实现、性能优化、最佳运维实践》 |
# | 单机模块名 | 核心代码中文注释 | 说明 | 模块文档输出 |
---|---|---|---|---|
1 | 网络收发处理(含工作线程模型) | 网络处理模块核心代码实现(100%注释分析) | 完成ASIO库、网络数据收发、同步线程模型、动态线程池模型等功能 | 详见infoq专栏:《MongoDB内核源码设计、性能优化、最佳运维实践》 |
2 | command命令处理模块 | 命令处理相关模块源码分析(100%注释分析) | 完成命令注册、命令执行、命令分析、命令统计等功能 | 详见oschina专栏:《mongodb内核源码中文注释详细分析及性能优化实践系列》 |
3 | write写(增删改操作)模块) | 增删改写模块(100%注释分析) | 完成增删改对应命令解析回调处理、事务封装、storage存储模块对接等功能 | 详见知乎专栏:《MongoDB内核源码设计、性能优化、最佳运维实践》 |
4 | query查询引擎模块) | query查询引擎模块(核心代码注释) | 完成expression tree解析优化处理、querySolution生成、最优索引选择等功能 | 详见知乎专栏:《MongoDB内核源码设计、性能优化、最佳运维实践》 |
5 | concurrency并发控制模块 | 并发控制模块(核心代码注释) | 完成信号量、读写锁、读写意向锁相关实现及封装 | 详见infoq专栏:《MongoDB内核源码设计、性能优化、最佳运维实践》 |
6 | index索引模块 | index索引模块(100%注释分析) | 完成索引解析、索引管理、索引创建、文件排序等功能 | 详见oschina专栏:《mongodb内核源码中文注释详细分析及性能优化实践系列》 |
7 | storage存储模块) | storage存储模块(100%注释分析) | 完成存储引擎注册、引擎选择、中间层实现、KV实现、wiredtiger接口实现等功能 | 详见知乎专栏:《MongoDB内核源码设计、性能优化、最佳运维实践》 |
8 | wiredtiger存储引擎) | wiredtiger存储引擎设计与实现专栏分析(已分析部分) | 完成KV读写、存储结构、checkpoint择等主功能,待完善 | 详见知乎专栏:《MongoDB内核源码设计、性能优化、最佳运维实践》 |
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
- 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
- transport_layer_asio.h
- transport_layer_asio.cpp
- transport_layer_manager.h
- transport_layer_manager.cpp
- transport_layer.h
- service_executor.h
- service_executor_adaptive.cpp
- service_executor_adaptive.h
- service_executor_synchronous.cpp
- service_executor_synchronous.h
- service_entry_point.h
- service_entry_point_impl.cpp
- service_entry_point_impl.h
- service_entry_point_utils.cpp
- service_entry_point_utils.h
- service_entry_point_mongod.h
- service_entry_point_mongod.cpp
- service_entry_point_mongos.h
- service_entry_point_mongos.cpp
- server_status.cpp
- server_status.h
- server_status_internal.cpp
- server_status_internal.h
- server_status_metric.cpp
- server_status_metric.h
- 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
- query_request.cpp
- query_request.h
- canonical_query.cpp
- canonical_query.h
- parsed_projection.cpp
- parsed_projection.h
- expression_parser.cpp
- expression_parser.h
- expression.cpp
- expression.h
- expression_tree.cpp
- expression_tree.h
- planner_access.cpp
- planner_access.h
- planner_analysis.cpp
- planner_analysis.h
- query_planner.cpp
- query_planner.h
- 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
- ......
- database.cpp
- database.h
- database_impl.h
- database_impl.cpp
- database_holder.h
- database_holder.cpp
- database_holder_impl.cpp
- database_holder_impl.h
- database_catalog_entry.h (通过这里和KVStorageEngine关联)
- collection.cpp
- collection.h
- collection_impl.h
- collection_impl.cpp
- collection_info_cache.h
- collection_info_cache.cpp
- collection_info_cache_impl.cpp
- collection_info_cache_impl.h
- collection_options.cpp
- collection_options.h
- collection_catalog_entry.h (通过这里和KVStorageEngine关联)
- index_catalog.cpp
- index_catalog.h
- index_catalog_impl.h
- index_catalog_impl.cpp
- index_catalog_entry.h
- index_catalog_entry.cpp
- index_catalog_entry_impl.cpp
- index_catalog_entry_impl.h (通过这里和CollectionInfoCache、CollectionCatalogEntry、IndexAccessMethod等关联)
- index_create.cpp
- index_create.h
- index_create_impl.cpp
- index_create_impl.h
- record_data.cpp
- record_data.h
- record_store.h
- sorted_data_interface.h
- storage_engine.h
- storage_engine_lock_file.cpp
- storage_engine_lock_file.h
- storage_engine_metadata.cpp
- storage_engine_metadata.h
- storage_init.cpp
- storage_options.h
- storage_options.cpp
- kv_storage_engine.cpp
- kv_storage_engine.h
- kv_catalog.h
- kv_catalog.cpp
- kv_collection_catalog_entry.h(通过这里和catalog中间层collection衔接)
- kv_collection_catalog_entry.cpp
- kv_database_catalog_entry.cpp
- kv_database_catalog_entry.h(通过这里和catalog中间层database衔接)
- kv_database_catalog_entry_base.cpp
- kv_database_catalog_entry_base.h
- wiredtiger_global_options.cpp
- wiredtiger_global_options.h
- wiredtiger_init.h
- wiredtiger_init.cpp
- wiredtiger_kv_engine.h
- wiredtiger_kv_engine.cpp
- wiredtiger_parameters.cpp
- wiredtiger_parameters.h
- wiredtiger_record_store.cpp
- wiredtiger_record_store.h
- wiredtiger_recovery_unit.h
- wiredtiger_recovery_unit.cpp
- wiredtiger_server_status.cpp
- wiredtiger_server_status.h
- wiredtiger_session_cache.cpp
- wiredtiger_session_cache.h
- wiredtiger_size_storer.h
- wiredtiger_size_storer.cpp
- wiredtiger_util.cpp
- wiredtiger_util.h
- 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
https://github.com/y123456yz/reading-and-annotate-wiredtiger-3.0.0