网易DDB性能优化实践

来源:互联网 发布:lol末日人工智能奖励 编辑:程序博客网 时间:2024/06/03 11:27
PPT主题:网易DDB性能优化实践嘉宾:马进(@马进app)公众号:datamanagementDDB:分布式数据库1.分库分表数据库DDB  • 海量结构化数据存储,TB级别热点数据  • 高并发访问,应对OLTP在线事务型的应用  • 数据扩容,在线增删数据库节点,完善的DBA工具  • 透明分库分表,MySQL通信协议兼容2.分区方案选型  • 常规:取模哈希 + 桶(虚拟节点)  • 桶 + 取模哈希 + 均衡策略 = 单调性 + 均衡性 + 易用性  • 支持自定义哈希函数,可定制List和range分区  • 不能迁移的分区都是耍流氓(重点)3.增量迁移工具Hamal  • 库迁移场景:节点扩容缩容,集群机房迁移  • 表迁移场景:表级扩容缩容,更改均衡策略/字段  • 功能亮点:断点续传,并行复制  功能:记录Binlog位置点,isql全量迁移,Hamal增量复制,切表/切库4.分布式事务  • 透明的两阶段提交过程  • 系统自动识别是否需要两阶段,优先一阶段    insert into A values(1, ’test1’),(2, ’test2’);5.分布式执行计划6.功能特性  • 90%以上的SQL92兼容性,向MySQL语法靠拢  • 命令行工具isql,管理工具DBAdmin  • 支持数据节点手动或自动fail over  • 基于hint的读写分离功能  • 两种全局自增长ID实现  • 更多丰富的hint功能7.完善,无侵入的云端解决方案  • 延展性:查询服务器无状态,支持无缝水平扩展  • 扩展性:支持不同语言,不同实现的MySQL客户端访问DDB  • 可用性:RDS数据节点基于IP漂移的高可用方案  • 易用性:云端一键部署,完善的WEB管理工具8.DDB架构变迁  • DBI架构  • Proxy (QS) 架构  • DBI模式——与应用绑定     • 部署简单,节省机器,好运维     • 连接收敛问题     • 版本不好管理     • 问题难以跟踪  • Proxy模式——与应用解耦     • 单独部署Proxy节点     • 解决连接收敛问题     • 版本便于管理,应用无感知升级/回退     • 问题好跟踪,容易保留现场     • 应用端无侵入,开发者喜闻乐见  • DDB私有云服务  • DDB私有云架构  • DDB云端架构优化9.性能优化实践  • 分库分表比单机性能提升多少?     • 分库分表benchmark一般不如单机,哪个好取决于MySQL是否到瓶颈     • 分库分表性能指标:单节点策略下比吞吐率比单机折损多少(DDB在18% – 35%)10.Proxy Buffer优化  • DDBProxy模块实现     • 基于DBI做分库分表     • Server层做编码解码     • 特殊SQL支持 (show命令)     • 基于netty4网络框架构建  • 结果集编码     • 结果集大小不可知     • 编码以列值为单元  • 存在问题     • Buffer碎片化     • NIO线程切换过多  • 优化思路     • 所有Buffer16K的大包为单位写入网络     • 每100行(why?)列值的编码合并到16K的Buffer中     • Buffer编码溢出后申请另一个16K的Buffer串联起来     • Global buffer pool + Connection local buffer chain  • 进一步优化     • Buffer溢出后中断编码,当前Buffer写入网络后继续     • 判断溢出在一行数据编码后,写完的Buffer挂到最后面     • 一般BufferList不会超过2个(除非一个数据行超过16K)11.DBI NIO优化  • 通信模式     • Proxy <——> Client: Netty NIO     • Proxy <——> DBN:Connector/j BIO     • BIO阻塞式通信,占用大量CPU  • 优化方法     • 思路1:自研到MySQL的NIO驱动     • 思路2:将Connector/j的底层通信依赖Netty     • 优化效果:CPU使用率1.24倍提升12.OSC  • OSC解决方案     • DDB & pt-osc:基于锁的全量和触发器的增量     • 触发器导致线上事务变慢,锁释放变慢     • 全量扫描加锁导致锁冲突加剧     • 线上实施容易大量锁超时  • 优化方法     • 基于binlog实现增量更改     • 全量不加锁,增量用replace幂等语义     • 实现:DDB HamalSet & gh-ost     • 优势:对线上几乎零影响13.未来规划  • 架构优化     • 优化管理架构,插拔所有平台     • 通用平台运维工具DDBAdmin     • 数据迁移服务抽离和分治  • 蜂巢DDB     • 云端一键部署,全方位管家服务     • 高可用,高可靠,低成本     • 2017年上半年,敬请期待**以上内容均来源于SDCC2016大会PPT**
1 0