具有数据库引擎和独立分布式存储服务的数据库系统技术方案

技术编号:12430786 阅读:58 留言:0更新日期:2015-12-03 14:44
一种数据库系统可包括数据库服务和独立分布式存储服务。数据库服务(或其数据库引擎头节点)可负责查询解析、优化、和执行、事务性、和一致性,而存储服务可负责根据重做日志记录产生数据页面和那些数据页面的耐久性。例如,响应于指向特定数据页面的写入请求,数据库引擎头节点可产生重做日志记录,并且将它,但非数据页面,发送至存储服务节点。存储服务节点可存储重做日志记录,并且在应用所述重做日志记录之前将写入确认返回至所述数据库服务。服务器节点可将所述重做日志记录和其他重做日志记录应用至先前存储版本的数据页面以便创建当前版本。

【技术实现步骤摘要】
【国外来华专利技术】具有数据库引擎和独立分布式存储服务的数据库系统
技术介绍
在一些情况下,软件堆栈的各种部件的分布可提供(或支持)容错性(例如,通过复制)、较高耐久性、和较不昂贵的解决方案(例如,通过使用许多较小的、较不昂贵的部件,而不是较少大型的、昂贵的部件)。然而,在历史上数据库已经是至少服从分布的软件堆栈的部件。例如,可能难以分布数据库同时仍确保期望它们提供的所谓ACID特性(例如,原子性、一致性、隔离性、和耐久性)。尽管大部分现存的相关数据库未被分布,使用两个常用模型中的一个来“向外扩展”(与通过仅采用较大单片系统的“向上扩展”相反)一些现存的数据库:“无共享”模型和“共享磁盘”模型。一般来说,在“无共享”模型中,接收的查询分解成数据库碎片(其中的每一个包括查询部件),这些碎片被发送至不同的计算机节点用于查询处理,并且在它们返回前收集和集合结果。一般来说,在“共享磁盘”模型中,群集中的每个计算机节点访问相同的基础数据。在采用这个模型的系统中,必须非常小心以便管理高速缓存一致性。在这两个模型中,在多个节点(包括单机数据库实例的所有功能性)上复制大型、单片数据库,并且添加“胶合”逻辑以便将它们缝合在一起。例如,在“无共享”模型中,胶合逻辑可提供分配器的功能性,所述分配器使查询细分、将它们发送至多个计算机节点、以及随后组合结果。在“共享磁盘”模型中,胶合逻辑可用来将多个节点的高速缓存融合在一起(例如,以便管理在高速缓存层处的一致性)。部署这些“无共享”和“共享磁盘”数据库系统可能花费较大,并且维持起来较复杂,以及它们可能过度服务许多数据库使用情况。在传统数据库系统中,由数据库系统管理的数据存储在直接附加的磁盘上。如果磁盘失效,那么更换所述磁盘并且随后必须重新加载适当的数据。例如,在许多系统中,崩溃恢复包括从备份系统复原最近的快照,并且随后重播从所述点向前的最后快照以后做出的任何改变。然而,这个方法不能很好地缩放以用于大型数据库。附图说明图1为示出根据一个实施方案的数据库软件堆栈的各种部件的框图。图2为示出根据一些实施方案的服务系统架构的框图,所述服务系统架构可被配置来实施基于网络服务的数据库服务。图3为示出根据一个实施方案的数据库系统的各种部件的框图,所述数据库系统包括数据库引擎和独立分布式数据库存储服务。图4为示出根据一个实施方案的分布式数据库优化存储系统的框图。图5为示出用于访问数据库系统中的数据的方法的一个实施方案的流程图,所述数据库系统包括数据库引擎和独立分布式数据库存储服务。图6为示出根据一个实施方案的数据库系统中的独立分布式数据库优化存储系统的使用的框图。图7为从数据库引擎的角度示出用于在数据库系统中执行写入操作的方法的一个实施方案的流程图。图8为从分布式数据库优化存储系统的角度示出用于在数据库系统中执行写入操作的方法的一个实施方案的流程图。图9为示出根据一个实施方案的可将数据和元数据存储在分布式数据库优化存储系统的给定节点上的方式的框图。图10为示出根据一个实施方案的数据库容量的示例性配置的框图。图11为从数据库引擎的角度示出用于在数据库系统中执行读取操作的方法的一个实施方案的流程图。图12为从分布式数据库优化存储系统的角度示出用于在数据库系统中执行读取操作的方法的一个实施方案的流程图。图13为示出用于在包括保护组的分布式数据库优化存储系统中执行读取操作和写入操作的方法的一个实施方案的流程图。图14为示出根据各种实施方案的被配置来实施数据库系统的至少一部分的计算机系统的框图,所述数据库系统包括数据库引擎和独立分布式数据库存储服务。虽然在本文中通过列举若干实施方案和示意性附图的实例的方式描述了实施方案,本领域的技术人员应认识到,实施方案并不限于所描述的实施方案或附图。应理解,附图和对其的详细描述并非意图将实施方案限于所公开的特定形式,而是相反,其意图在于涵盖落入由所附权利要求书所界定的精神和范围内的所有修改、等同物以及替代方案。本文中使用的任何标题都仅用于组织目的,并且并不意图用于限制描述或权利要求书的范围。贯穿本申请所使用的词语“可以”是在许可的意义上(即意指具有可能性)、而非强制的意义上(即意指必须)使用。类似地,词语“包括(include/including/includes)”意味着包括但不限于。具体实施方式在一些实施方案中,本文中描述的系统可实施网络服务,所述网络服务使得客户端(例如,订阅者)能够在云计算环境中操作数据存储系统。在一些实施方案中,数据存储系统可为高度可缩放的和可扩展的企业级数据库系统。在一些实施方案中,查询可指向横跨多个物理源分布的数据库存储,并且数据库系统可在所需的基础上扩大或缩小。在不同实施方案中,数据库系统可在各种类型和/或组织的数据库模式下有效工作。在一些实施方案中,客户端/订阅者可能以许多方式(例如,通过到数据库系统的SQL接口以交互方式)提交查询。在其他实施方案中,外部应用和程序可使用到数据库系统的开放数据库连接(ODBC)和/或Java数据库连接(JDBC)驱动器接口来提交查询。更具体地,在一些实施方案中,本文描述的系统可实施面向服务的数据库架构,在所述数据库架构中单个数据库系统的各种功能部件固有地分布。例如,不是将多个完整的和单片的数据库实例(其中的每一个可包括外来功能性,如应用服务器、搜索功能性、或超过需要用来提供数据库的核心功能的其他功能性)捆绑在一起,这些系统可将数据库的基本操作(例如,查询处理、事务管理、高速缓存和存储)组织成可单独和独立缩放的层。例如,在一些实施方案中,本文所描述的系统中的每个数据库实例可包括数据库层(其可包括单个数据库引擎头节点和客户端侧存储系统驱动器)、和独立分布式存储系统(其可包括共同执行在现有系统的数据库层中常规执行的操作中的一些的多个存储节点)。如本文更详细描述的,在一些实施方案中,数据库的一些最低水平操作(例如,备份、复原、快照、恢复、和/或各种空间管理操作)可从数据库引擎卸载至存储层,并且分布在多个节点和存储装置上。例如,在一些实施方案中,不是数据库引擎对数据库表格(或其数据页面)应用改变以及随后将修改的数据页面发送至存储层,对存储的数据库表格(或其数据页面)的改变的应用可为存储层本身的责任。在此类实施方案中,可将重做日志记录而不是修改的数据页面发送至存储层,在其之后重做处理(例如,应用重做日志记录)可稍微徐缓地并且以分布式方式执行(例如,通过后台处理)。在一些实施方案中,崩溃恢复(例如,从存储的重做日志记录重建数据页面)也可由存储层执行,以及也可由分布式(并且在一些情况下徐缓的)后台处理执行。在一些实施方案中,因为只有重做日志(以及未修改的数据页面)被发送至存储层,在数据库层与存储层之间可存在比现有数据库系统中更少的网络流量。在一些实施方案中,每个重做日志可大约为它指定变化的对应数据页面大小的十分之一。注意从数据数据库层和分布式存储系统发送的请求可为异步的,并且多个此类请求可同时在发送中。如先前指出的,在典型的大型数据库系统中,在系统故障后,数据库系统可重启前,整个数据集需要被复原。在这些数据库系统中,在崩溃之后,系统必须确定最后点,在所述最后点处已知所有的数据页面已被刷新至磁盘(例如,检查点),并且必须重播从本文档来自技高网...

