mongodb内核源码实现、性能调优、最佳运维实践系列-command命令处理模块源码实现二
本文为mongodb内核源码实现、性能调优、最佳运维实践系列-command命令处理模块源码实现二
mongodb内核源码实现、性能调优系列-为何要对开源mongodb数据库内核做二次开发
Mongodb数据库版本包含企业版本和社区版本,他们的区别是企业版本相比有更多功能,使用企业版本必须购买付费,所以mongodb部分核心功能没有开源。为了增强mongodb集群稳定性,企业需要对开源版本内核进行二次开发,主要包括以下功能模块的开发(增加以下功能后,会有很好的收益)
mongodb内核源码实现、性能调优、最佳运维实践系列-command命令处理模块源码实现一
中分享了mongodb内核底层网络IO处理相关实现,包括套接字初始化、一个完整mongodb报文的读取、获取到DB数据发送给客户端等。Mongodb支持多种增、删、改、查、聚合处理、cluster处理等操作,每个操作在内核实现中对应一个command,每个command有不同的功能,mongodb内核如何进行command源码处理将是本文分析的重点
mongodb内核源码实现、性能调优、最佳运维实践系列-网络传输层模块源码实现四
本文分析网络传输层模块中的最后一个子模块:service_executor服务运行子模块,即线程模型子模块。在阅读该文章前,请提前阅读下、、,这样有助于快速理解本文分享的线程模型子模块。
MongoDB 4.2分片集群搭建及与3.4分片集群搭建时的一些异同
MongoDB 4.2分片集群搭建及与3.4分片集群搭建时的一些异同
mongodb内核源码实现、性能调优、最佳运维实践系列-网络传输层模块源码实现三
在之前的和一文中分析了如何阅读百万级大工程源码、Asio网络库实现、线程模型、transport_layer套接字处理及传输层管理子模块、session会话子模块、Ticket数据收发子模块、service_entry_point服务入口点子模块。 本文将继续分析网络传输层模块中service_state_machine状态机调度子模块内核源码实现。
mongodb内核源码实现、性能调优、最佳运维实践系列-网络传输层模块源码实现二
在之前的一文中分析了如何阅读百万级大工程源码、Asio网络库实现、transport传输层网络模块中线程模型实现,但是由于篇幅原因,传输层网络模块中的以下模块实现原理没有分析,本文降将继续分析遗留的网络子模块二源码实现
mongodb内核源码实现、性能调优、最佳运维实践系列-网络传输层模块源码实现一
开源mongodb代码规模数百万行,本篇文章内容主要分析mongodb网络传输模块内部实现及其性能调优方法,学习网络IO处理流程,体验不同工作线程模型性能极致设计原理。 此外,mognodb网络工作线程模型设计非常好,不仅非常值得数据库相关研发人员学习,中间件、分布式、高并发、服务端等相关研发人员也可以借鉴,极力推荐大家学习。
mongodb源码实现、调优、最佳实践系列-数百万行mongodb内核源码阅读经验分享
开源mongodb代码规模数百万行,本篇文章内容主要目的就是引导大家快速进行百万级别规模源码阅读,做到不同大工程源码”举一反三”快速阅读的目的。
redis安装
redis学习笔记01- redis 的安装
Mongodb特定场景性能数十倍提升优化实践(记一次mongodb核心集群雪崩故障)
Mongodb 特定场景性能数十倍提升优化实践 ( 记一次 mongodb 核心集群雪崩故障 )关于作者前滴滴出行技术专家,现任OPPO 文档数据库 mongodb 负责人,负责 oppo 千万级峰值 TPS/ 十万亿级数据量文档数据库 mongodb&nbs
Mongodb特定场景性能数十倍提升优化实践(记一次mongodb核心集群雪崩故障)
某核心JAVA长连接服务使用mongodb作为主要存储,客户端数百台机器连接同一mongodb集群,短期内出现多次性能抖动问题,此外,还出现一次“雪崩”故障,同时流量瞬间跌零,无法自动恢复。本文分析这两次故障的根本原因,包括客户端配置使用不合理、mongodb内核链接认证不合理、代理配置不全等一系列问题,最终经过多方努力确定问题根源。
常用高并发网络线程模型性能优化实现-体验百万级高并发线程模型设计
服务端通常需要支持高并发业务访问,如何设计优秀的服务端网络IO工作线程/进程模型对业务的高并发访问需求起着至关重要的核心作用。本文总结了了不同场景下的多种网络IO线程/进程模型,并给出了各种模型的优缺点及其性能优化方法,非常适合服务端开发、中间件开发、数据库开发等开发人员借鉴。
百万级高并发mongo集群性能数十倍提升优化实践(上)-2019年mongodb中文社区年度一等奖
本文为2019年mongodb中文社区年度一等奖分享,本文分享某线上核心集群,该集群流量非常高,峰值突破百万级,经过一些列优化该集群性能得到了数百倍提升。本文是《百万级高并发mongodb集群性能数十倍提升优化实践》上篇。
Nginx多进程高并发、低时延、高可靠机制在twemproxy缓存代理中间件中的应用
nginx是一款非常优秀的代理中间件,是代理中间件最典型的性能比较牛逼的一款。本文借助nginx的优秀设计思想,把nginx高性能、稳定性等优秀特性应用于缓存中间件twemproxy,性能得到极好的性能提升。
Redis常见延迟问题排查手册!附33条优化建议
Redis作为内存数据库,拥有非常高的性能,单个实例的QPS能够达到10W左右。但我们在使用Redis时,经常时不时会出现访问延迟很大的情况,如果你不知道Redis的内部实现原理,在排查问题时就会一头雾水。很多时候,Redis出现访问延迟变大,都与我们的使用不当或运维不合理导致的。Redis变慢了?常见延迟问题定位与分析下面我们就来分析一下Redis在使用过程中,经常会遇到的延迟问题以及如何定位和
【技术总结】从Hash索引到LSM树
前言数据库算是软件应用系统中最常用的一类组件了,不管是一个庞大而复杂的电商系统,还是一个简单的个人博客,多多少少都会用到数据库,或是存储海量的数据,或是存储简单的状态信息。一般地,我们都喜欢将数据库划分为关系型数据库和非关系型数据库(又称NoSQL数据库),前者的典型代表是MySQL数据库,后者的典型代表是HBase数据库。不管是关系型,还是非关系型,数据库都离不开两个最基本的功能:(1)数据存储
Cassandra Gossip协议的二三事儿
Gossip协议是Cassandra维护各节点状态的一个重要组件,下面我们以Gossip协议三次握手为线索逐步分析Gossip协议源码。Gossip协议通过判断节点的generation和version 来确认节点状态信息新旧,如果节点重启,则generation加一,version每次从零开始计算。所以 generation是大版本号,version为小版本号,理解这个概念对后面的握手逻辑有很大
Redis 分析工具 redis-rdb-tools
redis 是基于内存的KV数据库,内存作为存储介质,关注内存的使用情况是一个重要的指标。解析内存有两种方法,一个是通过scan遍历所有key,二是对rdb文件进行分析rdb 是rdb-tools工具包其中之一的工具,也是解析dump.rdb文件的工具。 1、生成所有数据库和键中数据的内存报告 2、将转储文件转换为JSON 3、使用标准差异工具比较两个转储文件rdbt
MongoDB 访问超时
MongoDB版本:3.2.6cacheSizeGB: 32引擎:WiredTiger架构:副本集业务请求MongoDB出现超时现象。查看MongoDB日志,存在大量的慢更新语句,通过netdata查看服务器监控,排除io问题,发现单核CPU持续出现100%通过pidstat查看MongoDB进程的CPU使用情况[root@127-0-0-1 ~]# pidstat