OceanBase首席架构师杨志丰:单机分布式一体化的线点

时间: 2024-05-16 18:14:52 |   作者: 新能源系列

技术数据

  时至今日,以OceanBase为代表的单机分布式一体化数据库更是让中国数据库技术走在了世界前沿,被更多人看见和认可。而在日前举办的第一届 OceanBase 开发者大会上,OceanBase首席架构师杨志丰也为大家讲述了OceanBase 要做单机分布式一体化的原因和过程。

  据杨志丰介绍,OceanBase想要做“单机分布式一体化”的原因,主要是基于三个方面。

  第一,产品迭代。OceanBase 从 2010 年开始自研,在走出蚂蚁集团开始服务金融行业,到现在走到云上去服务更多互联网行业客户的过程中,基于客户的反馈一直在不断演变、完善产品。

  第二,硬件趋势的持续不断的发展。OceanBase 在 1.0 最初设计的时候,使用的机器都是普通 16 核的机器,后来随着硬件技术的发展,主流机器都变为在 96 核以上,服务器单机的性能有了极大的提升。

  第三,云技术的发展。近年来云技术发展突飞猛进,OceanBase 刚刚创立之初,云技术刚刚兴起,而现在云基础设施触手可得。技术的发展伴随着 OceanBase 架构的发展,因此OceanBase 的技术也经历了三个大的版本迭代。

  每个人听到“单机分布式一体化”的概念,都会有自己不同的理解,也会有很多疑问。对此,杨志丰表示OceanBase 单机分布式一体化其实有三个层面的含义。

  第一个层面,OceanBase 以一个程序的形式存在,既可以在单机的形式下部署,也能做成多机部署。这个并不是非常容易做到的事情,只有把单机分布式一体化作为一个目标,才能去实现这样的形态。

  第二个层面,所谓的单机分布式一体化,其实有一个租户的概念。即使你部署了一个分布式的 OceanBase 集群,但是里面的某一个租户如果在单机上,则也认为这是一种单机的形态。

  第三个层面,单机分布式可动态转换。OceanBase 可以在两种形态之间随意切换,可以灵活地做动态调整,单机可以变成分布式,分布式可以变成单机,同样在租户层面和集群层面都可以做到。

  OceanBase最终成为单机分布式一体化的架构,中间其实经历了漫长的发展升级之路。

  最早的0.5 版本,虽然是十几年前的版本,但其实它已经完全是分布式的架构。当时,OceanBase 把 SQL 层和存储引擎做了分离,上面是一组 SQL 无状态服务,下面是由 ChunkServer 和 UpdateServer 组成的存储集群,对外暴露的就是表的 API。当时由于研发者们起步去做数据库的实现,所以做了一些限制——没有多点写入,因此当时其实就是不支持分布式事务的。

  当 OceanBase 从 0.5 往 1.0 演进的时候,开发者有了一个深刻的感受:传统单机数据库采用紧耦合的设计,存储和计算放在一起,后来因为有了 NoSQL,很多人觉得是不是应该把存储层单独隔离开,OceanBase 在零点几版本的时候就遵循这样的设计思路,所以他们做了分离,但分离以后带来很大的问题。

  这个问题就在于做 NoSQL 还可以,但是要做关系型数据库并没那么简单。如果你对时延有要求的话,松耦合的方式会导致效率上有很大开销。所以 OceanBase 从 1.0 开始,就在重新思考这样的一个问题——把存储事务 SQL 做成紧耦合的架构,即全分布式架构,将原来的三个 Server 合成一个 OBServer 的节点,同时处理存储事务 SQL,将高可用的粒度由原来机器级别的高可用粒度,切分成若干个 Zone。

  当 OceanBase 发展到 2.0 版本时,OceanBase 从蚂蚁集团走向了外部客户,在这样的一个过程中客户反馈说:“OceanBase 只支持 MySQL,是很好,但我们这里面有很多的 legacy(遗留) 系统是不可能把它完全的改成用 MySQL 或者用开源的方式去做的”,所以 OceanBase 在 2.0 的时候引入了重要的特性,在多租户的能力之上又兼容了 Oracle,但它的整体架构和 1.0 是一样的。

  直到4.0 版本时,OceanBase才进入了全新的单机分布式一体化的阶段。

  正如杨志丰所说,有了 OceanBase 的单机分布式一体化架构后,你们可以在个人需要的时候选择所需要的特性,无需搭售其他根本不需要的能力,而这也正是单机数据库核心的价值。

上一篇:低空经济涌现新领域!通感一体化概念持续升温!这一些企业或受益!

下一篇:比亚迪海豹CTB电池车身一体化技术详解

  • 首页
  • 咨询电话
  • 返回顶部