用于分布式数据库系统的系统范围检查点避免的制作方法_2

文档序号:9457678阅读:来源:国知局
数据页面指向用于那个页面的最后重做日志记录、反向链接日志记录,直到实体化数据块被引用。这个方法可提供用于混合的读取-写入工作负荷的良好性能,包括在其中大量高速缓存读取的应用中。
[0040]在一些实施方案中,因为对用于重做日志记录的日志结构化数据存储的访问可包括一系列连续的输入/输出操作(不是随机输入/输出操作),做出的改变可被紧密包装在一起。还应注意,与在其中对数据页面的每个改变导致对持久数据存储的两个输入/输出操作(一个用于重做日志,并且一个用于修改的数据页面本身)的现存系统相比,在一些实施方案中,通过基于重做日志记录的接收来合并在分布式存储系统的存储节点处的数据页面,本文描述的系统可避免这个“写入放大”。
[0041]如先前指出的,在一些实施方案中,数据库系统的存储层可负责取得数据库快照。然而,因为存储层实施日志结构化存储,取得数据页面(例如,数据块)的快照可包括记录与最近应用至数据页面/数据块的重做日志记录关联的时间戳(或与合并多个重做日志记录以便创建新版本的数据页面/数据块的最近操作关联的时间戳),和阻止先前版本的页面/块的无用数据收集以及直到记录的时间点的任何随后日志条目。在这类实施方案中,取得数据库快照可能不需要如当采用远离卷备份策略时将需要的读取、复制或写入数据块。在一些实施方案中,对快照的空间要求可为最小的,由于仅修改的数据将需要附加的空间,但用户/订阅者可以能够选择除活动数据集之外他们想要保持多少附加空间用于在卷上的快照。在不同的实施方案中,快照可为离散的(例如,每个快照可提供对在具体时间点的数据页面中的所有数据的访问)或连续的(例如,每个快照可提供对存在于两个时间点之间的数据页面中的所有版本的数据的访问)。在一些实施方案中,回复至先前的快照可包括记录日志记录以便指示所有的重做日志记录和数据页面(由于快照为无效的和可无用数据收集的),以及在快照点后丢弃所有数据库高速缓存条目。在此类实施方案中,由于存储系统将在逐块基础上如请求的和后台在所有节点上对数据块应用重做日志记录,就像它在正常的向前读取/写入处理中做的,所以不需要向前滚动,。从而可使得崩溃恢复并行和分布在节点上。
[0042]图2中示出可被配置来实施基于网络服务的数据库服务的服务系统架构的一个实施方案。在所示的实施方案中,一些客户端(被示作数据库客户端250a-250n)可被配置来通过网络260与网络服务平台200互相作用。网络服务平台200可被配置来与数据库服务210、分布式数据库优化存储服务220和/或一个或多个其他虚拟计算服务230的一个或多个实例相互作用。注意其中给定部件的一个或多个实例可存在,可使得本文中对那个部件的引用为单数的或复数的。然而,任何一种形式的使用不意图排除另一种。
[0043]在各种实施方案中,图2所示的部件可直接在计算机硬件内实施,如可由计算机硬件直接执行或间接执行的指令(例如,微处理器或计算机系统),或使用这些技术的组合。例如,图2的部件可由包括一些计算节点(或简单地,节点)的系统来实施,所述计算节点中的每一个可类似于图10所示的和以下描述的计算机系统实施方案。在各种实施方案中,给定服务系统部件(例如,数据库服务的部件或存储服务的部件)的功能性可由特定节点来实施或可分布在若干节点上。在一些实施方案中,给定节点可实施多于一个服务系统部件(例如,多于一个数据库服务系统部件)的功能性。
[0044]—般来说,客户端250可包含可被配置来通过网络260向网络服务平台200提交网络请求、包括用于数据库服务的请求(例如,产生快照的请求等)的任何类型的客户端。例如,给定客户端250可包括适当版本的网络浏览器,或可包括被配置来作为延伸执行或在由网络浏览器提供的执行环境内执行的插件模块或其他类型的代码模块。可替代地,客户端250 (例如,数据库服务客户端)可包含应用程序,如数据库应用程序(或其用户接口 )、媒体应用程序、办公室应用程序、或可使用持久存储资源以便存储和/或访问一个或多个数据库的任何其他应用程序。在一些实施方案中,此类应用程序可包括足够的协议支持(例如,用于适当版本的超文本传输协议(HTTP)),用于产生和处理网络服务请求,而不必要地实施用于所有类型的基于网络的数据的完全浏览器支持。就是说,客户端250可为被配置来直接与网络服务平台200相互作用的应用程序。在一些实施方案中,客户端250可被配置来根据表述性状态转移(REST)类型的网络架构、基于文件或基于消息的网络服务架构、或另一适当的网络服务架构产生网络服务请求。
[0045]在一些实施方案中,客户端250(例如,数据库服务客户端)可被配置来向其他应用程序以对这些应用程序透明的方式提供对基于网络服务的数据库存储的访问。例如,客户端250可被配置来与操作系统或文件系统集成,来提供根据本文所描述的存储模型的适当变体的存储。然而,操作系统或文件系统可呈现针对应用程序的不同存储接口,如文件、目录和/或文件夹的常规文件系统层级。在此类实施方案中,应用程序可能不需要被修改以便使用图1的存储系统服务模型。反而,对网络服务平台200的介接的细节可通过客户端250和代表在操作系统环境内执行的应用程序的操作系统或文件系统来协调。
[0046]客户端250可通过网络260将网络服务(例如,快照请求、快照请求参数、读取请求、复原快照等)请求传达至网络服务平台200以及从网络服务平台200接收响应。在各种实施方案中,网络260可包含对在客户端250与平台200之间建立基于网络的通信有必要的联网的硬件和协议的任何适当组合。例如,网络260通常可包含共同实施因特网的各种电信网络和服务提供者。网络260也可包括专用网络(如局域网(LAN)或广域网(WAN))以及公用无线网络或专用无线网络。例如,给定的客户端250和网络服务平台200可分别被供应在具有其自身内部网络的企业内。在此类环境中,网络260可包括对在给定客户端250与因特网之间以及在因特网和网络服务平台200之间建立联网链接有必要的硬件(例如,调制解调器、路由器、交换器、负载均衡器、代理服务器等)和软件(例如,协议堆栈、会计软件、防火墙/安全软件等)。注意在一些实施方案中,客户端250可使用专用网络而不是公用因特网来与网络服务平台200通信。例如,客户端250可被供应在与数据库服务系统相同的企业内(例如,实施数据库服务210和/或分布式数据库优化存储服务220的系统)。在此类情况下,客户端250可通过专用网络260 (例如,可使用基于因特网的通信协议但不可公共访问的LAN或WAN)与平台200通信。
[0047]—般来说,网络服务平台200可被配置,以便实施被配置来接收和处理网络服务请求(如对访问数据页面(或其记录)的请求)的一个或多个服务端点。例如,网络服务平台200可包括被配置来实施特定端点的硬件和/或软件,以使得指向那个端点的基于HTTP的网络服务请求被适当地接收和处理。在一个实施方案中,网络服务平台200可被实施作为服务器系统,所述服务器系统被配置来从客户端250接收网络服务请求,并且将它们转发至实施数据库服务210、分布式数据库优化存储服务220和/或另一虚拟计算服务230的系统的部件用于处理。在其他实施方案中,网络服务平台200可被配置成一些异构系统(例如,处于集群拓扑),所述异构系统实施负载平衡和被配置来动态管理大规模的网络服务请求处理负载的其他请求管理特征。在各种实施方案中,网络服务平台200可被配置来支持REST类型的或基于文件(例如,基于SOAP)类型的网络服务请求。
[0048]除起到用于客户端的网络服务请求的可寻址端点的作用之外,在一些实施方案中,网络服务平台200可实施各种客户端管理特征。例如,平台200可协调网络服务(包括存储资源)的客户端使用的测量和计数,如通过追踪请求客户端250的身份、客户端请求的数目和/或频率、被存储或检索的代表客户端250的数据表格(或其记录)的大小、由客户端250使用的总存储带宽、由客户端250请求的存储类别、或任何其他可测量的客户端使用参数。平台200也可实施财务账目和计费系统,或可维持使用数据的数据库,所述使用数据的数据库可由用于客户端使用活动的报告和计费的外部系统查询和处理。在某些实施方案中,平台200可被配置来收集、监视和/或集合各种存储服务系统操作度量,如反映从客户端250接收的请求的速率和类型、由此类请求利用的带宽、用于此类请求的系统处理时延、系统部件利用(例如,网络带宽和/或存储服务系统内的存储利用)、由请求导致的错误的速率和类型、存储的和请求的数据页面或其记录的特性(例如,大小、数据类型等)的度量、或任何其他适当的度量。在一些实施方案中,此类度量可由系统管理员使用以便调谐和维持系统部件,而在其他实施方案中,此类度量(或此类度量的相关部分)可暴露于客户端250,以便使得此类客户端能够监视它们使用数据库服务210、分布式数据库优化存储服务220和/或另一虚拟计算服务230 (或实施那些服务的基础系统)。
[0049]在一些实施方案中,平台200也可实施用户认证和访问控制程序。例如,对于访问特定数据库的给定网络服务请求,平台200可被配置来查明与请求关联的客户端250是否被授权访问特定数据库。平台200可确定此类认证,例如通过相对于与特定数据库关联的凭据评估身份、密码或其他凭据,或相对于用于特定数据库的访问控制列表评估对特定数据库的请求的访问。例如,如果客户端250不具有足够的凭据来访问特定数据库,平台200可例如通过将指示错误情况的响应返回至请求客户端250来拒绝对应的网络服务请求。通过数据库服务210、分布式数据库优化存储服务220和/或其他虚拟计算服务230,各种访问控制政策可被存储作为访问控制信息的记录或列表。
[0050]注意尽管网络服务平台200可代表通过其客户端250可访问实施数据库服务210的数据库系统的特征的主接口,但它不需要代表针对此类特征的唯一接口。例如,可与网络服务接口不同的替代性API可用于允许提供数据库系统的企业内部客户端绕开网络服务平台200。注意在本文描述的许多实例中,分布式数据库优化存储服务220可在计算系统内或向客户端250提供数据库服务的计算系统或企业系统内,并且不可暴露于外部客户端(例如,用户或客户端应用程序)。在此类实施方案中,内部“客户端”(例如,数据库服务210)可在本地网络或专用网络上访问分布式数据库优化存储服务220,被示出为在分布式数据库优化存储服务220与数据库服务210之间的实线(例如,通过直接在实施这些服务的系统之间的API)。在此类实施方案中,在存储代表客户端250的数据库中使用分布式数据库优化存储服务220对那些客户端可为透明的。在其他实施方案中,分布式数据库优化存储服务220可通过网络服务平台200暴露于客户端250,以便为除了依靠数据库服务210的那些应用程序外的应用程序提供数据库或其他信息的存储用于数据库管理。这在图2中通过网络服务平台200与分布式数据库优化存储服务220之间的虚线示出。在此类实施方案中,分布式数据库优化存储服务220的客户端可通过网络260(例如,在因特网上)访问分布式数据库优化存储服务220 ο在一些实施方案中,虚拟计算服务230可被配置来从分布式数据库优化存储服务220 (例如,通过直接在虚拟计算服务230与分布式数据库优化存储服务220之间的API)接收存储服务,来存储在执行计算服务230中使用的代表客户端250的对象。这在图2中通过虚拟计算服务230与分布式数据库优化存储服务220之间的虚线示出。在一些情况下,平台200的计数和/或凭证服务对于内部客户端(如管理客户端)或在同一企业内的服务部件之间可能为不必要的。
[0051]注意在各种实施方案中,不同的存储政策可由数据库服务210和/或分布式数据库优化存储服务220来实施。此类存储政策的实例可包括耐久性政策(例如,指示将被存储的数据库(或其数据页面)的实例数目和在其上它们将被存储的不同节点数目的政策)和/或负载平衡政策(其可在不同的节点、卷和/或磁盘上分布数据库或其数据页面,试图均衡请求流量)。此外,通过各种服务中的一个,可对不同类型的存储项目应用不同的存储政策。例如,在一些实施方案中,分配式数据库优化存储服务220可为重做日志记录实施比为数据页面更高的耐久性。
[0052]图3为示出根据一个实施方案的数据库系统的各种部件的框图,所述数据库系统包括数据库引擎和独立分布式数据库存储服务。在这个实例中,数据库系统300包括用于若干数据库中的每一个的各自数据库引擎头节点320和分布式数据库优化存储服务310 (其对数据库系统的客户端可能是或可能不是可见的,所述客户端被示出为数据库客户端350a-350n)。如这个实例所示,数据库客户端350a_350n中的一个或多个可通过网络360 (例如,这些部件对于数据库客户端350a-350n可为网络可寻址的和可访问的)来访问数据库头节点320 (例如,头节点320a、头节点320b、或头节点320c,其中的每一个为各自数据库实例的部件)。然而,可由数据库系统采用以便存储代表数据库客户端350a-350n的一个或多个数据(以及重做日志记录和/或与其关联的其他元数据)的数据页面以及执行如本文所述的数据库系统的其他功能的分布式数据库优化存储服务310在不同的实施方案中对于存储客户端350a-350n可能是或可能不是网络可寻址的或可访问的。例如,在一些实施方案中,分布式数据库优化存储服务310可能以对存储客户端350a-350n不可见的方式来执行各种存储、访问、改变日志、恢复、日志记录操纵、和/或空间管理操作。
[0053]如先前指出的,每个数据库实例可包括单个数据库引擎头节点320,所述单个数据库引擎头节点320接收来自各种客户端程序(例如,应用程序)和/或订阅者(用户)的请求(例如,快照请求等),随后解析它们,优化它们并且发展执行计划以便实施关联的数据库操作。在图3所示的实例中,数据库引擎头节点320a的查询解析、优化和执行部件305可执行用于查询的这些功能,所述查询从数据库客户端350a接收并且把数据库引擎头节点320a为部件的数据库实例作为目标。在一些实施方案中,查询解析、优化和执行部件305可将查询响应返回至数据库客户端305a,所述查询响应可包括写入确认、请求的数据页面(或其部分)、错误消息、和/或其他响应(在适当情况下)。如这个实例所示,数据库引擎头节点320a也可包括客户端侧存储服务驱动器325,所述客户端侧存储服务驱动器325可将读取请求和/或重做日志记录路由至在分布式数据库优化存储服务310内的各种存储节点,从分布式数据优化存储服务310接收写入确认,从分布式数据库优化存储服务310接收请求的数据页面,和/或将数据页面、错误消息、或其他响应返回至查询解析、优化和执行部件305 (其反过来可将它们返回至数据库客户端350a)。
[0054]在这个实例中,数据库引擎头节点320a包括在其中最近访问的数据页面可被暂时保持的数据页面高速缓冲存储器335。如图3所示,数据库引擎头节点320a也可包括事务和一致性管理部件330,所述事务和一致性管理部件330可负责在数据库头节点320a为部件的数据库实例中提供事务性和一致性。例如,这个部件可负责确保数据库实例的原子性、一致性和隔离特性以及指向数据库实例的事务。如图3所示,数据库引擎头节点320a也可包括事务日志340和撤销日志345,所述事务日志340和撤销日志345可由事务和一致性管理部件330采用,以便追踪各种事务状态以及将不提交的事务的任何本地高速缓存的结果向后滚动。
[0055]注意图3所示的其他数据库引擎头节点320中的每一个(例如,320b和320c)可包括类似的部件并且可执行用于查询的类似功能,所述查询由数据库客户端350a-350n中的一个或多个接收,并且指向它为部件的各自数据库实例。
[0056]在一些实施方案中,本文描述的分布式数据库优化存储系统可在各种逻辑卷、区段和页面中组织数据用于一个或多个存储节点上存储。例如,在一些实施方案中,每个数据库由逻辑卷代表,并且每个逻辑卷在存储节点集合上被分割。依存在存储节点中的特定一个上的每个区段包含一组连续块地址。在一些实施方案中,每个数据页面存储在区段中,以使得每个区段存储一个或多个数据页面的集合和用于它存储的每个数据页面的改变日志(也被称为重做日志)(例如,重做日志记录的日志)。如本文详细描述的,存储节点可被配置来接收重做日志记录(其在本文中也被称为ULR),以及合并它们来创建新版本的对应数据页面和/或附加日志记录或替换日志记录(例如,徐缓地和/或响应于对数据页面的请求或数据库崩溃)。在一些实施方案中,根据可变的配置(其可由客户端指定,所述客户端被代表的数据库被维持在数据库系统中),数据页面和/或改变日志在多个存储节点上可为镜像的。例如,在不同实施方案中,根据默认配置、具体应用的耐久性偏好、或具体客户端的耐久性偏好,数据日志或改变日志的一个、两个或三个副本可存储在一个、两个或三个不同的可用区或区域中的每一个中。
[0057]如本文使用的,以下术语可用于描述根据各种实施方案的通过分布式数据库优化存储系统进行的数据的组织。
[0058]卷:卷为代表存储系统的用户/客户端/应用程序理解的高度耐用的存储单元的逻辑概念。更具体地,卷为对用户/客户端/应用程序显示成对数据库的各种用户页面的写入操作的单个一致有序日志的分布式存储。每个写入操作可被编码在用户日志记录(ULR)中,所述用户日志记录(ULR)代表对卷内的单个用户页面的内容的逻辑、有序突变。如以上指出的,ULR在本文中也可被称为重做日志记录。每个ULR可包括唯一识别符(例如,逻辑序列编号(LSN))或逻辑序列号。每个ULR可持续至形成保护组(PG)的在分布式存储中的一个或多个同步区段,以便为ULR提供高耐久性和可用性。卷可提供用于可变大小的连续字节范围的LSN类型的读取/写入接口。
[0059]一些实施方案中,卷可包括多个程度,通过保护组使得每个耐用。在此类实施方案中,卷可代表由变异连续的卷程度序列组成的存储单元。指向卷的读取和写入可映射至对构成的卷程度的对应的读取和写入中。在一些实施方案中,卷的大小可通过从卷末端添加或移除卷程度来改变。
[0060]区段:区段为分配至单个存储节点的耐久性受限的存储单元。更具体地,区段为具体固定大小的数据字节范围提供有限的最大努力耐久性(例如,为存储节点的持久的、但非冗余的单个故障点)。在一些情况下,这个数据可为用户可寻址数据的镜像,或在各种实施方案中,它可为其他数据,如卷元数据或可擦除的编码比特。给定区段可恰好依存在一个存储节点上。在存储节点内,多个区段可依存在每个SSD上,并且每个区段可被限制于一个SSD(例如,区段可能不横跨多个SSD)。在一些实施方案中,可能不需要区段来占据SSD上的连续区域;宁可在每个SSD中存在描述由每个区段拥有的区域的分配映射。如以上指出的,保护组可包括在多个存储节点上散布的多个区段。在一些实施方案中,区段可提供用于固定大小(其中大小在创建时被限定)的连续字节范围的LSN类型的读取/写入接口。在一些实施方案中,每个区段可通过区段UUID(例如,区段的通用唯一识别符)来识别。
[0061]存储页面:存储页面为通常具有固定大小的存储器块。在一些实施方案中,每个页面为具有由操作系统限定的大小的存储器块(例如,虚拟存储器、磁盘、或其他物理存储器的),并且在本文中也可被称为术语“数据块”。更具体地,存储页面可为一组连续扇区。它可用作SSD中的分配单元,以及日志页面中对于其存在标头和元数据的单元。在一些实施方案中,以及在本文描述的数据库系统的情况下,术语“页面”或“存储页面”可指具有由数据库配置限定的大小的类似块,所述大小通常可为2的倍数,如4096、8192、16384或32768字Tl O
[0062]日志页面:日志页面为用于存储日志记录(例如,重做日志记录或撤销日志记录)的一种类型的存储页面。在一些实施方案中,日志页面在大小上可等于存储页面。每个日志页面可包括标头,所述标头包含关于那个日志页面的元数据(例如,识别它属于的区段的元数据)。注意日志页面为组织单元,并且可能不必须为包括在写入操作中的数据单元。例如,在一些实施方案中,在正常向前处理期间,写入操作可一次一个扇区地写入至日志尾部。
[0063]日志记录:日志记录(例如,日志页面的单独元件)可具有若干不同的类别。例如,由存储系统的用户/客户端/应用程序创建和理解的用户
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1