SlideShare a Scribd company logo
 
简介 谁使用 MySQL? 为什么使用 MySQL? 问题 性能 数据规模伸缩 功能特性 服务化 自动化
目标: 功能 : 响应时间 吞吐  解放大部分产品线  节约资源 分布式数据库需求 Fulltext  Snapshot Optimized alter 其他 单节点
单节点性能 性能 QPS ( 读  /  写 ) 响应时间  ( 平均  /  长耗时 ) 数据规模 问题 随机读 存储引擎 cache &  系统 cache 随机写  (LRU / checkpoint ...) buffered write  ordered  write  长耗时绝大部分的请求响应时间在 1ms 以内 IOPS 是读操作和写操作的瓶颈 !
Vs  硬盘  (sas 10k)  QPS  提升  700% Vs SSD (FTL Optimized) QPS  提升  250%   ,长耗时减少  95%   可用空间增多  &  使用寿命增加 通用型优化,读为主应用及写为主应用均适合  对应用完全透明,使用方式和以前一样 2007 年百度尝试 Flash ,  2008 年百度网页搜索全面使用 Flash 2008 年 MySQL 尝试使用 Flash,  2011 年百度 MySQL 全面使用 SSD 我们的优化结果
IO 设备特性 IO  设备  ( 硬盘  & SSD &  内存 ) 顺序写、顺序读、随机写、随机读 响应时间 带宽 访问密度 价格 Tape is dead, disk is tape, flash is disk, ram locality is king.  ——  Jim Gray
SSD Vs  硬盘 SSD 16K 随机读比硬盘提升  1860 % SSD 16K 随机写比硬盘提升  100 % SSD 16K 顺序写比硬盘提升  50 % SSD 16K 顺序写比其随机写提升  440 % SSD 1M 顺序写比 64 次 16K 随机写提升  800 % SSD 1M 顺序写比 64 次 16K 顺序写提升   68 % SSD 1M 顺序写比 1 次 16K 顺序写提升  3700 % 如何针对这些数据来设计系统 ?
优化手段 FTL in-page logging 其他 文件系统 l2fs,btrfs, zfs ... BFTL Kernel  flashcache 存储系统逻辑 append write random read merge
FTL IO  模型 随机写 随机读 In-page logging 20% log  空间 75% raid5  60%  使用率
存储系统逻辑 SSD/ 硬盘作为 SSD/ 硬盘的写 cache SSD 作为硬盘的读 cache SSD 作为 innodb buffer pool 的二级读 cache 远程 memory 作为 innodb buffer pool 的二级读 cache 不同 IO 模型分离  文件  /  设备  / IO 模型转化  /  分离
写 cache IO  模型 顺序写  ( 提升 800% ) 随机读 Merge Pages mapping mem: ssd = 1 : 350 Multi-Write 提升 68% 写瓶颈 iops ->  吞吐 读瓶颈 iops -> iops
写 cache   &  读 cache IOPS Vs  吞吐 读 Cache Vs  写 Cache 性价比 预热 可维护性 数据完整性  &  一致性 透明  &  通用 Nand flash Vs Nor flash 100ns 、写性能、价格、 容量、直接寻址 Snapshot (Redirect write) Btree (log-based  38x? ) / Btree patch compaction
其他 故障 ECC SLC Raid / Rebuild 架构 继续优化该版本 read cache / btree patch compaction  单节点 500G ~ 1T 功能特性增强 snapshot online alter table
分布式 产品定位 尽量保证数据库特性,提升数据规模 线上低延迟的访问 满足具有一定复杂关系的数据操作 设计原则 应用访问方式不变 应用知道数据逻辑分布 不同访问模式提供的功能不同 自动发现 / 人工决定 / 自动处理
总体架构
访问模式 Scan & Search 基于 Partition Key 单表单机 单表多机 多表单机 多表多机 不基于 Partition Key 单表 多表
数据划分 范围划分 散列取模划分 枚举划分 时间划分 组合划分 Binding 继承
负载均衡  &  数据迁移 负载均衡 目标 衡量标准 定期汇报 数据迁移 负载均衡 高可用
数据一致性 dbproxy 与 zookeeper zookeeper 内部数据一致性 同一 tablet 不同副本之间的数据一致性 ( 异步 / 半同步 ) 最终一致性  会话一致性 不同 tablet 之间的数据一致性 分布式事务  单机事务 + 最终一致性
系统可用性  &  可靠性 多副本 部署 切换 dbproxy zookeeper ts slave ts down / master ts down / tablet down / all tablet down auto-exchanger /  盘柜 mq
可扩展性 dbproxy zookeeper table 预防扩容 读性能引起  (QPS / Latency) 写性能引起 自动扩容 半自动扩容 合并、分裂
其他  &  开源 其他 接口  /  权限 备份 监控 混合运维 计算 工具  开源 单机性能优化 dbproxy
Thanks! Q & A

More Related Content

