《打造开发者友好的分布式数据库_杨传辉.pdf》由会员分享,可在线阅读,更多相关《打造开发者友好的分布式数据库_杨传辉.pdf(36页珍藏版)》请在三个皮匠报告上搜索。
1、杨传辉OceanBase CTO打造开发者友好的分布式数据库OceanBase 整体架构演进2010 20152016 20212022 OceanBase0.10.5单写多读架构OceanBase1.x3.x全分布式架构OceanBase4.x单机分布式一体化架构稳定可靠稳定可靠很多个 0 前面那个 1海恩法则29轻微事故每一起严重事故的背后,必然有300未遂先兆1000事故隐患次起起支付宝 OceanBase 稳定性最佳实践数据一致性:应校尽校混沌工程:断网演练,持续备份恢复周边应用核心应用(流水型)核心应用(状态型)区分流水库与状态库高性能高性能、低门槛、低门槛一体化架构提升性能,降低门
2、槛业界 NewSQL 系统单机性能有较大差距point selectread onlywrite onlyread writeinsertupdate non indexYugabyteDB 2.15.1.095,68965,29921,04042,3929,82341,152CockroachDB 22.1.356,69922,40617,71516,72711,71623,727MySQL 8.0496,464260,336313,009219,206124,834113,61695,689 65,299 21,040 42,392 9,823 41,152 56,699 22,406 1
3、7,715 16,727 11,716 23,727 496,464 260,336 313,009 219,206 124,834 113,616 0100,000200,000300,000400,000500,000600,000YugabyteDB 2.15.1.0CockroachDB 22.1.3MySQL 8.032c*3 节点,500G 内存,NVMe SSDQPS单机性能不足使得 NewSQL 无法成为主流数据库MySQLPostgreSQLNewSQL分库分表HBase分布式表格Cassandra分布式 KV分布式系统百家争鸣,没有哪一类产品能够同时满足开发者的扩展性、功能
4、和性能需求开发者需要一个兼具分布式扩展性和单机完备功能&高性能的单机分布式一体化数据库为什么一体化架构能够同时做到可扩展和高性能?分布式数据库 OLTP 应用场景:大部分为单机读写(比例 80%),少部分为跨机读写(小于 20%)分布式可扩展数据分布数据重分布不支持动态扩展集中式数据库存储层数据动态分布每条 SQL 一次远程访问NewSQL单机单日志流分区动态绑定到日志流单机读写没有分布式 overheadOceanBase 4.x数据预先分区,各分区独立日志流大量分区管理 overheadOceanBase 1.x3.xIBMSQL 层KV 层日志流日志流日志流日志流日志流日志流日志流一体化
5、架构从单机到分布式对应用无感知日志流日志流客户端客户端MySQL 兼容协议单机拓展到分布式日志流迁移中MySQL 兼容协议一体化架构单机性能超越 MySQLpoint selectread onlyread writewrite onlyinsertupdate non indexMySQL 8.0501,519249,230210,091288,776107,786108,997OceanBase 4.1712,266311,078292,658420,599234,703256,710501,519 249,230 210,091 288,776 107,786 108,997 712,2
6、66 311,078 292,658 420,599 234,703 256,710 0100,000200,000300,000400,000500,000600,000700,000800,000MySQL 8.0OceanBase 4.132c 测试环境MySQL 8.0 vs OceanBase 4.1.0.0QPS一体化架构降低开发者使用门槛128GB64GB4C32G/4C16G/4C8G单一 OBServer 进程+主备模式与单机数据库完全一样的使用方式功能功能强大强大一份数据既做交易又做分析HTAP 系统的适用场景数据仓库会员交易支付账务适合 OLTP(含复杂查询)和实时分析,
7、但无法在一套系统同时做OLTP 和离线数仓分析HTAP往往是轻量级分析,看重易用性,适合 HTAP中小企业单个业务往往是轻量级分析,适合 HTAP;公司级数仓数据量大,分析请求很复杂,适合单独的数据仓库或者数据湖大企业交易型应用分析型应用交易型应用分析型应用交易型应用分析型应用表同步两个系统一个系统,行存/PAX+列存一个系统,行存/PAX主副本提供 HTAP 服务成本低,性价比高数据无延迟,保证一致性主副本 OLTP+备副本实时 OLAP成本低,性价比高主备副本之间有毫秒级延迟主库 OLTP+备库 OLAP成本高,性价比低两个系统导致较大延迟和数据不一致风险HTAP 的关键在于采用一个系统,
8、一份 schema一份数据能否解决资源隔离的问题?开启 cgroup CPU 隔离IO 隔离(4.x 新增)Tenant 1Tenant 1:weight 20000weight 20000Tenant 3Tenant 3:iopsiops 1000010000Tenant 2Tenant 2:weight 10000weight 10000Tenant 4Tenant 4:max_iopsmax_iops 50005000海底捞 HTAP 一份数据两份收益,TCO 下降 35%OLTP 分库分表数据传输OLTP 单机数据库实时 OLAP排号会员营销交易社区POSOceanBaseHTAP扩展
9、能力不足无法应对节假日流量突增高峰过后无法及时缩容交易到分析链路复杂交易到分析同步存在时延无限扩展能力连续服务极致压缩和多租户混部一份数据两份收益,TCO 下降%AP 能力相比之前提升%30357*24符合技术趋势符合技术趋势多云原生从上云到多云原生上云裸金属服务器大规格自建产品工具云原生存储计算分离小规格云上生态多云原生开放的存储计算分离多云安全多云生态开放的存储计算分离是多云原生的必然路径开放的存储计算分离:基于不同云存储做二次开发,通过缓存热点数据解决云存储延迟问题不同云存储的功能、性能(带宽、延迟)、成本、稳定性有较大差异阿里云 OSS 支持追加写,腾讯 COS 和 AWS S3 不支
10、持云存储带宽远低于本地存储带宽=更好的数据压缩对象存储成本低=冷数据放对象存储云盘在某些场景稳定性较差=数据库副本自动切流在同样的性能下,相比云上 MySQL,OceanBase 可帮助用户直接降低18.57%18.57%至42.05%42.05%整体成本1.2281.3941.6162.16911.0451.1061.25700.511.522.5150G300G500GB1TBMySQL主备(ecs.g6.xlarge*2 4C16G+ESSD PL1)OceanBase三副本(ecs.g6.xlarge*2+ecs.s6-c1m1.small+ESSD PL1)1.2331.3031.3
11、951.62811.0191.0441.10800.20.40.60.811.21.41.61.8150G300G500GB1TBMySQL主备(m6i.xlarge*2 4C16G+IO2)OceanBase三副本(m6i.xlarge*2+t2.micro 4C16G+IO2)阿里云 OceanBase 与 MySQL 性价比(Price/Performance)AWS OceanBase 与 MySQL 性价比(Price/Performance)4C16G sysbench OceanBase 比 MySQL 8.0 高22.2%22.2%OceanBase 存储成本大约是 MySQL
12、 的1/31/3注释:MySQL 部署主备库,OceanBase 部署三个副本,两个全功能副本+一个日志副本性价比:让我们在云上算个帐GCash 借助 OceanBase Cloud 灵活部署存储空间下降 70%资源成本降低 40%随规模增长“越用越贵”数据“存不下”并发“扛不住”资源碎片化维护管理难人力投入和资源成本,成本收益“不匹配”频繁拆分重构,风险高、效率低多租户+高压缩“越用越划算”分布式自由扩展告别拆分重构HTAP 混合负载数据变现提速消减复杂度专注业务创新7*24 专业服务,省心用、放心用大集群资源池化TCO 降低 40%过去现在易使用、易参与易使用、易参与基于开源持续降低开发者
13、参与门槛越来越多的用户把社区版用在 OLTP 核心场景核心 OLTP 基础能力从“能用”到更“好用”从 open-core 到完备工具核心引擎核心引擎开放开放生态生态建设建设第一阶段第一阶段第二阶段第二阶段第三阶段第三阶段3.x 开源实现从无到有,从能用到“更好用”易用性易用性改进改进4.x 安装更简单2 分钟一键安装部署下载离线安装包 tar xf oceanbase-all-in-one.xxx.tar.gz bin/install.sh source/.bash_rc obd demo执行 obd demo解压安装 wget oceanbase-all-in-one.xxx.tar.gz
14、4.x 文档更有效:基于用户旅程和用户场景重构文档20%文档解决 80%用户问题按照使用链路和场景组织用户旅程(user journey)从“我们有什么”到“我们解决什么问题”文档不好找文档不好用20%面向场景满足高频使用诉求了解OceanBase 简介试用快速上手开发应用开发部署部署数据库迁移数据迁移管理管理数据库80%按需检索参考参考指南常见问题术语以隔离节点为例以隔离节点为例为什么要隔离节点什么情况下需要隔离节点隔离节点的逻辑如何隔离节点详细的操作步骤和适用场景必要的风险提示和使用建议4.x 工具更轻量推出开发者更友好的 OCP Express原来现在使用独立的 OceanBase 集群
15、作为元数据存储介质,独立部署,安装包 1.7GB数据库组件及相关资源的全生命周期管理,巡检、告警等平台级功能OceanBase 管理平台支持多 OceanBase 集群管理,具备规模化管控能力多集群管理中心化部署依赖于 Docker 管理,对运维要求高运维复杂对存储和计算等资源占用较多,使用门槛高高资源占用代码未开源闭源轻量化的数据库管理工具,具备基础数据库管理功能,以及监控、性能、诊断、日志等实时信息展示轻量化工具支持对本地集群的管理,功能聚焦,操作简单本地集群管理内置于 OceanBase 集群中,在使用 OBD 部署 OceanBase 集群时可选择安装该工具。安装包仅 80MB集群内置
16、作为 OceanBase 的工具插件,使用 OBD 进行管理运维简单将于 2023 年 6 月进行代码开源开源低资源占用本地集群中少量元数据存储,资源占用低4.x 共建更简单统一社区版和企业版的代码分支3.1 opensource3.2 releasemastermaster3.1 opensource3.2 releasemastermaster3.1内部开源内部开源Cherry-pickCherry-pick双向同步双向同步双向同步过去现在4.x 社区更活跃GitHub 活跃度快速提升代码提交频率Issue 首次响应时间代码贡献者数量PR 处理时间OceanBase 4.1 正式发布,面向
17、开发者的里程碑版本内核能力性能提升兼容性运维TP TP 性能优化性能优化AP AP 性能优化性能优化旁路导入旁路导入兼容兼容 MySQLMySQL 8.08.0MySQL MySQL BinBinloglog易用性快速安装部署快速安装部署OCP ExpressOCP Express场景化文档场景化文档日志可读性日志可读性统计信息统计信息分布式事务存储优化租户级备库RTO 为开发者而生 _三条超级符号交相呼应,取自 OceanBase 经典“三副本”架构 含义诠释含义诠释 _ _OceanBase 新 Logo 的设计灵感源自“流动的数据”,数据是数字经济时代最重要的生产要素,它无处不在,它散落在城市的每一个角度。当数据有机排列组合也即“流动起来”时,它将具备无穷的想象力。OceanBase 作为原生分布式数据库的开拓者,致力于用技术让海量数据的管理和使用更简单。OceanBase 希望通过创新的技术让数据能够可信、高效、低成本地流动,帮助更多企业实现新的商业可能,创造数字时代的新未来。代表科技,寓意专业可靠,同时象征着生命之源 海洋。代表生活,有了它的加入,可以为生活增添更多可能与生机。代表未来,寓意着对技术的不懈探索,象征更加美好的未来。打造开发者友好的分布式数据库打造开发者友好的分布式数据库让数据流动起来!