文|刘雨琦
2006年,Google发布了三篇论文,也是公认的大数据的三驾马车:分布式文件系统GFS、分布式KV存储数据库Big Table以及处理和生成超大数据集的算法模型MapReduce。
此后,虽然分布式开始成为大家讨论的对象,但由于分布式事务的性能以及分布式系统的复杂性,使得分布式数据库仅在数据量非常大的联机分析处理(OLAP)场景得到了一些应用。在传统数据库领域,仍以Oracle为代表的的集中式数据库独霸天下,更是独领国际市场,阿里便是其在中国最大的客户。
此后的十年,是分布式数据库被“冷落”的十年。与其说是被“冷落”,不如说是技术上难以突破,以及培育成本高,当时集中式数据库的商业化之路越走越顺,能够停下来从头开始的厂商少之又少。
不过,随着互联网时代的加速发展和科技的进步,集中式数据库的功能开始捉襟见肘。越来越多的企业进行数字化转型,对业务系统也更加高频的并发访问,当产生庞大的数据处理量,集中式数据库昂贵的成本和存储、计算极为有限的扩展能力开始暴露,企业不得不寻求性价比更高、存储和计算扩展能力更强的数据库。
2010年,阳振坤在阿里的招募下,开始研发国内第一款全自研式分布式数据库OceanBase。彼时的分布式技术是真正的无人区,直至2015年,腾讯云、阿里云、PingCap等公司才开始在初步探索。
分布式数据库被“冷落”的10年,正是OceanBase在蚂蚁内部打磨的十年。从仅用在淘宝收藏夹一个细小的场景,到支撑了9年的淘宝双十一,并打破了TPC-C测试的世界纪录,直至2020年独立,到目前已经累计了400+客户。
8月10日,在OceanBase2022年度发布会,发布了OceanBase4.0产品——“小鱼”,这是首个单体分布式一体化架构的数据库,同时推出支持多云部署OceanBase Cloud,通过技术突破和云化,试图让企业可在单体架构和分布式架构之间无缝切换,降低了分布式数据库的使用门槛。
纵观OceanBase的发展路径,其实也正代表了国产分布式数据库的十年,产品发布背后透露出的信号,是当下国产数据库的发展进程,更需要企业关注并共同推动。
为什么“小就是大”?
水滴聚大海、跬步积千里,每件小事做好,往往就是大。
《三体》中衡量一个文明科技水平的标准是,这个文明对微观世界的探索和展开程度的高低,即对微观世界的探索越深入,科技水平越高。
这就是典型的“小就是大”。
分布式数据库之所以能够更加贴近业务、更安全,原因在于它把数据切分成无数个“小”。
举个简单的例子。假设某公司的数据库中存放了10个表格,每个表格中的数据为100个数据量,那么对当数据进行提取时,只能定位到具体的表格,将表格中的数据全部跑上一遍,若该表格缺失了2个数据,将会导致整个数据库的系统无法工作。而分布式则是将每个表格中的100个数据进行分区处理,如每20个为一组,分为A/B/C/D/E区,当需要提取某个数据时,不仅能够定位到相应的表格,也能够直接定位到A区,同时,系统可对同一表格的不同区进行分区读写,大大提高了可用性和效率。
在现实的分布式数据库中,也许每5个数据即为一组,区分更精细,通常按行或列对数据进行拆分,同时进行三副本备份,哪怕E区的第一副本缺失或错误,也可通过第二、第三副本进行即时替换,不会导致整个数据库瘫痪。简单的说,集中式数据库如同“大马”拉“大车”,“大马”一旦出了问题,便会停滞不前,而分布式则是用无数的“小马”拉“大车”,一匹小马坏了不影响车子的前进,也能够快速进行补位,保证正常运转。
数据维度越来越小,可用性和安全性越来越高,这是分布式数据的“小就是大”。
然而这样的“三副本”形式,意味着企业如果想要部署分布式数据库,就要同时进行多个服务器部署,门槛比单台机高,且“分布”或“单体”的选择通常不可逆,选择了单体机就意味着几乎失去了“分布式”的机会。
这也是大家所探讨的核心问题。分布式数据库通常应用于高部署、密集数据量和高并发的数据,但部署门槛高,对于大宗性企业更加适用,而中小企业由于数据量不大,应用场景简单,并不需要在业务量不足时部署分布式数据库,反而购买单体机更为划算。但一旦部署单体机,后续业务量庞大时再进行架构调整,就是难上加难。
OceanBase试图通过“小鱼”,来打破这个魔咒。简单的说,单看“小鱼”,只是一款高性能的单体机,在单机部署模式下,也可实现包括Oracle/MySQL的兼容性、TP事务处理能力、AP并行分析查询能力、租户资源隔离等功能。并在性能上进行了升级,如将故障回复时间从30秒优化到8秒。
同时,小鱼对服务器本身的要求很低,单机部署最小支持4C8G。这意味着,从前必须要在服务器级别(128核及以上)的终端上部署的数据库,如今在4核的电脑上也可以进行部署。大大降低了企业的硬件购买成本,如同大型游戏对电脑配置的要求降低了,这让很多低配置玩家也能顺畅的玩游戏一般。
而当企业发展到一定阶段,数据量呈现一定规模想要扩容的时候,可以从一台“小鱼”增加到3台“小鱼”(3为分布式部署数量的最小单位),平滑地从单机部署模式升级成分布式部署模式。
一位OceanBase的技术人员告诉光锥智能:MySQL数据库在原理上,也可以做到从单机到分布式,但是过程很长,且需要将数据库暂停运行,单独部署。而小鱼则可在运行中,最快1分钟内即可完成模式的切换。
在发布会中,OceanBase演示了小鱼从1-3-9的整个过程,只需要工作人员在后台进行程序部署,无需调整单机硬件,且过程简单流畅,接近“傻瓜操作”就可以完成,部署完成后,性能几乎成线性增长,并没有过多损耗。
这就十分符合企业的部署场景,若将数据库暂停进行调试,在实际操作中可能性等同于“0”。
这也正是“小鱼”的“小就是大”。硬件单位越来越小,但适配程度却越来越高,且在保持同等性能下,灵活度也越来越高。
而这样的“小就是大”,不止是技术层面的突破,更解决了数据库领域的关键问题:技术和业务的结合。
商业化进程按下“加速键”
从前,分布式数据库被“冷落”还有一个重要的原因,是不被市场接受。
这并不是因为用户不懂它的好,而是因为迁移成本太高,单体数据库虽然已经出现问题,但是通过叠加机器数量,能短暂解决,直到再次超负荷,这样的方式虽然“治标不治本”,但却相对省事。
但很快,一些企业便开始负担不起Oracle高昂的运营成本了。最先撑不住的是阿里。时任阿里首席技术官的王坚算了一笔账,把1万亿元GMV折算成数据量,再折算成需要的IBM小型机数量、Oracle数据库量、EMC存储数量,再换算成具体价格相加,得到他们每年需要给IOE的采购费200亿元。而这笔钱甚至超过他们每年所赚的利润。
在庞大的成本费用面前,必须从“根”上开始解决问题了。据测算,支付宝用OceanBase原生分布式数据库替代Oracle数据库之后,单副本数据可以做到Oracle的1/7,其计算资源投入也降低为原来的1/12,仅存储一项,相比Oracl就节省存储成本约20亿元,相当于每账户成本节省了90%。
这源于阳振坤提出了自研分布式数据库能够从两个方面节省成本,一是上述所讲的硬件成本,用普通PC机替代大型服务器,硬件成本得到缩减;二是将数据库的两大功能OLTP和OLAP结合在一起,形成HTAP。
构想当然很好,但要真正建立,却需要几年时间做技术,再来几年时间跑业务。
在2020年,OceanBase宣布独立进行公司化运营,成立由其100%控股的数据库公司——北京奥星贝斯公司。
OceanBase的独立,是蚂蚁科技战略三步走的一个缩影。第一阶段是“试验”在自己的业务上做尝试;第二阶段是共享,共享给与自己“试验”业务最类似的金融机构;第三阶段是开放,将自己蹚出来的成熟产品进一步对外输出,扩大到政企和其他非金融类客户。
对于阳振坤来说,独立和开放有一个特殊的意义:通过更多企业和业务场景的深入,能够让OB更加贴近业务,从需求出发对技术不断打磨迭代,做出有竞争力的国产分布式数据库。
在2020年这个节点,OceanBase的商业化按下了加速键。
此时,无论是集中式数据库的成本开始大规模超出企业负荷,还是受疫情影响,降本成为了每个企业的首要需求,这给了OceanBase一定的市场空间和机会,趁热打铁,OceanBase在2020年正式推出HTAP。
传统的OLTP和OLAP是两套数据库,需要分别购买,同时,数据还要在两个数据库中进行迁移,迁移的过程中还会面临着数据丢失和损耗的风险。而HTAP则是在一个数据库的基础上,既满足TP又满足AP,降低了企业购买和迁移的成本。
和过去相比,HTAP的事务处理性能提升50%,数据分析性能提升10倍。用户业务无论是事务型还是分析型,只要一套系统就可以应对数字化转型过程中“海量、实时、在线”的业务需求。
以雄帝科技为例,其负责全国约三分之一的公交刷卡机系统,此前,刷卡机读取到的只是简单的交易数据,但随着互联网和信息化的发展,刷卡机能够读取到用户的一些基本信息,比如老年卡、学生卡等等。在一些场景里,就要对这些数据进行分析,比如在哪几个时间段用户量最高,合理调配公交车资源,以及一些营销节点,对不同类别的人群实施不同程度的折扣活动。
除此之外,分布式数据库能够做到真正的弹性扩缩容。以往的数据库扩容容易,缩容难。原因在于颗粒度比较粗,单个数据库内若有20%可用数据可80%废弃数据,不能够准确的剔除废弃数据,只能全盘保留。
中国福利彩票就曾被这个问题难住。彩票行业的瞬时数据量爆发是相当惊人的。中国福利彩票发行管理中心技术管理部副主任唐恒光分享到,一类彩票的年交易量大概是200亿,而在这一年内,开奖前半小时的交易量能够达到50%甚至70%,这需要数据库在一天之内扩容,而平时的交易量,却根本用不着峰值的数据库容量,分布式数据库刚好能够解决这个问题,用时“变大”,闲时“缩小”,弹性伸缩降低部署成本。
这样技术上贴近业务场景和痛点的战略,在商业化的道路上稍见成效。仅仅在2021一年中,OceanBase客户数量就实现翻倍,而在金融等核心优势场景,目前全国TOP200的头部金融机构中,有1/4都将OceanBase作为核心系统升级的首选。
向国际输出中国技术
虽然OceanBase在分布式数据库领域是先行者,但多名行业分析师向光锥智能表示,当下仍然处于早期阶段,只能说OceanBase刚刚完成了前半段。
关于未来的挑战,光锥智能将其概括为两个方面, 一部分是技术难题,一部分是行业痛点。
技术难题也是最基础的问题,数据的一致性如何保证?数据迁移的成本如何降低?
对于分布式数据库来说,数据的一致性是其立足的根本,没有一致性就没有分布式。
OceanBase的技术人员告诉光锥智能,OB与MySQL等数据库的区别在于,OB将一致性协议放在了数据库底层,根据协议可以灵活动态的进行调整,而MySQL则是在已经成型的数据库产品的上层,尽量满足协议,二者有本质的区别,OB的策略能够100%的做到高一致性。
而数据迁移的成本在当下,似乎是一个还未解决的难题。OB数据库兼容MySQL,原MySQL用户可直接进行迁移,并且引入了多云策略。OceanBase CEO杨冰透露,除阿里云外,OB即将上线AWS、腾讯云、华为云等多个云部署。
另一方面,是企业面临的痛点。对于新兴事物,企业缺乏运维工具和经验,更缺乏相关的技术人员,技术虽好,但是买了不会装,装了不会用的情况比比皆是,而如果业务用不起来,其他的一切都是白搭。
光锥智能从OB内部了解到,目前,OB除了技术核心团队,正在加大服务团队的部署,分为开源服务团队、企业服务团队。这也为其他国产数据库提了一个醒。
这样重服务的形式,或许能够解决当下的问题,而想要真正能够从根本上影响整个数据库环境,阳振坤认为,还是要开源,共建生态。
2021年,OceanBase宣布源代码开源,与外界共享全球最领先的原生分布式数据库的核心。一方面希望聚焦用户价值,解决用户的具体问题,另一方面期望与外界共建国产分布式数据库的生态,从另一条赛道超越“IOE”。
在OceanBase4.0版本中,进一步开源了社区版,社区版与企业版本的更新保持一致,让开源用户也能够体验到OB的最新版本。OceanBase首席技术官杨传辉介绍到,目前OceanBase已经吸引了4,200多位开发者关注,产生了500多次技术创新碰撞(Commit),600多篇社区深度原创内容,平均每天产生5篇高质量技术内容,平均每天有100多封活跃邮件,有50多家客户深度实践。
快手和携程就是OceanBase开源后的第一批用户。携程“IM+”业务采用MySQL作为消息写库,由于业务流量激增,数据存储达到MySQL的存储极限,只能保存两个月的记录,与业务部门的需求相差甚大。
面临这样的挑战下,携程尝试了OceanBase的开源版本,并与OB取得联系,深度沟通下二者共创,用OceanBase替代了MySQL,并提供横向扩容能力通过加减机器应对业务的扩缩容,保证对业务的服务质量。最终,携程在保证性能的同时数据压缩能力提升了85%以上,在同等硬件投入前提下, 从两个月扩展到获得超过一年的数据存储能力。
这或许正是开源的意义所在。
《三体》中,作者刘慈欣曾花费了大量笔墨,探讨“技术平等”的话题,阳振坤也曾拿分布式数据库与自动驾驶进行类比,二者均在发展的早期,且需要更多人投入在这项“未来事业”中去,开源是目前最有效缩短技术差距,共同进步的方式,这或许也是国产数据库们逆袭的关键点。
在OceanBase大会前,阳振坤博士曾与光锥智能的交流中讲到,国产数据库要做的不能只是追赶,希望未来也能站在技术高点,向国际输出中国技术。