《从分布式到单机分布式一体化_杨志丰.pdf》由会员分享,可在线阅读,更多相关《从分布式到单机分布式一体化_杨志丰.pdf(19页珍藏版)》请在三个皮匠报告上搜索。
1、杨志丰OceanBase首席架构师OceanBaseOceanBase的单机分布式一体化的单机分布式一体化OceanBase架构发展历程V1.0分布式事务,多租户V0.1分布式,三副本高可用V2.0V3.0高兼容,高性能,混合负载V4.0单机分布式一体化OBServerOBServerZoneOBServerOBServerZoneOBServerOBServerZoneSQLSQLSQLChunkServerUpdateServerUpdateServerUpdateServerOBServerOBServerOBServerOBServer20022OB-MySQLO
2、B-OracleZoneOB-MySQLOB-OracleZoneOB-MySQLOB-OracleZone营销战略弹性单机形态可在线升级为分布式形态部署形态形态灵活动态转换同一程序既可以单机部署,也可以分布式部署租户级多形态分布式集群中可以有单机租户单机性能以单机部署时,可以获得单机数据库相当的性能和效率分布式性能以分布式部署时,不仅可扩展,还可以做到高性能低时延单机分布式一体化性能高效什么是单机分布式一体化数据库?单机分布式可动态转换ZONE_1ZONE_1P5P6OBServerOBServerZONE_2ZONE_2P5P6OBServerOBServerP7ZONE_3ZONE_3P
3、5P6OBServerOBServerP7基于基于PaxosPaxos复制的日志流复制的日志流P1P2P4OBServerP1P0P4OBServerP1P0P2OBServerP0P2P4弱一致性读写操作读操作SQLSQLSQLSQLSQLSQLP8P8P7P8SQLSQL路由路由驱动/OBProxy 小业务 初创企业 大规模业务 大型企业OBServerOBServerSQLSQLStorageStorageOBServerSQLStorage更大规格的单机主备库 中等规模业务 中等规模企业ZONE_1ZONE_1ZONE_2ZONE_2ZONE_3ZONE_3OBServerSQLSto
4、rageOBServerSQLStorageOBServerSQLStorageOBServerSQLStorageOBServerSQLStorage主库主库备库备库三副本垂直扩展不为你不需要的特性买单:你为什么需要分布式数据库?01单机部署时如何获得单机数据库相当的性能?单机部署时如何获得单机数据库相当的性能?过度分层设计虽然简化了实现,但牺牲了性能把一个“分布式数据库”装入“单机”ServerSQLTSO网络RPC调用StorageSQL API某“分布式数据库”单机部署GTM NodeGTM/TSODiskSLBCompute NodeSQLData NodeStorageComput
5、e NodeSQLData NodeStorageSQL APIOceanBase的单机分布式一体化目标:1.单机时高效2.分布式时经济关键特征:单组件(单进程)单机工作无RPC,保证单机性能 单机内支持并行执行 每个组件的设计实现兼顾单机和多机 既分离,又耦合OBServerSQL事务OBServerSQL事务存储存储OBProxy网络OceanBase的单机为何能高效?OBServerSQL事务OBServerSQL事务存储存储OBProxy网络两种单机含义 每个Zone一个OBServer的集群 在每个Zone里单UNIT的租户单机高性能垂直扩展 SQL引擎:单机内并行 事务引擎:日志组
6、提交 存储引擎:准内存更新,单机并行IO单机无额外开销 组件间直接使用函数调用619,669 25,611 61,654 16,736 234,907 229,066 571,863 12,327 43,836 11,342 140,379 116,765 0100,000200,000300,000400,000500,000600,000700,000point selectread onlywrite onlyread writeinsertupdate4.0.0.0MySQL 8.0 企业版OceanBase 4.0 vs MySQL 8.0sysbench 32c 测试sysbenc
7、h96,224 188,605 377,025 698,417 1,200,992 1,193 2,633 5,487 12,219 23,776 2,391 5,354 10,914 22,933 42,640 3,475 7,373 15,897 35,167 69,056 19,661 43,713 91,644 188,957 359,399 21,321 46,696 103,456 206,134 394,286 020000040000060000080000000014000004c8c16c32c64cpoint selectread writeread
8、 onlywrite onlyinsertupdate单机垂直扩展性实验02分布式部署时如何实现高性能低时延?分布式部署时如何实现高性能低时延?050030000.250.51单机DB分布式DB1分布式DB2时延分布式事务比例高性能容易低时延难1.性能指标:吞吐率 vs 时延(难)2.一次RPC:500微秒分布式时需要高性能低时延高性能容易,低时延难1.性能指标:吞吐率 vs 时延(难)2.一次RPC:500微秒怎么做?1.并行查询提升性能2.降低分布式事务和分布式查询的比例(1)自适应日志流(2)自动分区负载均衡(3)分区表与表组3.提升分布式事务和分布式查询的性能Oc
9、eanBase的分布式为何能高效经济?OBServerSQL事务OBServerSQL事务存储存储OBProxy网络 租户:单机or分布式 会话:单机or分布式 事务:单机or分布式 SQL:单机or分布式设计时兼顾多种粒度的优化 组件间按需决定是否必须RPC无分层引起的不必要开销 SQL引擎:多策略串行执行 事务引擎:单日志流事务优化 存储引擎:轮换合并改进单机LSM合并分布式高效经济单机分布式自适应的执行引擎如何提升分布式查询性能串行执行本地执行分布式串行并行执行并行查询并行DML分布式并行本地并行本地数据远程数据小查询,拉数据大查询,压计算SQL执行兼顾单机和分布式的事务处理协议以提升事
10、务性能协调者参与者1参与者2全局事务管理器开启事务获取全局ID全局ID和快照提交事务开启成功Prepare响应Prepare请求Commit响应提交成功Commit请求事务开启事务提交传统数据库事务处理过程OceanBase 数据库事务处理过程开启事务提交事务开启成功Prepare响应Prepare请求Commit响应提交成功提交时间戳Commit请求事务提交事务开启协调者参与者1参与者2必要时获取读时间戳必要时批量获取单机事务:单日志流事务无需访问GTS分布式事务:低时延两阶段提交协议全局版本号管理器Sysbench 500线程2333283274
11、77773263265242254325885378960050060070080090000050003000035000OceanBaseOceanBaseDB-DDB-DDB-TDB-TDB-CDB-C查询平均响应时延(ms)TPSREAD ONLY TPSWRITE ONLY TPSREAD WRITE TPSREAD ONLY 平均时延(ms)WRITE ONLY 平均时延(ms)READ WRITE 平均时延(ms)OceanBase vs 其他分布式数据库350003000025000200000000TPSQ&AGitHub:/oceanbase/服务号:OceanBase数据库星球论坛:Q&AGitHub:/oceanbase/服务号:OceanBase数据库星球论坛:Q&AGitHub:/oceanbase/服务号:OceanBase数据库星球论坛: