革新数据库技术的里程碑-极地数据库 (革新数据库技术有哪些)

文章编号:11070 更新时间:2024-03-16 分类:互联网资讯 阅读次数:

资讯内容

在为了确保外部一致性读的情况下,分布式数据库必须利用全局时间戳来支持SI隔离级别下的分布式事务能力。PolarDB-X采用了业内经典的TSO(TimeStampOracle)方案,类似于TiDB[1]和Oceanbase2.0[2]都采用的模式。TSO方案的优势在于其简洁和无需外部依赖;然而其缺点在于存在单点故障。因此,我们设计的全局时间戳服务基于GMS,并依赖于X-Paxos三副本机制以确保高可用性。时间戳格式采用物理时钟+逻辑时钟的形式,以毫秒为单位精确表示物理时钟,并保留42位、16位和6位用于不同目的的租约机制。

基于X-Paxos的三节点架构只能保证任何时刻只有一个写请求能够达成多数派,而TSO的读请求可能不需要写入操作,因此不能简单地依赖三副本数据节点来保证TSO分配时间戳的单调递增性。为了解决双主同时分配时间戳的极端情况,采用租约机制来确保在三副本数据节点上进行写入操作以保证分配时间戳的唯一性和递增性。

每个节点会预分配时间戳,通过租约机制,节点可以申请时间段[current_time,current_time+Lease)的时间戳。在正常情况下,节点会不断地续租,例如[current_time+Lease,current_time+2Lease)......。续租会提前一定量,以确保TSO服务的平稳运行。当发生主备切换时,新leader上任后会首先读取Tsync。如果发现current_time小于Tsync加上NTP最大误差,新leader需要等待,直到current_time大于Tsync加上NTP最大误差,然后将current_time+Lease持久化。租约信息通过内部表存储。

在极端情况下,当旧leader在提供服务过程中发生网络分区,新leader上任但旧leader仍未感知降级,可能会导致双主现象。通过租约机制,确保任何时刻只有一个节点提供TSO服务,即使该节点不是leader。一旦需要续租时,由于无法达成多数派,续租将失败。新leader等待租约结束后,就能够上任并继续提供服务,从而保证分配时间戳的单调递增性。

在HA机制方面,当leader由A节点变更为B节点时存在两种情况:正常的leader变更,和发生网络分区的A/BC情况。在这两种情况下,TSO服务的正确性得以保障。在网络分区时,租期保证了A、B提供服务的TSO不会交叉,同时等待NTP最大误差的设定确保了B、A提供服务也不会发生交叉,从而满足TSO单调增要求。

本文介绍的TSO时间分配机制通过X-Paxos的三副本机制和租约机制,以保证全局时间戳的单调递增性和高可用性,为分布式数据库的一致性读提供了重要支持。


大家为什么都说说OceanBase4.0开启了国产数据库新的里程碑?

革新数据库技术的里程碑极地数据库革新数据

OceanBase 4.0重新审视数据库与分布式系统两个领域最基础的设计,全新推出业内首个单机分布式一体化架构。在单机部署时,自适应日志流技术将只触发一个日志流,用户操作不需要分布式事务,不损失性能。需要分布式部署时,自适应日志流技术将会为每台机器触发专属的日志流。实现多机性能自动扩展。可以说OceanBase 4.0打破了分布式技术的不可能,实现了首个单机分布式体化架构,真正做到可以像单机数据库一样使用。

针对这一现状,有这么一群人从开始放弃了在互联网大厂的高薪工作,历经十余年在分布式数据库的深耕取得了一个又一个突破。从0到1开创原生分布式数据库,坚持自主研发,坚持长期主义,坚持开放,从根本上去解决海量数据管理的问题。历经12年时间,OceanBase4.0通过海量的业务场景打磨,产品不断选代,使用成本得到极大降低,部署更加便捷。OceanBase4.0开启了国产数据库新的里程碑。可单机可分布,可大可小,跟火影忍者一样,可合体可分散。

一、十年积累,厚积薄发:OceanBase发展回顾

在科技互联网时代,芯片和操作系统是大家熟知的技术高峰,而数据库由于概念难懂,大众对其认知并不深刻。实际上数据库在我们的生产和生活中发挥着重要的作用,大到银行要存放所有客户的信息,小到我们身边的一个小超市要存储每件商品的信息,这些都离不开数据库在背后作为支撑。然而,国内企业的数据库大多数都是采用国外的Oracle和IBM的传统关系型数据库,仅Oracle一家在全球市场占据了超过50%的份额。根据科技日报发布的制约我国工业发展的35项技术中,数据库管理系统名列其中,由此可见数据库也是我国亟待解决得“卡脖子”技术之一。