【技术保护点】
一种计算系统,其包括:多个计算节点,其中的每一个包括至少一个处理器和存储器;其中所述多个计算节点中的一个或多个被配置来实施数据库服务,并且其中所述数据库服务包括数据库引擎头节点;其中所述多个计算节点中的两个或更多的其他节点被配置来实施分布式存储服务的服务器节点,所述分布式存储服务存储数据库表格的部分作为在一个或多个存储装置上的各自数据页面;其中所述数据库引擎头节点被配置来:从所述数据库服务的客户端接收指向数据库表格中的给定数据记录的写入请求,其中所述写入请求指定将对所述给定数据记录进行的修改;产生代表将对所述给定数据记录进行的所述修改的重做日志记录;将所述重做日志记录,但非包括所述给定数据记录的数据页面,发送至存储包括所述给定数据记录的版本的所述数据页面的所述分布式存储服务的特定服务器节点;其中所述分布式存储服务的所述特定服务器节点被配置来:从所述数据库引擎头节点接收所述重做日志记录;将所述重做日志记录写入至一个或多个存储装置;将所述重做日志记录被写入的确认返回至所述数据库引擎头节点;以及在返回所述确认之后:产生包括所述给定数据记录的当前版本的所述数据页面,其中为产生所述当前版本的所述数据页面,所述分布式存储服务的所述特定服务器节点被配置来将所述所接收的重做日志记录和代表对所述数据页面的修改的一个或多个其他重做日志记录应用至先前存储版本的所述数据页面;以及将所述当前版本的所述数据页面写入至一个或多个存储装置。...

