【51CTO.com原创稿件】随着互联网的飞速发展,人类社会的数据量迅速激增。而互联网业务的发展通常具有爆发性,业务量很可能在短时间内呈爆发式增长,对应的数据会相应地飞涨。如果系统不够稳定,将造成无法访问等后果。
在这种情况下,传统的单机数据库在扩展性、性价比方面已经无法满足需求。为了解决系统性能、成本以及扩展性的需求,分布式数据库系统应运而生。
从技术模块角度来看,要实现一个分布式数据库,最直接的做法就是把事务层与存储层分离,抽取一个单独的分布式KV系统,在分布式KV系统实现分布式的扩展性和高可用的能力。这样虽然实现简单,但是它牺牲了单机性能,系统的延迟很高,因而无法应用到核心业务系统,因此只能在非核心的业务系统上使用。而一体化架构将事务层与存储层有机地结合,在事务层实现了扩展性,这就没有牺牲单机性能,最终能够做到单机性能与集中式数据库的性能基本相当,因而适用于核心业务场景。
详解一体化架构
一体化架构集合了原生分布式框架和HTAP两种技术优势。
首先来看原生分布式。原生分布式的底层是一个基于Paxos的,与数据同步的、灵活的容灾架构,支持同城三机房、三地五中心、两地三中心等灵活的容灾模式。在Paxos的容灾架构之上是一个集中式、分布式一体化的架构,能够兼具单机性能易用性,以及多机可扩展性,并且保证全局的强一致性。
再来看HTAP。从产业角度来说,在互联网浪潮出现之前,企业的数据量并不太大,尤其是核心的业务数据,通常一个单机数据库就可以应对,存储也不需要复杂的架构,所有的联机事务处理 (OLTP, Online Transactional Processing) 和联机分析处理 (OLAP, Online Analytical Processing) 都运行在在同一个数据库实例中。
随着企业业务数据量的不断增多,单机数据库在海量数据场景下的使用受到了制约。在实际应用中,为了应对不同的业务需求,OLTP、OLAP这两类任务处理往往由不同团队完成。在数据量激增的情况下,OLAP 和 OLTP 系统间通常会有几分钟甚至几小时的时延,OLAP 数据库和 OLTP 数据库之间的一致性也无法保证,难以应对一些对分析的实时性要求很高的业务场景。同时,管理和维护不同数据库也大大增加了企业成本。因此,能够统一支持事务处理和工作负载分析的数据库成为众多企业的需求。
2014年,Gartner的一份报告中使用HTAP(混合事务/分析处理,Hybrid Transactional/Analytical Processing)一词来描述新型的应用程序框架,以打破OLTP和OLAP之间的隔阂,既可以应用于事务型数据库场景,也可以应用于分析型数据库场景。这种架构不但避免了繁琐且昂贵的ETL操作,还可以更快地对最新数据进行分析。Gartner 提出,HTAP数据库将成为数据库领域的重要发展趋势,一个集成的数据平台将会加速数字化转型。
当然,让数据库既做 OLTP 又做 OLAP ,即 HTAP,面临着非常大的挑战,这是因为 OLTP 与 OLAP 存在巨大差异,且这种差异始终存在。比如从数据量来看,OLTP的数据量通常较小,而OLAP的数据量通常很大。从事务尺寸来看,OLTP的事务通常较小,而OLAP的事务通常都很大;从数据的一致性来看,OLTP的事务数据都有非常高的一致性,OLAP的数据的一致性相对较低;从事务的并发量来看,OLTP通常有很高的并发量,而OLAP的并发量并不大;从事务的响应时间来看,OLTP有严格的响应时间要求,而OLAP的数据库响应时间相对比较宽松;从数据的存储来看,OLTP的数据库通常是行存,而且实时更新,而OLAP的数据库,通常是列存,批量更新。
所以,HTAP数据库的挑战主要表现在四个方面。首先是分布式的事务处理,由于分析处理所需的数据量和计算量庞大,要求整个系统必须是分布式的。其次是事物的优先级,分析的大查询,需要消耗大量的CPU、内存和IO资源,很可能导致交易的小查询无法得到所需的资源而等待并超时。第三是行列的混合存储,由于行存对交易事务处理友好,而列存对分析处理友好,所以HTAP 系统既需要行存又需要列存,也就是行列的混合存储。第四是 HTAP 的性能评估,当今各种 benchmark 都是单一的性能评估,要么是事物处理,要么是分析处理,但 HTAP 同时需要两者。
OceanBase:完美诠释HTAP
在国内,真正实现HTAP 的数据库并不多,业界某些HTAP数据库使用了两套引擎来实现HTAP,即主备库物理隔离,主库做 OLTP,备库做 OLAP,主备之间通过 redo 日志做同步,备库与主库之间有一定的延迟。而OceanBase则自研了一套引擎,可以同时支持了OLTP和OLAP,这是与其它HTAP数据库差异化的体现,也重新定义了分布式数据库!
OceanBase是原生分布式数据库的代表,它背后的核心技术就是一体化架构。一方面,它的底层仍然是一个原生分布式架构,能够充分享受到分布式技术无限扩展、永远在线的技术红利,RPO等于0,能够动态地增加减少服务器;另一方面它对外体现的是与经典集中式数据库完全兼容的功能和单机性能。OceanBase通过一体化架构,发挥了分布式+集中式的双重技术优势。
OceanBase在一套HTAP引擎里同时支持OLTP与OLAP混合负载,并且做到OLTP与OLAP两种负载之间的资源隔离。同时兼容两种SQL的使用接口,即商业数据库 Oracle和开源数据库 MySQL,保证了集中式数据库到分布式数据库的平滑迁移。
过去的几年中,OceanBase经历了三次迭代,第一代分布式存储系统,将LSM Tree首次引入到关系数据库领域中,大幅降低关系数据库的存储成本;第二代分布式数据库OceanBase再次将Paxos 协议引入到关键数据库领域中,首次做到 RPO = 0;第三代原生分布式数据库OceanBase 做到了在一套引擎同时支持OLTP与OLAP混合负载,并且参与TPC-C和TPC-H打榜都取得世界第一的成绩。
五大核心产品技术突破和出色的TPC-C成绩
2021年,OceanBase又取得五大核心产品技术突破:从OLTP到HTAP,TPC-H整体性能提升620%,30TB刷新世界纪录;单核性价比大幅提升,sysbench整体性能提升68%,支持小规格部署性价比,在全球分布式数据库领域遥遥领先;更强的跑批能力,支持超大事务,能够在一套引擎同时处理交易和跑批两类工作负载,并且确保跑批负载不会影响正在进行的交易业务,并行DML和大数据导入性能分别提升270%和58%;OceanBase 是业内首个支持平滑迁移Oracle的原生分布式数据库,并且得到银行、保险、证券、运营商、公共事业等多个行业的核心业务场景的应用;易用性提升:OceanBase实现了不依赖单点的分布式主动死锁检测,也能够通过全链路监控来大幅降低问题排查成本。
2020年的5月,OceanBase参与了TPC-C 二期的测试,取得7.07亿 tpmC的成绩,排名世界第一。2021年5月,OceanBase再次参加了TPC-H 30TB的打榜,取得了1526万 QphH的成绩,再次排名世界第一。这样充分证明了一个基于分布式架构的原生分布式数据库,能够实现与经典集中式数据库完全对标的强一致的ACID能力,且整个系统能够持续稳定长期的运行性能无抖动。
全新亮相:3.X工具家族和OceanBase 3.1.2 社区版本
在近日召开的DC 2021分布式数据库开发者大会上,OceanBase发布了全新 3.X工具家族,包括:运维管理工具OCP、开发者工具ODC、数据迁移工具OMA &OMS。其中,OCP在已经实现基础运维工作全面白屏化的基础之上,进一步提升了智能诊断的能力和运维效率,最大支持超过1500台机器的集群;ODC支持PL存储过程的开发与调试,通过增强的安全审计能力,迈向企业级安全管控的一大步;OMS持续完善数据源,支持超过10个不同类型的数据源,同时实现了从迁移评估、数据迁移、数据同步、数据校验等一系列一站式迁移服务的能力,实现了从客户的集中式数据库到分布式数据库的平滑迁移。
会上,OceanBase 3.1.2 社区版本正式发布。包括三大核心技术升级:第一、秒杀性能提升 300%,第二、生态适配全面加速,支持 Hbase 对接能力;第三、推出全新社区版工具体系(社区版 OCP、社区版 ODC、社区版 OMS),提供白屏化集群管理、租户管控、开发调试、数据同步、导入导出等完整功能,协助社区用户快速上手。
后记
近年来,“国产化核心替代”成为了一大热词,2008年,阿里提出“去IOE”,至今十多年,国产数据库百花齐放,并逐步应用于核心业务系统。虽然相较于Oracle,国产数据库在单机性能、优化器、复杂查询处理等能力上还有一定差距,但通过分布式的技术架构,不少国产数据库在海量并发场景下表现出了更优于Oracle的扩展性和高可用。
相信数据库的未来,一定是采用一体化架构实现的,兼具分布式与集中式的双重技术优势的原生分布式数据库。
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】