二、曾经的分布式。是为了处理海量业务场景应运而生

面对当今数据爆炸的时代,数据库是实现海量数据管理最核心的底座。以OceanBase为代表的分布式数据库的应运而生有着其强大的时代背景。首先是数据需求鼓励升级,移动支付和大数据带来的数据体量增长和数据形态变化,要求数据库底层能够处理选代升级的新技术。随着国内信息终端规模的扩大和网上购物的高覆盖率给数据库发展提供了沃土,反过来要求数据库具备处理海量业务的能力。还有一点值得一提的是各监管机构、政策制定方均重点布局针对数据库分布式转型、应用创新战略重点行业用户逐步增强数据库应用创新意识,防范潜在安全风险,这进一步标志着分布式数据库的产业持续壮大。

三、而现如今的单机分布式一体化架构,引领行业发展

一个产品雄厚的技术实力是必不可少的支撑,但是最终还是要面向客户需求的。Oceanbase4.0真正实现在单机性能、灵活性,成本和故障恢复等方面全面的突破。可以说OceanBase4.0开启了国产数据库新的里程碑。可单机部署,可分布,可大可小,可扩容可缩容

一个产品雄厚的技术实力是必不可少的支撑,但是最终还是要面向客户需求的。我们国家的一大特点就是中小企业特比多。那么针对这种情况,可单机可分布,可大可小,可合体可分散的特性就非常便于中小企业的灵活部署。在以往使用传统分布式数据库为实现分布式特性,往往付出很多额外的代价,使得业务在仅需要单机部署时,功能和性能大打折扣。典型场景如在业务修改的数据仅涉及到单机时,仍需要付出分布式事务的开销,导致整体性能低下。或无法支持大事务,业务使用场景受限等。

与oracle等国外数据库相比,没有大的技术创新,也不会出现弯道技术上的超车。 最大的贡献:越来越普遍。 不要小看“一般”这个词,它代表了一个公司的技术能力、质量体系、服务能力都达到了很高的水平。 也可以逐步服务于各行业的一些核心业务。 综上所述,这个领域的中国人在路上。 从技术上讲,这并不意味着国产数据库一定落后很多。 国内数据库的重点是先服务国内重要客户,先蚕食国外数据库的市场,从而拥有主动权和话语权。 现在是什么阶段,就像过去一样,国产手机正在逐渐赶超国外手机厂商。 现在,你可以先用小米一代。 来日本久一点吧。

在成本上比传统数据库低50-70%大大降低中小企业的替换成本近年来数字经济迅猛发展,中小企业更加迫切的需要进行数字化转型。如何降低数字化进程中的成本,不仅是中小企业考虑的重要问题,也是OceanBase力求达到的目的。基于LSM-Tree的高压缩引擎,OceanBase 4.0实现存储成本降低70%-90%;以支付宝为例,用OceanBase原生分布式数据库替代Oracle数据库之后,单副本数据可以做到Oracle的1/7,其计算资源投入也降低为原来的1/12,相比Oracle,仅存储一项,相比Oracle节省存储成本约20亿元,相当于每账户成本节省了90%。

首次将故障恢复时间从30秒降低到8秒现在的数据中心对业务的连续性有苛刻要求,但是故障往往是不可避免的。一旦发生了故障就需要启动备份机制,确保业务的连续性。OceanBase4.0首次实现了RTO<8s,真正将故障恢复时间从分钟级(30s)降低到秒级(8s),帮助业务系统更快恢复,最大程度减少业务影响,给业务带来持续可用的能力。

数据库的发展阶段