【技术特征摘要】
【国外来华专利技术】2013.03.15 US 61/794,572;2014.03.07 US 14/201,4931.一种计算系统,包括:多个计算节点,其中的每一个包括至少一个处理器和存储器;其中所述多个计算节点中的一个或多个被配置来实施数据库服务,并且其中所述数据库服务包括数据库引擎头节点;其中所述多个计算节点中的两个或更多的其他节点被配置来实施分布式存储服务的服务器节点,所述分布式存储服务存储数据库表格的部分作为在一个或多个存储装置上的各自数据页面;其中所述数据库引擎头节点被配置来:从所述数据库服务的客户端接收指向数据库表格中的给定数据记录的写入请求,其中所述写入请求指定将对所述给定数据记录进行的修改;产生代表将对所述给定数据记录进行的所述修改的重做日志记录;将所述重做日志记录,但非包括所述给定数据记录的数据页面,发送至存储包括所述给定数据记录的版本的所述数据页面的所述分布式存储服务的特定服务器节点;其中所述分布式存储服务的所述特定服务器节点被配置来:从所述数据库引擎头节点接收所述重做日志记录;将所述重做日志记录写入至一个或多个存储装置;将所述重做日志记录被写入的确认返回至所述数据库引擎头节点;以及在返回所述确认之后:产生包括所述给定数据记录的当前版本的所述数据页面,其中为产生所述当前版本的所述数据页面,所述分布式存储服务的所述特定服务器节点被配置来将所接收的所述重做日志记录和代表对所述数据页面的修改的一个或多个先前接收的重做日志记录应用至先前存储版本的所述数据页面;以及将所述当前版本的所述数据页面写入至一个或多个存储装置。2.如权利要求1所述的计算系统,其中所述数据库引擎头节点被进一步配置来:从数据库客户端接收对读取包括所述给定数据记录的所述数据页面的请求;以及响应于接收对读取所述数据页面的所述请求,将用于当前版本的所述数据页面的请求发送至所述分布式存储服务的所述特定服务器节点。3.如权利要求1所述的计算系统,其中所述数据库引擎头节点包括用于所述分布式存储系统的客户端侧驱动器;以及其中为将所述重做日志记录发送至所述分布式存储系统的所述特定服务器节点,所述客户端侧驱动器被配置来:确定存储包括所述给定数据记录的版本的所述数据页面的所述分布式存储服务的所述特定服务器节点;以及将所述重做日志记录发送至代表所述数据库服务的所述分布式存储系统的所述特定服务器节点。4.一种计算系统,包括:一个或多个计算节点,其中的每一个包括至少一个处理器和存储器,其中所述一个或多个计算节点被配置来共同实施数据库服务,并且其中所述数据库服务包括数据库引擎头节点和针对分布式存储系统的接口;其中所述数据库引擎头节点被配置来:从所述数据库服务的客户端接收指向数据库表格中的给定数据记录的写入请求,其中所述写入请求指定将对所述给定数据记录进行的修改;产生代表将对所述给定数据记录进行的所述修改的重做日志记录;将所述重做日志记录,但非包括所述给定数据记录的数据页面,通过所述接口发送至存储包括所述给定数据记录的版本的所述数据页面的所述分布式存储服务的特定服务器节点;通过所述接口接收所述重做日志记录已经被写入至所述分布式存储服务的确认;以及将指示所述请求的写入已被执行的响应返回至所述数据库客户端。5.如权利要求4所述的计算系统,其中所述数据库引擎头节点被进一步配置来:从所述数据库服务的客户端接收对读取包括所述给定数据记录的所述数据页面的请求;以及响应于接收对读取所述数据页面的所述请求:通过所述接口将用于当前版本的所述数据页面的请求发送至所述分布式存储服务的所述特定服务器节点;通过所述接口接收所述当前版本的所述数据页面;以及将所述当前版本的所述数据页面返回至从其接收对读取所述数据页面的所述...

【专利技术属性】
技术研发人员:A·W·古普塔N·法罕S·J·麦凯尔维L·D·伯彻尔C·R·纽科姆P·J·马德哈瓦拉普B·托布勒J·M·科里
申请(专利权)人:亚马逊科技公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1