本发明专利技术涉及带有多版本化的数据库系统的分布式事务管理。本发明专利技术涉及确保全局或分布式数据库事务中参与节点之间的同步的分布式事务管理技术。该技术利用使用各个参与节点处的本地时钟的提交协议。全局事务中的参与者被配置为利用相同的提交时间戳和逻辑读时间,并且可以提前它们各自的本地时钟以建立该同步。在一个实施例中,分布式提交利用二阶段提交的修改版本,该二阶段提交的修改版本包括从参与者收集提交时间戳投票的额外阶段。另外,心跳机制可用于建立节点之间的松散同步。在另一个实施例中,除了事务结果本身,节点通过返回生成事务结果时所涉及的节点的列表以及由这些节点所使用的访问类型来响应远程事务请求。
【技术实现步骤摘要】
本专利技术涉及数据库系统中的事务管理,并且更具体地,涉及对使用多版本化的数据库系统中的分布式事务的处理。
技术介绍
数据库系统可以实现各种机制以便确保在数据库系统上执行的事务产生正确的结果。具体而言,数据库系统可以实现并发控制机制以相互隔离多个并发执行的事务,和/ 或防止这些事务彼此干扰。然而,尽管并发控制机制对正确性是有用的,但它们增加了开销并且负面地影响了系统性能(例如,吞吐量和响应时间)。一类并发控制机制被设计用于带有多版本化的系统,即,数据库系统可以存储一记录的多个版本,不同的版本具有不重叠的有效时间间隔。数据库系统可以是分布式数据库系统,其中数据库分布于多个不同的计算机或节点。在分布式数据库中,某些事务可以是本地或全局的。本地事务限于单个节点,而全局事务涉及多个节点。用户通常不知道事务是本地的还是全局的,因为事务是由数据库系统“在幕后”处理的。因此,期望分布式数据库系统实现完整、高效并且可伸缩的用于处理本地和全局事务两者的机制。例如,由分布式数据库系统执行的本地事务应当产生最小的开销,或者相比于与在本地数据库系统中执行的事务相关联的开销,不会产生附加的开销。作为另一个示例,所支持的用于本地事务的基本上全部隔离级别也应当被支持来用于全局事务。 作为又一个示例,由分布式数据库系统执行的事务不应需要被频繁地访问的全局节点,并且特别是全局时钟,以避免与使用全局节点和/或时钟相关联的性能和可伸缩性损失。作为又一个示例,由分布式数据库系统执行的事务不应导致分布式死锁,因为检测这样的死锁是困难并且昂贵的。常规上,已经提出了用于分布式数据库系统中的分布式事务管理的各种解决方案。然而,所提出的用于带有多版本化的分布式数据库的解决方案中没有一个能解决全部上述需要,并且期望这样的解决方案显著地改善分布式数据库系统的性能。当今分布式事务管理技术的上述缺点仅旨在提供常规系统的某些问题的概览,并且不旨在是穷尽性的。常规系统的其他问题以及此处描述的各非限制性实施例的对应益处可以在审阅以下描述后变得更显而易见。
技术实现思路
此处提供了简化的
技术实现思路
以帮助能够对以下更详细的描述和附图中的示例性、 非限制性实施例的各方面有基本或大体的理解。然而,本
技术实现思路
并不旨在作为详尽的或穷尽的概观。相反,本
技术实现思路
的唯一目的是以简化的形式来提出与一些示例性非限制性实施例相关的一些概念,作为以下各实施例的更为详细的描述的序言。此处提供的各实施例针对实现多版本化的数据库系统,例如,其中数据库可包含同一记录的带有不重叠的有效时间间隔的多个版本。事务指定其逻辑读时间,该逻辑读时间确定对该事务可见的记录的版本。读时间和有效时间间隔基于实现为例如单调递增计数器的逻辑时钟。此外,此处的实施例可利于带有多版本化的数据库系统的一致性和准确性。例如, 令Tl是在若干节点具有已修改数据的全局事务。在带有多版本化并且没有全局时钟的分布式系统中,在保证另一个全局事务T2获得在事务上一致的视图时,例如T2或者随处看到 Tl的更新或者看不到Tl的更新,产生问题。因此,如此处各实施例中描述的数据库系统中使用的提交协议确保在事务Tl接触的全部节点上使用相同的提交时间戳。因此,假如随后的事务T2在全部节点上使用相同的逻辑读时间,那么T2可被配置为看到由Tl生成的更新,在系统内要么随处可见要么看不到。在其他实施例中,采用了各种优化和/或其他技术。这些包括,例如,(1)使用通过批处理与参与者的通信来减少提交处理的开销的全局事务协调器,(2)通过将信息承载到由全局事务协调器发送的消息上来保持本地时钟基本同步,以及C3)通过将信息承载到由全局事务协调器发送的消息上来防止节点处过早的垃圾收集。在一个或多个实施例中,分布式事务管理是通过便于与全局事务的参与者相关联的本地时钟之间的同步来实现的。在一个非限制性实现中,参与全局事务的各个数据库节点就将要用于该事务的提交时间戳达成协定。这样的协定是单独地或在事务协调器的辅助下达成的。此外,参与全局事务的一个或多个节点可以根据达成协定的提交时间戳提前其各自的本地时钟。在一实施例中,提交分布式事务是经由二阶段提交QPC)的修改版本来实现的, 在该二阶段提交的修改版本中,数据库系统中的此处被称为事务协调器的指定节点从参与事务的节点收集提交时间戳投票。提交时间戳投票在给定的参与节点处基于该参与节点的本地时钟而生成。随后确定全局提交时间戳,例如基于所收集的投票来计算,并且全局提交时间戳随后被提供给参与节点以用于对应的分布式提交。为了符合全局提交时间戳,一个或多个参与节点可以提前它们的本地时钟。此处描述的系统和方法还包括分布式数据库系统中的节点可以独立于全局事务同步其本地时钟的规定。作为非限制性的示例,指定的数据库节点便于传递“心跳”信息。基于该信息或任何其他合适的信息,各个数据库节点调整其本地时钟。以规则或不规则的间隔传送心跳信息或其他同步信息,从而确保各个数据库节点处的本地时钟保持基本同步。此处描述的其他系统和方法包括数据库节点返回对来自给定节点的请求的响应以及生成该请求的结果所涉及的节点的身份的机制。以此方式,可使全局事务的根节点知道该事务所涉及的节点,而无需来自全局实体的干预。此外,由生成事务的结果所涉及的各个节点执行的访问类型(例如读或写)同该各个节点的身份一起被返回,从而利于作出请求的节点处的更大深度的信息。这些和其他实施例在下面将更详细地描述。附图说明各非限制性实施例参考附图来进一步描述,附图中图1是示例性全局事务处理的说明性概览;图2是分布式数据库系统中示例性事务启动的说明性概览;图3是分布式数据库系统中全局事务的示例性协调的说明性概览;图4是示出根据一个或多个实施例的分布式事务管理机制的示例性功能的框图;图5是示出用于分布式数据库系统中事务管理和节点同步的示例性、非限制性过程的流程图;图6是示出用于协调数据库系统中关于分布式事务的一组节点的示例性、非限制性过程的另一个流程图;图7是示出在分布式事务的上下文中便于与数据库系统的协调和同步的示例性、 非限制性过程的又一个流程图;图8是表示其中可实现此处所描述的各实施例的示例性、非限制性联网环境的框图;以及图9是表示其中可实现此处所描述的各实施例的一个或多个方面的示例性、非限制性计算系统或操作环境的框图。具体实施例方式概览作为介绍,数据库系统可以通过诸如但不限于数据创建和维护、信息检索、经由搜索或其他机制的数据访问等操作来便于对各个相关联的数据项的管理。在某些实施例中, 数据库系统可以提供各种机制以确保相关联的数据的可恢复性和完整性。例如,数据库系统可以管理在系统内执行的(例如,与由数据库系统执行的各个事务相关联的)操作从而确保这样的操作产生正确的结果。作为示例而非限制,数据库系统可以包括并发控制机制以确保由数据库系统并发地执行的各个事务不会彼此干扰。此外,数据库系统可包括各种其他机制以确保正确的操作。作为非限制性的示例,数据库系统可以利用确保与系统相关联的数据的一致性、完整性、和/或可恢复性的各种机制。在一个示例中,数据库系统可用于管理存储在至少一个数据存储中的信息。作为示例而非限制,可设计并实现存储器内数据库来管理存储在对应的计算机存储器或任何其他合适的非瞬态计算机存储介质中的数本文档来自技高网...
【技术保护点】
【技术特征摘要】
...
【专利技术属性】
技术研发人员:PA·拉森,M·茨维林,C·迪亚科努,
申请(专利权)人:微软公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。