数据库发展阶段大致划分为如下的几个阶段:人工管理阶段、文件系统阶段、数据库系统阶段、高级数据库阶段。 50年代中期之前,计算机的软硬件均不完善。 硬件存储设备只有磁带、卡片和纸带,软件方面还没有操作系统,当时的计算机主要用于科学计算。 这个阶段由于还没有软件系统对数据进行管理,程序员在程序中不仅要规定数据的逻辑结构,还要设计其物理结构,包括存储结构、存取方法、输入输出方式等。 当数据的物理组织或存储设备改变时,用户程序就必须重新编制。 由于数据的组织面向应用,不同的计算程序之间不能共享数据,使得不同的应用之间存在大量的重复数据,很难维护应用程序之间数据的一致性。 这一阶段的主要特征可归纳为如下几点:*计算机中没有支持数据管理的软件。 *数据组织面向应用,数据不能共享,数据重复。 *在程序中要规定数据的逻辑结构和物理结构,数据与程序不独立。 *数据处理方式——批处理。 这一阶段的主要标志是计算机中有了专门管理数据库的软件——操作系统(文件管理)。 上世纪50年代中期到60年代中期,由于计算机大容量存储设备(如硬盘)的出现,推动了软件技术的发展,而操作系统的出现标志着数据管理步入一个新的阶段。 在文件系统阶段,数据以文件为单位存储在外存,且由操作系统统一管理。 操作系统为用户使用文件提供了友好界面。 文件的逻辑结构与物理结构脱钩,程序和数据分离,使数据与程序有了一定的独立性。 用户的程序与数据可分别存放在外存储器上,各个应用程序可以共享一组数据,实现了以文件为单位的数据共享。 但由于数据的组织仍然是面向程序,所以存在大量的数据冗余。 而且数据的逻辑结构不能方便地修改和扩充,数据逻辑结构的每一点微小改变都会影响到应用程序。 由于文件之间互相独立,因而它们不能反映现实世界中事物之间的联系,操作系统不负责维护文件之间的联系信息。 如果文件之间有内容上的联系,那也只能由应用程序去处理。 60年代后,随着计算机在数据管理领域的普遍应用,人们对数据管理技术提出了更高的要求:希望面向企业或部门,以数据为中心组织数据,减少数据的冗余,提供更高的数据共享能力,同时要求程序和数据具有较高的独立性,当数据的逻辑结构改变时,不涉及数据的物理结构,也不影响应用程序,以降低应用程序研制与维护的费用。 数据库技术正是在这样一个应用需求的基础上发展起来的。 数据库技术有如下特点:* 面向企业或部门,以数据为中心组织数据,形成综合性的数据库,为各应用共享。 * 采用一定的数据模型。 数据模型不仅要描述数据本身的特点,而且要描述数据之间的联系。 * 数据冗余小,易修改、易扩充。 不同的应用程序根据处理要求,从数据库中获取需要的数据,这样就减少了数据的重复存储,也便于增加新的数据结构,便于维护数据的一致性。 *程序和数据有较高的独立性。 * 具有良好的用户接口,用户可方便地开发和使用数据库。 * 对数据进行统一管理和控制,提供了数据的安全性、完整性、以及并发控制。 从文件系统发展到数据库系统,这在信息领域中具有里程碑的意义。 在文件系统阶段,人们在信息处理中关注的中心问题是系统功能的设计,因此程序设计占主导地位;而在数据库方式下,数据开始占据了中心位置,数据的结构设计成为信息系统首先关心的问题,而应用程序则以既定的数据结构为基础进行设计。 大事记1951:Univac系统使用磁带和穿孔卡片作为数据存储。 1956:IBM公司在其Model 305 RAMAC中第一次引入了磁盘驱动器1961:通用电气(GE)公司的Charles Bachman开发了第一个数据库管理系统——IDS1969: E.F. Codd发明了关系数据库。 1973:由John 领导Cullinane公司开发了 IDMS——一个针对IBM主机的基于网络模型的数据库。 1976:Honeywell公司推出了Multics Relational highlight=true>DB2数据库产品。 1985:为Procter & Gamble系统设计的第一个商务智能系统产生。 1991:W.H.“Bill” Inmon发表了”构建数据仓库”。 随着信息管理内容的不断扩展,出现了丰富多样的数据模型(层次模型,网状模型,关系模型,面向对象模型,半结构化模型等),新技术也层出不穷(数据流,Web数据管理,数据挖掘等)。 每隔几年,国际上一些资深的数据库专家就会聚集一堂,探讨数据库研究现状,存在的问题和未来需要关注的新技术焦点。 过去已有的几个类似报告包括:1989年Future Directions inDBMS Research-The Laguna BeachParticipants ;1990年DatabaseSystems : Achievements and Opportunities ;1991年W.H. Inmon 发表的《构建数据仓库》;1995年Database。

数据库的发展简史

