• Stars
    star
    713
  • Rank 63,511 (Top 2 %)
  • Language
    C
  • Created over 5 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

中间件、高性能服务器、分布式存储等(redis、memcache、nginx、大容量redis pika、rocksdb、mongodb、wiredtiger存储引擎、高性能代理中间件)二次开发、性能优化,逐步整理文档说明并配合demo指导--每周末定时更新2-3篇技术文章及程序demo

middleware_development_learning

中间件、高性能服务器、分布式存储等(redis、memcache、pika、rocksdb、mongodb、wiredtiger、高性能代理中间件)二次开发、性能优化,逐步整理文档说明并配合demo指导

近期抽业余时间来总结多年工作中学习到的各种中间件、分布式存储、高性能服务端等技术,通过文章博客和程序demo等方式呈现给大家,暂定分享思路如下:

对外演讲

# 对外演讲内容
1 Qcon全球软件开发大会分享:OPPO万亿级文档数据库MongoDB集群性能优化实践
2 2019年mongodb年终盛会:OPPO百万级高并发MongoDB集群性能数十倍提升优化实践
3 2020年mongodb年终盛会:万亿级文档数据库集群性能优化实践
4 2021年dbaplus分享:万亿级文档数据库集群性能优化实践
5 2021年度Gdevops全球敏捷运维峰会:PB级万亿数据库性能优化及最佳实践

专栏

# 专栏名内容
1 infoq专栏:《MongoDB内核源码设计、性能优化、最佳运维实践》
2 oschina专栏:《mongodb内核源码中文注释详细分析及性能优化实践系列》
3 知乎专栏:《MongoDB内核源码设计、性能优化、最佳运维实践》
4 itpub专栏:《mongodb内核源码设计实现、性能优化、最佳运维实践》

分阶段分享

