新文化网 > 资讯 >关于ocean base的五大特点

关于ocean base的五大特点

2024-04-17 10:13:11 来源:互联网 阅读:-

阿里开发的ocean base是分布式关系型的(SQL)数据库的目标是支持数百个TB和数十万个TPS的数据量、数以百万计的QPS访问量,无论是数据量还是访问量,即使使用非常昂贵的小型甚至大型机器,单个关系数据库系统也无法承受。今天,让我们来讨论一下ocean base的特点。

1、高扩展性

Oracle或MySQL等传统关系数据库功能已经非常完善,但数据库本身无法扩展。随着数据量的增加和业务内容的丰富,有必要拆除数据库和表格,然后访问路由,并将相应的SQL分析路由输入指定的数据库。数据库的操作和维护人员需要花费大量时间来扩展数据库,包括读写分离、垂直分离、水平分离等。

ocean base采用分布式技术和无共享架构,业务访问将自动分散到多个数据库主机上。在相关技术的支持下,ocean base还可以使用廉价的PC服务器作为其数据库主机。通过这两种变化,运维人员可以通过增加服务器数量来愉快地增加系统的容量和性能。

2、低成本

传统商业企业所采用的“IOE“该系统实际上代表了一个高成本、高维护成本和非高并发性的商业数据库系统。特别是随着数据的增加,升级硬件和维护的成本将变得越来越惊人。阿里巴巴采用数据分割策略,将一些海量数据应用程序从集中Oracle切换到分布式集群,从纵向扩展到水平扩展,解决了数据库扩展的问题,并用PC服务器取代了小型机器。

由此带来的一个重要变化是成本的大幅降低。与传统数据库公司的产品相比,ocean base的升级和维护可以将商业数据库成本降低到一半以下,而不需要昂贵的共享存储、高可靠的服务器和数据库软件的许可费。

3、高可靠性

数据库系统通常由数据库软件、运行数据库软件的数据库服务器硬件和存储数据库数据的数据库存储硬件(即共享存储)组成。数据库系统的稳定性和可靠性也取决于这三个部分。使用PC服务器可以带来高可扩展性和降低成本,但其硬件可靠性相应降低。

如何确保系统的可靠性?ocean base的一个基本假设是硬件(服务器、存储、网络等)不可靠。因此,ocean base必须确保少量硬件(服务器、存储、网络等)在任何时候都不会影响业务。

4、数据准确性

很多互联网服务可以允许有一定的数据错误,但电子商务(如交易、金融等)与普通互联网公司不同。)对数据的一致性要求很高,比如要保证钱的进出是对的,不能丢失任何支付数据(阿里巴巴在支付宝系统中使用ocean base)。

ocean base设计不同于经典关系数据库,它的阅读事务基本上是分布式并发执行的,写作事务目前是集中串行执行的,即serializable,而且任何一个写作事务在commit之前都是不可见的,所以ocean base是一致的。通过这种方式,可以保证在设计方案中不丢失数据。

有几种常见的一致性类型:

强一致性:在系统中成功更新一个数据(交易成功返回)后,更新后的任何数据读取操作值。这是传统关系数据库提供的一致性模型,也是关系数据库受欢迎的原因之一。

弱一致性:系统中的一个数据更新后,更新后的数据读取操作不一定是值。在这种情况下,通常会有一个“不一致的时间窗口”存在,即数据更新完成后,通过这个“不一致的时间窗口”,后续的读取操作可以获得更新后的值。

最终一致性:是一种弱一致性,即如果一个数据在更新后没有再次更新,那么所有的读取操作最终都会返回更新后的值。

5、高性能

ocean base架构的优点是不仅支持跨行跨表事务,还支持存储服务器的线性扩展。当然,这种架构也有一个明显的缺陷:UpdateServer单点,这限制了ocean base集群的整体读写性能。ocean base在数据访问方面与传统数据库有很大不同,基于高扩展性、低成本、高可靠性和数据一致性。

和很多行业一样,虽然数据总量很大,但是淘宝业务一段时间(比如小时或者天)内的数据增删是有限的(一般一天不超过几千万到几亿次)。根据这一特点,ocean base以增量的形式记录了一段时间内的增删等修改操作,这也使得主体数据在一段时间内保持相对稳定(称为基准数据)。

通常,ocean base将其保存在独立的服务器UpdateServer内存中,因为增量数据相对较小。内存保存增删记录大大提高了系统写作业务的性能。不仅如此,它还可以转换成sstable格式并保存在SSD固态盘或磁盘上,因为冻结后的内存表不再修改。转储到SSD固态盘后所占的内存可以释放,而且仍然可以提供更高性能的阅读服务,这也缓解了UpdateServer在极端情况下的内存需求。

为什么要这么做?如今,无论是磁盘还是SSD,顺序写作的性能都远远大于随机写作。现在SSD稍微好一点,随机写作可以比较高,但是这样的硬件属性在性能上和顺序写作有数量级的区别。ocean base使用磁盘存储数据库,但使用内存数据库。SSD(普通磁盘最怕随机阅读,但SSD非常适合)存储和修改数据。还消除了随机写入磁盘,批量写入。实现扬长避短,最大限度发挥硬件特性。

为此,ocean base引入了paxos协议。主库执行完成后,每笔交易应同步到一半以上的库(包括主库本身),例如三个库中的两个库,或五个库中的三个库,这样交易才能成功。这样,在少数数据库(如三个数据库中的一个数据库,或五个数据库中的两个数据库)异常后,业务就不会受到影响。

分布式事务一致性协议paxos主要用于确保数据在分布式系统中是可靠的。当大多数学校在机器中失败时,只要坏掉的机器是少数学校,三个中的少数学校是一个,大多数学校是两个。如果三台机器中有两台成功,您可以告诉用户该数据不会丢失。此时,机器可能会损坏,但如果任何机器损坏,至少会有另一台机器恢复。


推荐阅读:叶紫

(正文已结束)