PPT
百度分布式数据库平台
PPT
OTN软硬件结合数据库解决方案
PPTX
Exadata那点事
PPTX
MySQL和IO(下)
PPT
淘宝商品库MySQL优化实践
PPTX
了解集群
PPT
数据库与ssd的实践与探索-2011数据库技术大会
PDF
Seqdb存储引擎
百度分布式数据库平台
OTN软硬件结合数据库解决方案
Exadata那点事
MySQL和IO(下)
淘宝商品库MySQL优化实践
了解集群
数据库与ssd的实践与探索-2011数据库技术大会
Seqdb存储引擎

What's hot (18)

PPT
大话Ssd(淘宝核心系统数据库组 褚霸)
PPT
SSD在淘宝的应用实践
PPT
C1000K高性能服务器构建技术
PDF
MySQL优化、新特性和新架构 彭立勋
PPTX
利用新硬件提升数据库性能
PPT
MogileFS
PPTX
Flash存储设备在淘宝的应用实践
PDF
构建基于Lamp的网站架构
PPT
腾讯大讲堂19 系统优化的方向
PPTX
“云存储系统”赏析系列分享三:Sql与nosql
DOCX
Private Cloud vs Public Cloud Analysis
PDF
Ceph bluestore-tiering-2018-11-15
ODP
PVE 4.1 HC 架構
PPTX
4 高阳 淘宝主站cgroup资源控制实践
PPT
MySQL调优
PDF
InnoDB IO优化
PPT
高级服务器设计和实现2
PPT
低成本和高性能MySQL云架构探索
大话Ssd(淘宝核心系统数据库组 褚霸)
SSD在淘宝的应用实践
C1000K高性能服务器构建技术
MySQL优化、新特性和新架构 彭立勋
利用新硬件提升数据库性能
MogileFS
Flash存储设备在淘宝的应用实践
构建基于Lamp的网站架构
腾讯大讲堂19 系统优化的方向
“云存储系统”赏析系列分享三:Sql与nosql
Private Cloud vs Public Cloud Analysis
Ceph bluestore-tiering-2018-11-15
PVE 4.1 HC 架構
4 高阳 淘宝主站cgroup资源控制实践
MySQL调优
InnoDB IO优化
高级服务器设计和实现2
低成本和高性能MySQL云架构探索
Ad

Viewers also liked (13)

PPT
几种Nosql介绍
PDF
百度系统部分布式系统介绍 马如悦 Sacc2010
PDF
大规模数据处理
PPTX
Hbase介绍
PPT
人人网技术经理张铁安 Feed系统结构浅析
PDF
雪球大数据体系实践
PPTX
高性能队列Fqueue的设计和使用实践
PDF
MongoDB 在盛大大数据量下的应用
PPTX
大规模数据处理
PDF
大数据时代feed架构 (ArchSummit Beijing 2014)
PDF
新浪微博Feed服务架构
PDF
深入了解Redis
PPTX
大鱼架构演进
几种Nosql介绍
百度系统部分布式系统介绍 马如悦 Sacc2010
大规模数据处理
Hbase介绍
人人网技术经理张铁安 Feed系统结构浅析
雪球大数据体系实践
高性能队列Fqueue的设计和使用实践
MongoDB 在盛大大数据量下的应用
大规模数据处理
大数据时代feed架构 (ArchSummit Beijing 2014)
新浪微博Feed服务架构
深入了解Redis
大鱼架构演进
Ad

Similar to 百度分布式数据库 刘斌 Sacc2010 (20)

PPT
腾讯大讲堂19 系统优化的方向
PPT
Alibaba数据库运维最佳实践
PPT
腾讯大讲堂19 系统优化的方向
PPT
数据库性能模型与容量规划
PPTX
Ocean base海量结构化数据存储系统 hadoop in china
PDF
利用统一存储获得无与伦比的速度,简化系统,并节省更多
PPT
Dfs ning
PPSX
浅谈 My sql 性能调优
PPSX
MySQL应用优化实践
PPT
MySQL新技术探索与实践
PDF
Mysql体系结构及原理(innodb)公开版
PPT
Altibase管理培训 管理篇
PPT
Hbase
PPT
Cassandra简介.ppt
PDF
Google LevelDB Study Discuss
PDF
Key value store
PDF
优酷 Web网站架构案例分析
PDF
Youku arch qcon2009_beijing
PPTX
應用Ceph技術打造軟體定義儲存新局
PDF
Hacking Nginx at Taobao
腾讯大讲堂19 系统优化的方向
Alibaba数据库运维最佳实践
腾讯大讲堂19 系统优化的方向
数据库性能模型与容量规划
Ocean base海量结构化数据存储系统 hadoop in china
利用统一存储获得无与伦比的速度,简化系统,并节省更多
Dfs ning
浅谈 My sql 性能调优
MySQL应用优化实践
MySQL新技术探索与实践
Mysql体系结构及原理(innodb)公开版
Altibase管理培训 管理篇
Hbase
Cassandra简介.ppt
Google LevelDB Study Discuss
Key value store
优酷 Web网站架构案例分析
Youku arch qcon2009_beijing
應用Ceph技術打造軟體定義儲存新局
Hacking Nginx at Taobao

