近些年国产化数据库如雨后春笋般冒出并遍地开花。据某技术平台不完全统计,国产化数据库(见图 )已达 200余个,对于这些数据库的名字,即使作为多年数据库从业者的我,也有很多是第一次听说。在这竞争激烈的数据库行业里,要想长久占据一席之地,顺应市场发展并打磨好自己的产品才是硬道理。
图1 国产化数据库部分截图
数据库发展需顺应市场变化
业界有一句老话叫作 “市场永远是对的”,大概意思是当前市场表现了所有影响因素,任何事物都应该遵循当前市场的发展规律。纵观国际市场数据库发展状况,曾经的数据库老大 Oracle 因为布局云计算太晚已经被亚马逊、微软甩开很长一段距离,老牌数据库 Db2 几乎没落;云数据仓库 Snowflake、云数据库 CoackRoachDB 等产品因为顺应云计算发展而一骑绝尘。在国内数据库市场,从早期集中式数据库需求旺盛的四朵金花时代,大步跨入当前集中式、分布式数据库势均力敌的百花齐放时代。在分布式数据库领域,为顺应市场发展不断改变自身的当属OceanBase ,**从早期只服务淘宝收藏夹的简单业务,到 SQL 和 ACID 的支持,再到后来的多租户细粒度资源管控,现在又推出单机分布式一体化版本,在追求极致服务市场的路上,OceanBase 从未停歇。**从整个市场上看,有能力有魄力频频做大版本变动的数据库,可谓是少之又少。
众所周知,OceanBase 社区版于 2021 年 6 月 1 日宣布开源,开放 300 多万行核心代码构建开源生态。开源开放不止意味着把自研数据库拿出来给大家用,还意味着 OceanBase 不能像以往一样只专注于金融类业务场景了,迎面而来的是各种各样的场景和需求。在开源后的短短一年多时间里,OceanBase 不断“挑战自我”,打磨内核能力,修复周边 bug。从数据库排行榜(见图2)中能看出市场也给予了 OceanBase 正向反馈。
图2 墨天轮数据库排行榜
今年云栖大会上,OceanBase 社区版4.0发布,不仅有许多亮眼的功能,还刷新了数据库的架构,在业界引发热烈讨论。本文我们就来一起聊聊,OceanBase 从分布式到单机,再从单机到分布式,在遵循市场发展规律的同时到底发生了哪些变化。
从分布式到单机,自我能力突破
OceanBase 自诞生以来,走的一直是分布式 NewSQL 的路,像其他类似产品一样,比如 CockRoachDB、YugaByteDB 等。分布式 NewSQL 从场景上来讲,是为了解决单机数据库在数据达到一定体量后性能急剧下降的痛点,当然在国产数据库发展如火如荼的今天,很多时候也被用来当作替换 Oracle 的首选。从实际的应用效果来看,分布式数据库在金融、运营商等核心业务的替换上,也扮演了重要角色。相比集中式数据库无论从性能、数据承载量、核心业务 RTO 和 RPO 保证上,达到的效果都比较令人满意。
分布式与资源的天然博弈
任何事物都具有两面性,分布式数据库在极力保证高可用、高性能的同时,也引入了一些问题:
● 分布式架构会增加事务处理成本,跨节点事务处理可能涉及多节点 JOIN、两阶段事务提交等。
● 代理层的引入,多一层网络转发,网络成本增加。
● Paxos 协议使数据至少三副本