网易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线程切换过多 • 优化思路 • 所有Buffer以16K的大包为单位写入网络 • 每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.2 – 4倍提升12.OSC • OSC解决方案 • DDB & pt-osc:基于锁的全量和触发器的增量 • 触发器导致线上事务变慢,锁释放变慢 • 全量扫描加锁导致锁冲突加剧 • 线上实施容易大量锁超时 • 优化方法 • 基于binlog实现增量更改 • 全量不加锁,增量用replace幂等语义 • 实现:DDB HamalSet & gh-ost • 优势:对线上几乎零影响13.未来规划 • 架构优化 • 优化管理架构,插拔所有平台 • 通用平台运维工具DDBAdmin • 数据迁移服务抽离和分治 • 蜂巢DDB • 云端一键部署,全方位管家服务 • 高可用,高可靠,低成本 • 2017年上半年,敬请期待**以上内容均来源于SDCC2016大会PPT**
1 0
- 网易DDB性能优化实践
- C#性能优化实践
- C#性能优化实践
- 性能优化实践
- C#性能优化实践
- C#性能优化实践
- C#性能优化实践
- C#性能优化实践
- C#性能优化实践
- C#性能优化实践
- C#性能优化实践
- Live555性能优化实践
- 宅米网性能优化实践
- Android 性能优化实践
- Web性能优化实践
- C#性能优化实践
- C++性能优化实践
- HTTPS性能优化实践
- 软件测试--APP测试注意
- DBSCAN
- Storm系列(十四)架构分析之Executor-输入和输出处理
- Ammeter 仪表板控件
- 球面数据拟合算法简介
- 网易DDB性能优化实践
- 根据两个已有表建立新表
- Storm系列(十五)架构分析之Executor-Spout
- Storm系列(十六)架构分析之Executor-Bolt
- Docker系列(一)安装
- Esper系列(三)Context和Group by
- php学习笔记01
- Docker系列(二)组件介绍
- 值得学习的C语言开源项目