百度分布式数据库 刘斌 Sacc2010

  • 1.  
  • 2. 简介 谁使用 MySQL? 为什么使用 MySQL? 问题 性能 数据规模伸缩 功能特性 服务化 自动化
  • 3. 目标: 功能 : 响应时间 吞吐 解放大部分产品线 节约资源 分布式数据库需求 Fulltext Snapshot Optimized alter 其他 单节点
  • 4. 单节点性能 性能 QPS ( 读 / 写 ) 响应时间 ( 平均 / 长耗时 ) 数据规模 问题 随机读 存储引擎 cache & 系统 cache 随机写 (LRU / checkpoint ...) buffered write ordered write 长耗时绝大部分的请求响应时间在 1ms 以内 IOPS 是读操作和写操作的瓶颈 !
  • 5. Vs 硬盘 (sas 10k) QPS 提升 700% Vs SSD (FTL Optimized) QPS 提升 250% ,长耗时减少 95% 可用空间增多 & 使用寿命增加 通用型优化,读为主应用及写为主应用均适合 对应用完全透明,使用方式和以前一样 2007 年百度尝试 Flash , 2008 年百度网页搜索全面使用 Flash 2008 年 MySQL 尝试使用 Flash, 2011 年百度 MySQL 全面使用 SSD 我们的优化结果
  • 6. IO 设备特性 IO 设备 ( 硬盘 & SSD & 内存 ) 顺序写、顺序读、随机写、随机读 响应时间 带宽 访问密度 价格 Tape is dead, disk is tape, flash is disk, ram locality is king. —— Jim Gray
  • 7. SSD Vs 硬盘 SSD 16K 随机读比硬盘提升 1860 % SSD 16K 随机写比硬盘提升 100 % SSD 16K 顺序写比硬盘提升 50 % SSD 16K 顺序写比其随机写提升 440 % SSD 1M 顺序写比 64 次 16K 随机写提升 800 % SSD 1M 顺序写比 64 次 16K 顺序写提升 68 % SSD 1M 顺序写比 1 次 16K 顺序写提升 3700 % 如何针对这些数据来设计系统 ?
  • 8. 优化手段 FTL in-page logging 其他 文件系统 l2fs,btrfs, zfs ... BFTL Kernel flashcache 存储系统逻辑 append write random read merge
  • 9. FTL IO 模型 随机写 随机读 In-page logging 20% log 空间 75% raid5 60% 使用率
  • 10. 存储系统逻辑 SSD/ 硬盘作为 SSD/ 硬盘的写 cache SSD 作为硬盘的读 cache SSD 作为 innodb buffer pool 的二级读 cache 远程 memory 作为 innodb buffer pool 的二级读 cache 不同 IO 模型分离 文件 / 设备 / IO 模型转化 / 分离
  • 11. 写 cache IO 模型 顺序写 ( 提升 800% ) 随机读 Merge Pages mapping mem: ssd = 1 : 350 Multi-Write 提升 68% 写瓶颈 iops -> 吞吐 读瓶颈 iops -> iops
  • 12. 写 cache & 读 cache IOPS Vs 吞吐 读 Cache Vs 写 Cache 性价比 预热 可维护性 数据完整性 & 一致性 透明 & 通用 Nand flash Vs Nor flash 100ns 、写性能、价格、 容量、直接寻址 Snapshot (Redirect write) Btree (log-based 38x? ) / Btree patch compaction
  • 13. 其他 故障 ECC SLC Raid / Rebuild 架构 继续优化该版本 read cache / btree patch compaction 单节点 500G ~ 1T 功能特性增强 snapshot online alter table
  • 14. 分布式 产品定位 尽量保证数据库特性,提升数据规模 线上低延迟的访问 满足具有一定复杂关系的数据操作 设计原则 应用访问方式不变 应用知道数据逻辑分布 不同访问模式提供的功能不同 自动发现 / 人工决定 / 自动处理
  • 16. 访问模式 Scan & Search 基于 Partition Key 单表单机 单表多机 多表单机 多表多机 不基于 Partition Key 单表 多表
  • 17. 数据划分 范围划分 散列取模划分 枚举划分 时间划分 组合划分 Binding 继承
  • 18. 负载均衡 & 数据迁移 负载均衡 目标 衡量标准 定期汇报 数据迁移 负载均衡 高可用
  • 19. 数据一致性 dbproxy 与 zookeeper zookeeper 内部数据一致性 同一 tablet 不同副本之间的数据一致性 ( 异步 / 半同步 ) 最终一致性 会话一致性 不同 tablet 之间的数据一致性 分布式事务 单机事务 + 最终一致性
  • 20. 系统可用性 & 可靠性 多副本 部署 切换 dbproxy zookeeper ts slave ts down / master ts down / tablet down / all tablet down auto-exchanger / 盘柜 mq
  • 21. 可扩展性 dbproxy zookeeper table 预防扩容 读性能引起 (QPS / Latency) 写性能引起 自动扩容 半自动扩容 合并、分裂
  • 22. 其他 & 开源 其他 接口 / 权限 备份 监控 混合运维 计算 工具 开源 单机性能优化 dbproxy