使用计算机后,随着数据处理量的增长,产生了数据管理技术。 数据管理技术的发展与计算机硬件(主要是外部存储器)系统软件及计算机应用的范围有着密切的联系。 数据管理技术的发展经历了以下四个阶段:人工管理阶段、文件系统阶段、数据库阶段和高级数据库技术阶段。 数据管理的诞生数据库的历史可以追溯到五十年前,那时的数据管理非常简单。 通过大量的分类、比较和表格绘制的机器运行数百万穿孔卡片来进行数据的处理,其运行结果在纸上打印出来或者制成新的穿孔卡片。 而数据管理就是对所有这些穿孔卡片进行物理的储存和处理。 然而,1950 年雷明顿兰德公司(Remington Rand Inc)的一种叫做Univac I 的计算机推出了一种一秒钟可以输入数百条记录的磁带驱动器,从而引发了数据管理的革命。 1956 年IBM生产出第一个磁盘驱动器—— the Model 305 RAMAC。 此驱动器有50 个盘片,每个盘片直径是2 英尺,可以储存5MB的数据。 使用磁盘最大的好处是可以随机存取数据,而穿孔卡片和磁带只能顺序存取数据。 1951: Univac系统使用磁带和穿孔卡片作为数据存储。 数据库系统的萌芽出现于二十世纪60 年代。 当时计算机开始广泛地应用于数据管理,对数据的共享提出了越来越高的要求。 传统的文件系统已经不能满足人们的需要,能够统一管理和共享数据的数据库管理系统(DBMS)应运而生。 数据模型是数据库系统的核心和基础,各种DBMS软件都是基于某种数据模型的。 所以通常也按照数据模型的特点将传统数据库系统分成网状数据库、层次数据库和关系数据库三类。 最早出现的网状DBMS,是美国通用电气公司Bachman等人在1961年开发的IDS(Integrated highlight=true>消息队列共享等先进特性的支持。 这个具有30年历史的数据库产品在如今的WWW应用连接、商务智能应用中扮演着新的角色。 1973年Cullinane公司(也就是后来的Cullinet软件公司),开始出售Goodrich公司的IDMS改进版本,并且逐渐成为当时世界上最大的软件公司。 网状数据库和层次数据库已经很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。 用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。 而后来出现的关系数据库较好地解决了这些问题。 1970年,IBM的研究员博士在刊物《Communication of the ACM》上发表了一篇名为“A Relational Model of highlight=true>关系模型的概念,奠定了关系模型的理论基础。 尽管之前在1968年Childs已经提出了面向集合的模型,然而这篇论文被普遍认为是数据库系统历史上具有划时代意义的里程碑。 Codd的心愿是为数据库建立一个优美的数据模型。 后来Codd又陆续发表多篇文章,论述了范式理论和衡量关系系统的12条标准,用数学理论奠定了关系数据库的基础。 关系模型有严格的数学基础,抽象级别比较高,而且简单清晰,便于理解和使用。 但是当时也有人认为关系模型是理想化的数据模型,用来实现DBMS是不现实的,尤其担心关系数据库的性能难以接受,更有人视其为当时正在进行中的网状数据库规范化工作的严重威胁。 为了促进对问题的理解,1974年ACM牵头组织了一次研讨会,会上开展了一场分别以Codd和Bachman为首的支持和反对关系数据库两派之间的辩论。 这次著名的辩论推动了关系数据库的发展,使其最终成为现代数据库产品的主流。 1969年Edgar F.“Ted” Codd发明了关系数据库。 1970年关系模型建立之后,IBM公司在San Jose实验室增加了更多的研究人员研究这个项目,这个项目就是著名的System R。 其目标是论证一个全功能关系DBMS的可行性。 该项目结束于1979年,完成了第一个实现SQL的 DBMS。 然而IBM对IMS的承诺阻止了System R的投产,一直到1980年System R才作为一个产品正式推向市场。 IBM产品化步伐缓慢的三个原因:IBM重视信誉,重视质量,尽量减少故障;IBM是个大公司,官僚体系庞大,IBM内部已经有层次数据库产品,相关人员不积极,甚至反对。 然而同时,1973年加州大学伯克利分校的Michael Stonebraker和Eugene Wong利用System R已发布的信息开始开发自己的关系数据库系统Ingres。 他们开发的Ingres项目最后由Oracle公司、Ingres公司以及硅谷的其他厂商所商品化。 后来,System R和Ingres系统双双获得ACM的1988年“软件系统奖”。 1976年霍尼韦尔公司(Honeywell)开发了第一个商用关系数据库系统——Multics Relational highlight=true>微软公司的MS SQL Server以及Informix、ADABAS D等等。 1974年IBM的Ray Boyce和Don Chamberlin将Codd关系数据库的12条准则的数学定义以简单的关键字语法表现出来,里程碑式地提出了SQL(Structured Query Language)语言。 SQL语言的功能包括查询、操纵、定义和控制,是一个综合的、通用的关系数据库语言,同时又是一种高度非过程化的语言,只要求用户指出做什么而不需要指出怎么做。 SQL集成实现了数据库生命周期中的全部操作。 SQL提供了与关系数据库进行交互的方法,它可以与标准的编程语言一起工作。 自产生之日起,SQL语言便成了检验关系数据库的试金石,而SQL语言标准的每一次变更都指导着关系数据库产品的发展方向。 然而,直到二十世纪七十年代中期,关系理论才通过SQL在商业数据库Oracle和DB2中使用。 1986年,ANSI把SQL作为关系数据库语言的美国标准,同年公布了标准SQL文本。 SQL标准有3个版本。 基本SQL定义是ANSⅨ3135-89,“Database Language - SQL with Integrity Enhancement”[ANS89],一般叫做SQL-89。 SQL-89定义了模式定义、数据操作和事务处理。 SQL- 89和随后的ANSⅨ3168-1989,“Database Language-Embedded SQL”构成了第一代SQL标准。 ANSⅨ3135-1992[ANS92]描述了一种增强功能的SQL,叫做SQL-92标准。 SQL-92包括模式操作,动态创建和SQL语句动态执行、网络环境支持等增强特性。 在完成SQL-92标准后,ANSI和ISO即开始合作开发SQL3标准。 SQL3的主要特点在于抽象数据类型的支持,为新一代对象关系数据库提供了标准。 1976年IBM 发表了一篇里程碑的论文“R系统:数据库关系理论”,介绍了关系数据库理论和查询语言SQL。 Oracle的创始人Ellison非常仔细地阅读了这篇文章,被其内容震惊,这是第一次有人用全面一致的方案管理数据信息。 作者 1966年就发表了关系数据库理论,并在IBM研究机构开发原型,这个项目就是R系统,存取数据表的语言就是SQL。 Ellison看完后,敏锐意识到在这个研究基础上可以开发商用软件系统。 而当时大多数人认为关系数据库不会有商业价值。 Ellison认为这是他们的机会:他们决定开发通用商用数据库系统Oracle,这个名字来源于他们曾给中央情报局做过的项目名。 几个月后,他们就开发了Oracle 1.0。 但这只不过是个玩具,除了完成简单关系查询不能做任何事情,他们花相当长的时间才使Oracle变得可用,维持公司运转主要靠承接一些数据库管理项目和做顾问咨询工作。 而IBM却没有计划开发,为什么蓝色巨人放弃了这个价值上百亿的产品,原因有很多:IBM的研究人员大多是学术出身,他们最感兴趣的是理论,而非推向市场的产品,从学术上看,研究成果应公开发表论文和演讲能使他们成名,为什么不呢?还有一个很主要的原因就是IBM当时有一个销售得还不错的层次数据库产品IMS。 直到1985年IBM才发布了关系数据库DB2 ,Ellision那时已经成了千万富翁。 Ellison曾将IBM 选择Microsoft 的MS-DOS作为IBM-PC机的操作系统比为:“世界企业经营历史上最严重的错误,价值超过了上千亿美元。 ”IBM发表R系统论文,而且没有很快推出关系数据库产品的错误可能仅仅次之。 Oracle的市值在1996年就达到了280亿美元。 随着信息技术和市场的发展,人们发现关系型数据库系统虽然技术很成熟,但其局限性也是显而易见的:它能很好地处理所谓的“表格型数据”,却对技术界出现的越来越多的复杂类型的数据无能为力。 九十年代以后,技术界一直在研究和寻求新型数据库系统。 但在什么是新型数据库系统的发展方向的问题上,产业界一度是相当困惑的。 受当时技术风潮的影响,在相当一段时间内,人们把大量的精力花在研究“面向对象的数据库系统(object oriented target=_blank>

标签: 分布式事务高可用分布式数据库

本文地址: https://yihaiquanyi.com/article/f2577399d7dda5faebc5.html

上一篇:极地数据库超越极限的性能和可靠性极地资源...
下一篇:极光数据库引领数据库新潮流极光数据网...

发表评论