数据库 频道

阳振坤:云时代的数据库【演讲实录】

      编者按:在第二届 OceanBase 开发者大会上,OceanBase 首席科学家阳振坤进行《云时代的数据库》主题演讲,表示:云根本的特点就是资源池化共享复用。我相信在不久的将来,在云上,分布式数据库可以实现对”已被云池化的计算和存储资源“的充分调用,从而实现打破单体数据库限制的计算和存储资源的自由伸缩。

      以下为演讲实录:

  各位女士、各位先生、各位朋友,欢迎大家来到 OceanBase 年度开发者大会。去年的开发者大会中,我跟大家分享了我对数据库产品和技术一些看法,包括单机分布式一体化,事务与分析处理一体化,还有公有云与私有云服务。

  今年,我把视角聚焦到数据库的云服务,与大家分享我对云上数据库的几点看法。

  这第一张 PPT 其实去年就有的,今年的内容跟去年差不多。关于云上数据库,有两个部分要关注,一个是数据库,一个是云,让我们从数据库开始。

  大家知道数据库要做事务处理,要做分析处理,是当今整个社会的基础设施的基础设施。数据库又是这么复杂,这使得一个数据库,尤其事务处理数据库,成长起来非常困难,需要有大量业务长时间打磨。直白地说,数据库的成长需要大量业务做“小白鼠”,可没有一个业务愿意做数据库的“小白鼠”。

  这张 PPT 可以看得到,数据库从诞生到今天,主流的数据库是一只手都能数得过的数量。很多人会问一个问题,既然数据库这么难成长起来,那么这些数据库他们是怎么成长起来的?

  1980 年代诞生了一批的商业数据库,那时候的数据库连事务都还没有,稳定性和可靠性也都不好,用户没有更好的选择。现在的这几个主流商业数据库,它们是伴随着整个产业一起成长起来的。

  到了 90 年代,一些人觉得商业数据库太贵了,希望能够做一些让大家都用得起的数据库,所以出来了开源数据库。这两个开源数据库在市场上经过了十多年时间的打磨,从边缘业务到中心一点的业务,再到更重要一点的业务,逐步稳定、逐步成熟和逐步成长起来的。

  之后,直到今天,再也没有新的数据库能成长起来。数据库还有希望吗?1990 年代出现的互联网,由于其极大的并发、海量的数据,以及对性价比的更高需求,既对数据库带来了很大的挑战,也给数据库带来了新的需求和新的机会。

  我们可以看到,互联网出现之后全球出现了不少新的数据库,尽管没有一个像前面说到的那几个数据库那么普及、那么流行。

  如果把它们分分类,大家能看得到这些系统一些典型的特点,就是容量可以几乎不受限制,处理能力可以不受限制。

  但是它们都缺少一个关键的特性,就是事务处理的能力。有的系统号称能处理事务,但是如果你问它在什么生产环节里得到过考验,你就发现没有。事务处理真正在生产系统里得到考验的仍然只有关系数据库。

  一些人说,今天单机处理能力那么强,磁盘容量那么大,对绝大部分用户单机数据库就够用了。然而,越高配的计算机,其性价比肯定是越不好的。在云上,如果允许单个虚拟机可以扩容到很高的配置,对应的物理机的计算资源的复用和超卖就受到更多的限制,否则扩容的成功率就会很低,因此经济上越不合算。所以真正能够让数据库处理能力自由伸缩的,还是原生分布式数据库。

  曾经有用户问我,分库分表他们告诉我自己是分布式,你们也告诉我自己是分布式,这两个有什么差别?我说这是大飞机和小飞机的差别,大飞机是一架飞机,小飞机是多架飞机。小飞机可以运人,可以运轻武器,但是重武器、重设备只有大飞机才能运输,多架小飞机也无法运输。

  现在让我们看看云。云根本的特点是资源池化、共享和复用。很多人知道,在几乎所有的企业生产系统里,计算机资源利用率很低,比如 CPU 的利用率,大部分是个位数,比如 3%~5%,因此这些机器大部分的计算资源浪费掉了。

  云做了什么?云把它们集中起来,通过复用把这些 CPU 利用率提高。大家想想,如果你的 CPU 利用率 5%,云上做到 30%,相当于用一份资金买了六倍的设备,经济效益是非常可观的。

  云同样实现了对人的复用,一两百人的企业要雇一个 DBA,这个成本其实非常高,而且 DBA 没有成长空间,因为企业业务小。但是,云上一个优秀 DBA 可以支持几十个企业,甚至更多,他有足够大的业务量和成长空间,他的成本也被这么多企业分摊了,人本身的资源得到共享和复用。

  云还有很多好处,比如计算和存储等资源随时可用,按使用付费,不需要自己买设备、自己运维等。

  云上的数据库,除了事务处理、分析处理,还要支持各种的模态数据,例如半结构化数据,乃至非结构化数据等。

  更重要的一点,云上数据库也是云的一部分,所以资源共享和复用至关重要。我相信在不久的将来,云上数据库能做到计算和存储都随时按需使用和付费,比如:

  • 一个用户的数据量很大,但是计算量很小,可能需要一个PB的存储却只要一个CPU 核。可以,没问题。

  • 或者反过来,一个用户计算量很大,但是数据量不大,要 10 万甚至 100 万 CPU 核,却只有几十 GB 数据。可以,没问题。

  这样就是把云上数据库的计算能力、存储能力都池化,让它们得到共享和复用,就像云上其他资源一样。

  这就是我跟大家分享的内容,谢谢大家!

0
相关文章