事务定序的制作方法_3

文档序号:9635167阅读:来源:国知局
问分布式数据库优化的存储服务220,如分布 式数据库优化的存储服务220与数据库服务210之间(例如,直接经由实施这些服务的系 统之间的API)的实线所示。在此类实施方案中,代表客户端250存储数据库表中使用分布 式数据库优化的存储服务220可以对于这些客户端是透明的。在其他一些实施方案中,分 布式数据库优化的存储服务220可以通过Web服务平台200展示给客户端250以提供除依 赖于数据库管理的数据库服务210的那些应用以外的应用的数据库表或其他信息的存储。 这在图2中通过Web服务平台200与分布式数据库优化的存储服务220之间的虚线图示。 在此类实施方案中,分布式数据库优化的存储服务220的客户端可以通过网络260 (例如, 通过因特网)访问分布式数据库优化的存储服务220。在一些实施方案中,虚拟计算服务 230可以被配置来从分布式数据库优化的存储服务220接收存储服务(例如直接通过虚拟 计算服务230与分布式数据库优化的存储服务220之间的API)以代表客户端250存储在 执行计算服务230时使用的对象。这在图2中通过虚拟计算服务230与分布式数据库优化 的存储服务220之间的虚线图示。在一些情况中,平台200的记账和/或凭证核实服务对 于如管理客户端的内部客户端或同一个企业内的服务组件之间可能不是必需的。
[0040] 注意,在各种实施方案中,可以由数据库服务210和/或分布式数据库优化的存储 服务220来实施不同的存储策略。此类存储策略的实例可以包括持久性策略(例如,指示 将存储的数据库表(或其数据页)的实例的数量以及将存储它们的不同节点的数量)和/ 或负载平衡策略(可以跨不同节点、卷和/或磁盘分布数据库表或其数据页以尝试均衡请 求通信量)。此外,可以由这些服务的各种服务将不同的存储策略应用于不同类型的存储 项。例如,在一些实施方案中,分布式数据库优化的存储服务220可以实施比数据页的持久 性更高的重做日志记录的持久性。
[0041] 图3是图示根据一个实施方案的包括数据库引擎和单独的分布式数据库存储服 务的数据库系统的各种组件的框图。在此实例中,数据库系统300包括若干数据库表中的 每一个的相应数据库引擎头节点320和分布式数据库优化的存储服务310 (对于数据库系 统的客户端,如数据库客户端350a-350n所示,可以是或可以不是可见的)。如此实例中图 示的,数据库客户端350a-350n的其中一个或多个数据库客户端可以通过网络360访问数 据库头节点320 (例如,头节点320a、头节点320b或头节点320c,每一个头节点是相应数据 库实例的组件)(例如,这些组件可以是可网络寻址的且可以对于数据库客户端350a-350n 是可访问的)。但是,在不同的实施方案中,数据库系统可以采用分布式数据库优化的存储 服务310来代表数据库客户端350a-350n存储一个或多个数据库表的数据页(以及重做日 志记录和/或其他与之关联的元数据),以及执行如本文描述的数据库系统的其他功能,可 以是或可以不是可网络寻址的以及对于存储客户端350a-350n是可访问的或不是可访问 的。例如,在一些实施方案中,分布式数据库优化的存储服务310可以采用对于存储客户端 350a-350n不可见的方式执行各种存储、访问、更改记录、恢复、日志记录操作和/或空间管 理操作。
[0042] 正如先前提到的,每一个数据库实例可以包括单个数据库引擎头节点320,数据库 引擎头节点320从各种客户端程序(例如,应用)和/或订户(用户)接收请求(例如,事 务请求等),然后解析它们、优化它们并设计执行计划来执行关联的数据库操作。在图3所 示的实例中,数据库引擎头节点320a的查询解析、优化和执行组件305可以对从数据库客 户端350a接收并靶向以数据库引擎头节点320a为其组件的数据库实例的查询执行这些功 能。在一些实施方案中,查询解析、优化和执行组件305可以向数据库客户端350a返回查询 响应,该查询响应可以视情况包括写确认、请求的数据页(或其多个部分)、出错消息和/或 其他响应。如本实例所示,数据引擎头节点320a还可以包括客户端存储服务驱动程序325, 客户端存储服务驱动程序325可以将读请求和/或重做日志记录(例如来自写)路由到分 布式数据库优化的存储服务310内的各种存储节点,从分布式数据库优化的存储服务310 接收写确认,从分布式数据库优化的存储服务310接收请求的数据页,和/或将数据页、出 错消息或其他响应返回到查询解析、优化和执行组件305 (查询解析、优化和执行组件305 进而可以将它们返回到数据库客户端350a)。
[0043] 在此实例中,数据库引擎头节点320a包括数据页缓存335,最近访问的数据页可 以临时性地保存在该数据页缓存335中。如图3所示,数据库引擎头节点320a还可以包括 事务和一致性管理组件330,事务和一致性管理组件330可以负责提供数据库引擎头节点 320a为其组件的数据库实例中的事务性和一致性。例如,此组件可以负责确保该数据库实 例以及指向该数据库实例的事务的原子性、一致性和隔离性属性。例如,数据库服务的数据 库引擎头节点可以接收执行读数据库服务存储的记录的读请求。另一个数据库引擎头节点 可能接收到对记录执行事务(例如,写等)的事务请求。接收到读请求的数据库引擎头节点 的事务和一致性管理组件330则可以基于确定与读关联的时间指示在与事务关联的第二 时间指示的阈值内而检测到潜在的读异常(例如,不可重复读(fuzzyread)、读偏斜(read skew)等)。响应检测到潜在的读异常,可以在该事务请求指定的事务之后执行读,而无论 第一时间指示是否指示比第二时间指示早的时点。在一些实例中,可以重试读,以使对于重 试不会出现潜在的读异常。
[0044] 如图3所示,数据库引擎头节点320a还可以包括事务日志340和撤销日志345,事 务日志340和撤销日志345可以被事务和一致性管理组件330用于跟踪各种事务的状态以 及回滚未落实的事务的任何本地缓存的结果。
[0045] 注意,图3所示的其他数据库引擎头节点320中的每一个(例如,320b和320c)可 以包括类似的组件,并且可以对数据库客户端350a-350n中一个或多个数据库客户端接收 的且指向这些数据库引擎头节点是其组件的相应数据库实例的查询和/或其他事务执行 类似的功能。例如,在两个不同数据库引擎头节点正在阈值时间量内访问(例如,一个读、 一个写)相同的数据的情形中可以实施所公开的事务定序技术,如本文描述。
[0046]图4中的框图图示分布式数据库优化的存储系统的一个实施方案。在此实例中, 数据库系统400包括分布式数据库优化的存储系统410,分布式数据库优化的存储系统410 通过互连460与数据库引擎头节点420通信。与图3所示的实例一样,数据库引擎头节点 420可以包括客户端存储服务驱动程序425。在此实例中,分布式数据库优化的存储系统 410包括多个存储系统服务器节点(包括示出为430、440和450的存储系统服务器节点), 每一个存储系统服务器节点包括用于数据页的存储和其存储的片段的重做日志,以及被配 置来执行各种片段管理功能的硬件和/或软件。例如,每一个存储系统服务器节点可以包 括被配置来执行如下操作中任一个或全部的至少部分的硬件和/或软件:复制(本地复制, 例如复制在存储节点内)、合并重做日志以生成数据页、日志管理(例如,操作日志记录)、 崩溃恢复和/或空间管理(例如,片段的空间管理)。每一个存储系统服务器节点还可以具 有多个连接的存储装置(例如,SSD),可以代表客户端(例如,用户、客户端应用和/或服务 器服务订户)将数据块存储在这些连接的存储装置上。
[0047]在图4所示的实例中,存储系统服务器节点430包括数据页433、片段重做日志 435、片段管理功能437和连接的SSD471-478。还要注意,标记"SSD"可以是指或可以不是 指固态硬盘驱动器,但是可以更广义地是指本地块存储卷,而无论其底层硬件。相似地,存 储系统服务器节点440包括数据页443、片段重做日志445、片段管理功能447以及连接的 SSD481-488 ;以及存储系统服务器节点450包括数据页453、片段重做日志455、片段管理 功能457和连接的SSD491-498。
[0048] 在一些实施方案中,分布式数据库优化的存储系统中的每一个存储系统服务器节 点可以实施节点服务器的操作系统上运行的管理与数据库引擎头节点的通信以例如接收 重做日志、回送数据页等的一组进程。在一些实施方案中,可以将写入到分布式数据库优化 的存储系统的所有数据块备份到长期和/或归档存储(例如,远程键值持久性备份存储系 统)中。
[0049]图5是图示根据一个实施方案的在数据库系统中使用单独的分布式数据库优化 的存储系统的框图。在此实例中,一个或多个客户端进程510可以将数据存储到包括数据 库引擎520和分布式数据库优化的存储系统530的数据库系统维护的一个或多个数据库 表中。在图5所示的实例中,数据库引擎520包括数据库层级组件560和客户端驱动程序 540 (客户端驱动程序540用作分布式数据库优化的存储系统530与数据库层级组件560 之间的接口)。在一些实施方案中,数据库层级组件560可以执行如图3的查询解析、优化 和执行组件305和事务和一致性管理组件330 (例如,事务定序)执行的那些功能之类的功 能,和/或可以存储数据页、事务日志和/或撤销日志(如图3的数据页缓冲335、事务日志 340和撤销日志345存储的那些)。
[0050] 在此实例中,一个或多个客户端进程510可以将数据库查询请求515 (其可包括以 存储节点535a-535n的一个或多个存储节点上存储的数据为目标的读和/或写和/或其他 事务请求)发送到数据库层级组件560,并且可以从数据库层级组件560接收数据库查询 响应517 (例如,包括写确认和/或请求的数据的响应)。可以解析并优化包括写数据页的 请求的每一个数据库查询请求515以生成一个或多个写记录请求541,可以将一个或多个 写记录请求541发送到客户端驱动程序540以便后续路由到分布式数据库优化的存储系统 530。在此实例中,客户端驱动程序540可以生成与每一个写记录请求541对应的一个或多 个重做日志记录531,并且可以将其发送到分布式数据库优化的存储系统530的存储节点 535中特定一个存储节点。分布式数据库优化的存储系统530可以将每一个重做日志记录 531的对应写确认532返回到数据库引擎520 (确切地来说,返回到客户端驱动程序540)。 客户端驱动程序540可以将这些写确认传递到数据库层级组件560 (作为写响应542),数据 库层级组件560则可以将对应的响应(例如,写确认)作为数据库查询响应517之一发送 到一个或多个客户端进程510。
[0051] 在此实例中,可以解析并优化包括读数据页的请求的每一个数据库查询请求515 以生成一个或多个读记录请求543,可以将一个或多个读记录请求543发送到客户端驱动 程序540以便后续路由到分布式数据库优化的存储系统530。在此实例中,客户端驱动程序 540可以将这些请求发送到分布式数据库优化的存储系统530的存储节点535中特定一个 存储节点,以及分布式数据库优化的存储系统530可以将所请求的数据页533返回到数据 库引擎520 (确切地来说,返回到客户端驱动程序540)。客户端驱动程序540可以作为返回 数据记录544将返回的数据页发送到数据库层级组件560,以及数据库层级组件560则可以 将这些数据页作为数据库查询响应517发送到一个或多个客户端进程510。
[0052] 在一些实施方案中,可以将各种出错和/或数据丢失消息534从分布式数据库优 化的存储系统530发送到数据库引擎520 (确切地来说,发送到客户端驱动程序540)。可以 将这些消息作为出错和/或丢失报告消息545从客户端驱动程序540传递到数据库层级组 件560,然后连同(或替代)数据库查询响应517传递到一个或多个客户端进程510。
[0053] 在一些实施方案中,分布式数据库优化的存储系统530的API531-534和客户端驱 动程序540的API541-545可以将分布式数据库优化的存储系统530的功能性展示给数据 库引擎520,如同数据库引擎520是分布式数据库优化的存储系统530的客户端一样。例如, 数据库引擎520 (通过客户端驱动程序540)可以通过API写重做日志记录或请求数据页以 执行(或协助执行)数据库引擎520和分布式数据库优化存储系统530的组合实施的数据 库系统的各种操作(例如,存储、访问、更改记录、恢复和/或空间管理操作)。正如图5所 示,分布式数据库优化的存储系统530可以将数据块存储在存储节点535a-535n上,存储节 点535a-535n中的每一个可以具有多个连接的SSD。在一些实施方案中,分布式数据库优化 的
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1