# 阶段 内容 说明
1 [第一阶段 分布式缓存源码学习、二次开发、性能及稳定性优化 主要涉及网络实现、memcache redis重要模块源码分析、memcache redis性能稳定性优化及二次开发等
2 [第二阶段 高性能代理中间件开发(nginx、wemproxy、dbproxy、mongos等源码进行二次开发) 主要涉及代理中间件源码分析、性能优化、二次开发等
3 [第三阶段 分布式大容量nosql存储系统二次开发(突破缓存内存容量限制) 主要涉及pika、tendis源码、rocksdb存储引擎源码分析及pika性能优化等
4 [第四阶段 mongodb数据库内核开发 主要涉及mongodb源码、mongos源码、rocksdb存储引擎源码、wiredtiger存储引擎源码分析及二次开发

第一阶段:分布式缓存开发、性能稳定性优化:

# 内容
1 memcached源码详细分析注释,带详尽中文注释及函数调用关系
2 借助redis已有的网络相关.c和.h文件,半小时快速实现一个epoll异步网络框架,程序demo
3 借助redis已有的网络相关.c和.h文件,半小时快速实现一个epoll异步网络框架,程序demo-文档说明
4 阻塞、非阻塞程序demo
5 阻塞、非阻塞、同步、异步、epoll说明
6 借助redis的配置解析模块,快速实现一个配置文件解析程序demo
7 借助redis的日志模块,快速实现一个同步日志写、异步日志写程序demo
8 借助redis的bio模块,快速实现线程池组demo
9 常用高并发网络线程模型设计(最全高并发网络IO线程模型设计及优化)

第二阶段:高性能代理中间件开发

# 内容
1 redis、memcached缓存代理twemproxy源码详细分析注释,带详尽中文注释及函数调用关系
2 nginx-1.9.2源码通读分析注释,带详尽函数中文分析注释
3 nginx多进程、高性能、低时延、高可靠机制应用于缓存中间件twemproxy,对twemproxy进行多进程优化改造,提升TPS,降低时延,代理中间件长连接百万TPS/短连接五十万TPS实现原理
4 常用高并发网络线程模型设计

第三阶段:wiredtiger、rocksdb存储引擎开发,大容量nosql存储系统二次开发

# 内容
1 文档数据库mongodb kv存储引擎wiredtiger源码详细分析注释
2 rocksdb-6.1.2 KV存储引擎源码中文注释分析
3 百万级高并发mongodb集群性能数十倍提升优化实践(上篇)

第四阶段:mongodb数据库源码学习,二次开发等

###《mongodb内核源码设计与实现》源码模块化分析

第一阶段:单机内核源码分析

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存储引擎设计与实现专栏分析(已分析部分) 完成expression tree解析优化处理、querySolution生成、最优索引选择等功能 详见知乎专栏:《MongoDB内核源码设计、性能优化、最佳运维实践》

第二阶段:复制集内核源码分析(已分析部分源码,待整理)

第三阶段:sharding分片内核源码分析(已分析部分源码,待整理)

<<千万级峰值tps/十万亿级数据量文档数据库内核研发及运维之路>>

# 文章内容
1 盘点 2020 - 我要为分布式数据库 mongodb 在国内影响力提升及推广做点事
2 万亿级数据库 MongoDB 集群性能数十倍提升及机房多活容灾实践
3 Qcon现代数据架构 -《万亿级数据库 MongoDB 集群性能数十倍提升优化实践》核心 17 问详细解答
4 话题讨论 - mongodb 相比 mysql 拥有十大核心优势,为何国内知名度不高?
5 万亿级数据库 MongoDB 集群性能数十倍提升及机房多活容灾实践
6 百万级高并发mongodb集群性能数十倍提升优化实践(上篇)
7 Mongodb网络传输处理源码实现及性能调优-体验内核性能极致设计
8 常用高并发网络线程模型设计及mongodb线程模型优化实践(最全高并发网络IO线程模型设计及优化)
9 Mongodb集群搭建一篇就够了-复制集模式、分片模式、带认证、不带认证等(带详细步骤说明)
10 Mongodb特定场景性能数十倍提升优化实践(记一次mongodb核心集群雪崩故障)
11 mongodb内核源码设计实现、性能优化、最佳运维系列-mongodb网络传输层模块源码实现二
12 为何需要对开源mongodb社区版本做二次开发,需要做哪些必备二次开发
13 对开源mongodb社区版本做二次开发收益列表
14 盘点 2020 - 我要为分布式数据库 mongodb 在国内影响力提升及推广做点事
15 mongodb内核源码实现、性能调优、最佳运维实践系列-数百万行mongodb内核源码阅读经验分享
16 mongodb内核源码实现、性能调优、最佳运维实践系列-mongodb网络传输层模块源码实现一
17 mongodb内核源码实现、性能调优、最佳运维实践系列-mongodb网络传输层模块源码实现二
18 mongodb内核源码实现、性能调优、最佳运维实践系列-mongodb网络传输层模块源码实现三
19 mongodb内核源码实现、性能调优、最佳运维实践系列-mongodb网络传输层模块源码实现四
20 mongodb内核源码实现、性能调优、最佳运维实践系列-command命令处理模块源码实现一
21 mongodb内核源码实现、性能调优、最佳运维实践系列-command命令处理模块源码实现二
22 mongodb内核源码实现、性能调优、最佳运维实践系列-command命令处理模块源码实现三
23 mongodb内核源码实现、性能调优、最佳运维实践系列-记mongodb详细表级操作及详细时延统计实现原理(教你如何快速进行表级时延问题分析)
24 mongodb内核源码实现、性能调优、最佳运维实践系列-Mongodb write写(增、删、改)模块设计与实现

其他分享

# 内容
1 阿里巴巴分布式消息队列中间件rocketmq-3.4.6源码分析
2 服务器时延统计工具tcprstat,增加时延阈值统计,记录超过阈值的包个数,并把数据包时间戳记录到日志文件,这样可以根据时间戳快速定位到抓包文件中对应的包,从而可以快速定位到大时延包,避免了人肉搜索抓包文件,提高问题排查效率
3 linux内核网络协议栈源码阅读分析注释
4 docker-17.05.0源码中文注释详细分析
5 lxc源码详细注释分析
6 source insight代码中文注释乱码、背景色等配置调整
7 linux内核协议栈TCP time_wait原理、优化、副作用
8 为何需要对开源社区版本mongodb做二次开发,需要做哪些二次开发
9 在线引流工具Tcpcopy原理、环境搭建、使用、采坑

技术交流群

对linux c/c++ nginx redis memcache twemproxy mongodb 中间件 存储引擎 分布式 高并发 高性能服务端等技术敢兴趣的同学可以加群: QQ交流群1(针对在校生)-(群号:568892619) QQ交流群2(针对已工作)-(581089275)

More Repositories

1

reading-code-of-nginx-1.9.2

nginx-1.9.2源码通读分析注释,带详尽函数中文分析注释以及相关函数流程调用注释,最全面的nginx源码阅读分析中文注释,更新完毕
C
4,135
star
2

Reading-and-comprehense-linux-Kernel-network-protocol-stack

linux内核网络协议栈源码阅读分析注释--带详尽中文分析注释以及相关流程分析调用注释,对理解分析内核协议栈源码很有帮助
C
1,189
star
3

Reading-and-comprehense-redis-cluster

分布式NOSQL redis源码阅读中文分析注释,带详尽注释以及相关流程调用注释,提出改造点,redis cluster集群功能、节点扩容、槽位迁移、failover故障切换、一致性选举完整分析,对理解redis源码很有帮助,解决了source insight中文注释乱码问题,更新完毕
C
676
star
4

reading-and-annotate-mongodb-3.6

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

reading-and-annotate-quic

quic、prot_quic、goquic、libquic源码中文注释分析,增加C++ quic-client和quic-server example 程序,便于快速掌握学习谷歌quic库源码和学习quic协议,作为新的网络加速协议,可以根据实际需要应用于自己的工程项目中。把google quic源码和goquic合并到一个工程编译安装
C
314
star
6

reading-and-annotate-rocketmq-3.4.6

阿里巴巴分布式消息队列中间件rocketmq-3.4.6源码分析、中文详细注释,停止更新
Java
190
star
7

tcprstat

服务器时延统计工具,在原有功能基础上,增加时延阈值统计,记录超过阈值的包个数,并把数据包时间戳记录到日志文件,这样可以根据时间戳快速定位到抓包文件中对应的包,从而可以快速定位到大时延包,避免了人肉搜索抓包文件,提高问题排查效率,所有参数可配置。可以以在线方式和离线方式分析redis、memcached、mysql、nginx等请求应答系统的时延,并定位慢响应数据报文。(源码学习交流QQ群:568892619)
C
166
star
8

reading-and-annotate-rocksdb-6.1.2

rocksdb-6.1.2 KV存储引擎源码中文注释分析,后期与mongodb默认KV存储引擎wiredtiger进行原理与性能比较,近期持续更新
C++
115
star
9

reading-and-annotate-mongodb-4.4

分布式文档数据库mongodb-4.4(mongos、mongod、wiredtiger存储引擎)源码中文注释分析,近期持续更新(近期重点)
C++
114
star
10

reading-and-annotate-docker-17.05.0

docker-17.05.0 containerd opencontainers/runc lxc mesos源码中文注释详细分析,带详细注释说明,学习容器技术很有帮助,近期持续更新
Go
66
star
11

reading-and-annotate-wiredtiger-3.0.0

文档数据库mongodb kv存储引擎wiredtiger源码详细分析注释
C
62
star
12

Reading-and-comprehense-twemproxy0.4.1

redis、memcached缓存代理twemproxy源码详细分析注释,带详尽中文注释及函数调用关系
C
53
star
13

reading-and-annotate-mongodb-5.0

分布式文档数据库mongodb-5.0(mongos、mongod、wiredtiger存储引擎)源码中文注释分析,近期持续更新(近期重点)
C++
51
star
14

Reading-and-comprehense-memcached-1.4.22

memcached源码详细分析注释,带详尽中文注释及函数调用关系,更新完毕
C
51
star
15

reading-and-annotate-nghttp2

HTTP/2库nghttp2源码中文注释分析, 后期不在更新,。停止分析nghttp2库主要原因:冗余代码太多,可读性差。如果想了解HTTP2代码实现过程,可以参考工程: reading-code-of-nginx-1.9.2;如果想学习quic实现过程,可以参考工程:reading-and-annotate-quic
C++
44
star
16

reading-and-annotate-lxc-1.0.9

容器技术:lxc-1.0.9 lxcfs-2.0.0 fuse-2.8.7源码详细注释分析
C
15
star
17

reading-and-annotate-mesos-1.2.0

Apache开源分布式资源管理框架mesos源码注释分析,新增mesos_framework_demo,带详细注释
C++
14
star