首页> 中国专利> 用于分布式数据库的事务保存点管理装置及方法

用于分布式数据库的事务保存点管理装置及方法

摘要

本发明提出了事务保存点管理装置及方法,该方法包括:基于来自用户终端的事务启动请求而创建事务,所述事务包含多个操作指令,并随之访问多个数据库中的至少一个以便按照时间序列顺次执行所述多个操作指令;如果所述多个操作指令包含全局保存点建立指令,则创建并维护全局保存点队列以协调所述多个数据库来实施针对全局保存点的操作,并基于全局保存点触发所述多个数据库中涉及本次事务的数据库建立本地保存点并记录每个本地保存点与全局保存点的关联关系。本发明所公开的装置及方法能够用于分布式数据库的事务保存点管理。

著录项

  • 公开/公告号CN107545024A

    专利类型发明专利

  • 公开/公告日2018-01-05

    原文格式PDF

  • 申请/专利权人 中国银联股份有限公司;

    申请/专利号CN201710437814.5

  • 申请日2017-06-12

  • 分类号

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人方世栋

  • 地址 200135 上海市浦东新区含笑路36号银联大厦

  • 入库时间 2023-06-19 04:08:06

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-10-25

    授权

    授权

  • 2018-01-30

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20170612

    实质审查的生效

  • 2018-01-05

    公开

    公开

说明书

技术领域

本发明涉及数据库管理装置及方法,更具体地,涉及用于分布式数据库的事务保存点管理装置及方法。

背景技术

目前,随着计算机和网络应用的日益广泛以及不同领域的业务种类的日益丰富,基于用户请求而实施针对分布式数据库的操作变得越来越重要。特别地,对事务(其由逻辑上的一组针对数据库的操作构成,该组操作基于时间序列,并且仅在该组操作中的每个操作均执行成功的情况下实施事务提交操作,即完成并存储对目标数据库所有实际动作,否则针对该事务执行回滚操作,以将数据库恢复至该事务实施之前的初始状态,即对目标数据库不产生任何实际影响)及事务保存点(用于保存某个时间点处的事务状态,即如果将事务回滚至该保存点,则与该保存点相关联的时间点之后的操作被撤消)进行管理以确保逻辑关联操作的同时完成尤其受到关注。

在现有的技术方案中,典型地仅能针对集中式数据库实施针对事务及其保存点的管理操作,而缺乏针对分布式数据库的有效的事务运行和管理机制,从而导致难于确保针对分布式数据库系统的逻辑关联操作的同时完成。

由此,存在如下需求:提供用于分布式数据库的事务保存点管理装置及方法。

发明内容

为了解决上述现有技术方案所存在的问题,本发明提出了用于分布式数据库的事务保存点管理装置及方法。

本发明的目的是通过以下技术方案实现的:

一种事务保存点管理装置,所述事务保存点管理装置至少包括控制单元,所述控制单元被配置为基于接收到的来自用户终端的事务启动请求而创建事务,所述事务包含多个操作指令,并随之访问多个数据库中的至少一个以便按照时间序列顺次执行所述多个操作指令,其中,如果所述多个操作指令包含全局保存点建立指令,则所述控制单元进一步被配置为创建并维护全局保存点队列以协调所述多个数据库来实施针对全局保存点的操作,其中,所述控制单元基于全局保存点触发所述多个数据库中涉及本次事务的数据库建立本地保存点并记录每个本地保存点与全局保存点的关联关系。

在上面所公开的方案中,优选地,所述事务保存点管理装置进一步包括保存点建立单元,所述保存点建立单元被配置为基于所述控制单元的驱动而执行全局保存点建立操作,所述全局保存点建立操作包括:创建全局保存点并将其记录在所述全局保存点队列中,随之将该全局保存点设置为当前最新全局保存点;查看所有涉及本次事务的数据库的本地保存点的状态,如果本地保存点处于稳定状态,则将该处于稳定状态的本地保存点与所述全局保存点相关联,否则,通知该数据库创建本地保存点,并将新创建的本地保存点与所述全局保存点相关联。

在上面所公开的方案中,优选地,所述事务保存点管理装置进一步包括保存点回滚单元,所述保存点回滚单元被配置为基于所述控制单元的驱动而执行全局保存点回滚操作,所述全局保存点回滚操作包括:如果本次事务所涉及的数据库的本地保存点处于稳定状态且该本地保存点是要回滚至其的目的全局保存点所关联的本地保存点,则不触发该数据库执行本地保存点回滚操作,并且仅删除该全局保存点之后的所有全局保存点与该本地保存点的关联关系,否则,触发该数据库执行本地保存点回滚操作以便回滚至所述目的全局保存点所关联的本地保存点,同时删除该全局保存点之后的所有全局保存点与该本地保存点的关联关系并且删除在该全局保存点的时间序列之后的所有全局保存点。

在上面所公开的方案中,优选地,所述事务保存点管理装置进一步包括保存点释放单元,所述保存点释放单元被配置为基于所述控制单元的驱动而执行全局保存点释放操作,所述全局保存点释放操作包括:删除待删除的全局保存点与所涉及的数据库的本地保存点的关联关系,并且在所述全局保存点队列中删除该全局保存点;查看所涉及的数据库中的本地保存点是否与其他全局保存点存在关联关系,如果该本地保存点不与其他全局保存点存在关联关系,则触发所涉及的数据库执行本地保存点释放操作。

在上面所公开的方案中,优选地,当首次访问涉及本次事务的数据库以执行相关的操作指令时,该数据库首先建立子事务,并随之执行所述相关的操作指令。

在上面所公开的方案中,优选地,所述事务保存点管理装置进一步包括保存点重置单元,所述保存点重置单元被配置为基于所述控制单元的驱动而执行全局保存点重置操作,所述全局保存点重置操作包括:将待重置的全局保存点的时间序列的位置设置为最新;如果本次事务所涉及的数据库的本地保存点当前处于稳定状态,则将与该全局保存点相关联的本地保存点重置为当前处于稳定状态下的本地保存点;如果与该全局保存点相关联的本地保存点不与其他全局保存点相关联,且该数据库中不存于处于稳定状态的本地保存点或者处于稳定状态的本地保存点不与该全局保存点相关联,则执行本地保存点重置操作。

在上面所公开的方案中,优选地,所述控制单元进一步被配置为触发所涉及的数据库释放不与任何全局保存点相关联的本地保存点。

在上面所公开的方案中,优选地,所述控制单元进一步被配置为当新的数据库需要被加入以执行本次事务时,如果已经存在全局保存点,则触发该新的数据库建立至少一个本地保存点,并将该本地保存点与全局保存点相关联。

本发明的目的也可以通过以下技术方案实现:

一种事务保存点管理方法,所述事务保存点管理方法包括下列步骤:基于来自用户终端的事务启动请求而创建事务,所述事务包含多个操作指令,并随之访问多个数据库中的至少一个以便按照时间序列顺次执行所述多个操作指令;如果所述多个操作指令包含全局保存点建立指令,则创建并维护全局保存点队列以协调所述多个数据库来实施针对全局保存点的操作,并基于全局保存点触发所述多个数据库中涉及本次事务的数据库建立本地保存点并记录每个本地保存点与全局保存点的关联关系。

本发明所公开的用于分布式数据库的事务保存点管理装置及方法具有以下优点:(1)能够协调多个分布式数据库实施保存点管理和维护操作;(2)由于能够减少不必要的本地保存点创建操作,故显著地提高了系统性能。

附图说明

结合附图,本发明的技术特征以及优点将会被本领域技术人员更好地理解,其中:

图1是根据本发明的实施例的事务保存点管理装置的示意性结构图;

图2是根据本发明的实施例的事务保存点管理方法的流程图;

图3是根据本发明的实施例的一个事务保存点管理操作的示意性流程图;

图4是根据本发明的实施例的另一事务保存点管理操作的示意性流程图;

图5是根据本发明的实施例的另一事务保存点管理操作的示意性流程图;

图6是根据本发明的实施例的另一事务保存点管理操作的示意性流程图;

图7是根据本发明的实施例的另一事务保存点管理操作的示意性流程图。

具体实施方式

图1是根据本发明的实施例的事务保存点管理装置的示意性结构图。如图1所示,本发明所公开的事务保存点管理装置至少包括控制单元5,所述控制单元5被配置为基于接收到的来自用户终端的事务启动请求而创建事务,所述事务包含多个操作指令(例如多条SQL语句),并随之访问多个数据库中的至少一个以便按照时间序列顺次执行所述多个操作指令,其中,如果所述多个操作指令包含全局保存点建立指令,则所述控制单元5进一步被配置为创建并维护全局保存点队列以协调所述多个数据库来实施针对全局保存点的操作,其中,所述控制单元5基于全局保存点触发所述多个数据库中涉及本次事务的数据库建立本地保存点并记录每个本地保存点与全局保存点的关联关系。

示例性地,在本发明所公开的事务保存点管理装置的一个实施例中,所述事务保存点管理装置进一步包括保存点建立单元1,所述保存点建立单元1被配置为基于所述控制单元5的驱动而执行全局保存点建立操作,所述全局保存点建立操作包括:创建全局保存点并将其记录在所述全局保存点队列中,随之将该全局保存点设置为当前最新全局保存点;查看所有涉及本次事务的数据库的本地保存点的状态,如果本地保存点处于稳定状态,则将该处于稳定状态的本地保存点与所述全局保存点相关联,否则,通知该数据库创建本地保存点,并将新创建的本地保存点与所述全局保存点相关联。其中,如果某个涉及的数据库处于如下状态:执行回滚至某个本地保存点的操作不会对该数据库产生影响,则称该数据库的本地保存点处于稳定状态。该状态一般在如下两个场景下产生:(1)涉及的数据库创建本地保存点后,不进行影响本地事务的操作(例如写数据),则其持续处于本地保存点稳定状态,并且对应的本地保存点被用作最近创建的本地保存点,相应的,一旦进行了影响本地事务的操作(例如写数据),则该数据库的本地保存点不再处于稳定状态;(2)涉及的数据库回滚至某个本地保存点后,不进行影响本地事务的操作(例如写数据),则该数据库持续处于本地保存点稳定状态,且其对应的本地保存点被用作最近创建的本地保存点,相应的,一旦进行了影响本地事务的操作(例如写数据),则其不再处于本地保存点稳定状态。

示例性地,在本发明所公开的事务保存点管理装置的一个实施例中,所述事务保存点管理装置进一步包括保存点回滚单元2,所述保存点回滚单元2被配置为基于所述控制单元5的驱动而执行全局保存点回滚操作,所述全局保存点回滚操作包括:如果本次事务所涉及的数据库的本地保存点处于稳定状态且该本地保存点是要回滚至其的目的全局保存点所关联的本地保存点,则不触发该数据库执行本地保存点回滚操作,并且仅删除该全局保存点之后的所有全局保存点与该本地保存点的关联关系,(由此减少了不必须要的本地回滚操作),否则,触发该数据库执行本地保存点回滚操作以便回滚至所述目的全局保存点所关联的本地保存点,同时删除该全局保存点之后的所有全局保存点与该本地保存点的关联关系并且删除在该全局保存点的时间序列之后的所有全局保存点。

示例性地,在本发明所公开的事务保存点管理装置的一个实施例中,所述事务保存点管理装置进一步包括保存点释放单元3,所述保存点释放单元3被配置为基于所述控制单元5的驱动而执行全局保存点释放操作,所述全局保存点释放操作包括:删除待删除的全局保存点与所涉及的数据库的本地保存点的关联关系,并且在所述全局保存点队列中删除该全局保存点;查看所涉及的数据库中的本地保存点是否与其他全局保存点存在关联关系,如果该本地保存点不与其他全局保存点存在关联关系,则触发所涉及的数据库执行本地保存点释放操作。

示例性地,在本发明所公开的事务保存点管理装置的一个实施例中,当首次访问涉及本次事务的数据库以执行相关的操作指令时,该数据库首先建立子事务,并随之执行所述相关的操作指令。

示例性地,在本发明所公开的事务保存点管理装置的一个实施例中,所述事务保存点管理装置进一步包括保存点重置单元4,所述保存点重置单元4被配置为基于所述控制单元5的驱动而执行全局保存点重置操作,所述全局保存点重置(即覆盖)操作包括:将待重置的全局保存点的时间序列的位置设置为最新;如果本次事务所涉及的数据库的本地保存点当前处于稳定状态,则将与该全局保存点相关联的本地保存点重置为当前处于稳定状态下的本地保存点;如果与该全局保存点相关联的本地保存点不与其他全局保存点相关联,且该数据库中不存于处于稳定状态的本地保存点或者处于稳定状态的本地保存点不与该全局保存点相关联,则执行本地保存点重置操作(其不改变既有的全局保存点与本地保存点的关联关系)。

示例性地,在本发明所公开的事务保存点管理装置的一个实施例中,所述控制单元5进一步被配置为触发所涉及的数据库释放不与任何全局保存点相关联的本地保存点。

示例性地,在本发明所公开的事务保存点管理装置的一个实施例中,所述控制单元5进一步被配置为当新的数据库需要被加入以执行本次事务时,如果已经存在全局保存点,则触发该新的数据库建立至少一个本地保存点,并将该本地保存点与全局保存点相关联。其中,由于多数数据库会记录本地事务的起点,即将本地事务的起点作为隐式的本地保存点,故可以将全局保存点与本地事务的起点相关联,由此可以减少建立本地保存点的操作。可替代地,也可以使用显式地建立本地保存点的方式。

由上可见,本发明所公开的事务保存点管理装置具有下列优点:(1)能够协调多个分布式数据库实施保存点管理和维护操作;(2)由于能够减少不必要的本地保存点创建操作,故显著地提高了系统性能。

图2是根据本发明的实施例的事务保存点管理方法的流程图。如图2所示,本发明所公开的事务保存点管理方法包括下列步骤:基于来自用户终端的事务启动请求而创建事务,所述事务包含多个操作指令(例如多条SQL语句),并随之访问多个数据库中的至少一个以便按照时间序列顺次执行所述多个操作指令;如果所述多个操作指令包含全局保存点建立指令,则创建并维护全局保存点队列以协调所述多个数据库来实施针对全局保存点的操作,并基于全局保存点触发所述多个数据库中涉及本次事务的数据库建立本地保存点并记录每个本地保存点与全局保存点的关联关系。

示例性地,在本发明所公开的事务保存点管理方法的一个实施例中,所述方法进一步包括:基于来自用户终端的请求而执行全局保存点建立操作,所述全局保存点建立操作包括:创建全局保存点并将其记录在所述全局保存点队列中,随之将该全局保存点设置为当前最新全局保存点;查看所有涉及本次事务的数据库的本地保存点的状态,如果本地保存点处于稳定状态,则将该处于稳定状态的本地保存点与所述全局保存点相关联,否则,通知该数据库创建本地保存点,并将新创建的本地保存点与所述全局保存点相关联。其中,如果某个涉及的数据库处于如下状态:执行回滚至某个本地保存点的操作不会对该数据库产生影响,则称该数据库的本地保存点处于稳定状态。该状态一般在如下两个场景下产生:(1)涉及的数据库创建本地保存点后,不进行影响本地事务的操作(例如写数据),则其持续处于本地保存点稳定状态,并且对应的本地保存点被用作最近创建的本地保存点,相应的,一旦进行了影响本地事务的操作(例如写数据),则该数据库的本地保存点不再处于稳定状态;(2)涉及的数据库回滚至某个本地保存点后,不进行影响本地事务的操作(例如写数据),则该数据库持续处于本地保存点稳定状态,且其对应的本地保存点被用作最近创建的本地保存点,相应的,一旦进行了影响本地事务的操作(例如写数据),则其不再处于本地保存点稳定状态。

示例性地,在本发明所公开的事务保存点管理方法的一个实施例中,所述方法进一步包括:基于来自用户终端的请求而执行全局保存点回滚操作,所述全局保存点回滚操作包括:如果本次事务所涉及的数据库的本地保存点处于稳定状态且该本地保存点是要回滚至其的目的全局保存点所关联的本地保存点,则不触发该数据库执行本地保存点回滚操作,并且仅删除该全局保存点之后的所有全局保存点与该本地保存点的关联关系,(由此减少了不必须要的本地回滚操作),否则,触发该数据库执行本地保存点回滚操作以便回滚至所述目的全局保存点所关联的本地保存点,同时删除该全局保存点之后的所有全局保存点与该本地保存点的关联关系并且删除在该全局保存点的时间序列之后的所有全局保存点。

示例性地,在本发明所公开的事务保存点管理方法的一个实施例中,所述方法进一步包括:基于来自用户终端的请求而执行全局保存点释放操作,所述全局保存点释放操作包括:删除待删除的全局保存点与所涉及的数据库的本地保存点的关联关系,并且在所述全局保存点队列中删除该全局保存点;查看所涉及的数据库中的本地保存点是否与其他全局保存点存在关联关系,如果该本地保存点不与其他全局保存点存在关联关系,则触发所涉及的数据库执行本地保存点释放操作。

示例性地,在本发明所公开的事务保存点管理方法的一个实施例中,当涉及本次事务的数据库首次被访问以执行相关的操作指令时,该数据库首先建立子事务,并随之执行所述相关的操作指令。

示例性地,在本发明所公开的事务保存点管理方法的一个实施例中,所述方法进一步包括:基于来自用户终端的请求而执行全局保存点重置操作,所述全局保存点重置(即覆盖)操作包括:将待重置的全局保存点的时间序列的位置设置为最新;如果本次事务所涉及的数据库的本地保存点当前处于稳定状态,则将与该全局保存点相关联的本地保存点重置为当前处于稳定状态下的本地保存点;如果与该全局保存点相关联的本地保存点不与其他全局保存点相关联,且该数据库中不存于处于稳定状态的本地保存点或者处于稳定状态的本地保存点不与该全局保存点相关联,则执行本地保存点重置操作(其不改变既有的全局保存点与本地保存点的关联关系)。

示例性地,在本发明所公开的事务保存点管理方法的一个实施例中,所述方法进一步包括:触发所涉及的数据库释放不与任何全局保存点相关联的本地保存点。

示例性地,在本发明所公开的事务保存点管理方法的一个实施例中,所述方法进一步包括:当新的数据库需要被加入以执行本次事务时,如果已经存在全局保存点,则触发该新的数据库建立至少一个本地保存点,并将该本地保存点与全局保存点相关联。其中,由于多数数据库会记录本地事务的起点,即将本地事务的起点作为隐式的本地保存点,故可以将全局保存点与本地事务的起点相关联,由此可以减少建立本地保存点的操作。可替代地,也可以使用显式地建立本地保存点的方式。

由上可见,本发明所公开的事务保存点管理方法具有下列优点:(1)能够协调多个分布式数据库实施保存点管理和维护操作;(2)由于能够减少不必要的本地保存点创建操作,故显著地提高了系统性能。

图3是根据本发明的实施例的一个事务保存点管理操作的示意性流程图。在图3所示出的实例中,用户请求顺序地执行如下5条SQL语句:

1:start transaction;

2:insert data1to db1;

3:savepoint G_1;

4:instert data2to db2;

5:savepoint G_2。

上述各条语句的执行处理逻辑如下:

1.当事务保存点管理装置接受到事务开启语句“start transaction”时,由于还没有明确实际参与者,则直接应答请求方(即用户终端);

2.当用户终端发送“insert data1to db1”,该语句的目的是向数据库db1插入数据,此时事务保存点管理装置负责向参与数据库db1发送事务开启语句,然后转发插入数据语句;

3.当用户终端发送“savepoint G_1”,需要创建全局保存点G_1,此时,事务保存点管理装置通知数据库db1创建保存点db1_1,并如表格2所示维护G_1与db1_1的关联关系,并记录G_1的全局保存点序号为1;

4.当用户终端发送“insert data2to db2”,该语句的目的是向参与数据库db2插入数据,由于db2此前没有参与全局事务,则事务保存点管理装需要向参与数据库db2发送事务开启语句“start transaction”,db2加入全局事务后,会发现已经存在全局保存点G_1,所以事务保存点管理装置需要通知db2创建本地保存点db2_1,并如表格3所示维护本地保存点db2_1与全局保存点G_1的关联关系

5.当用户终端发送“savepoint G_2”,需要创建全局保存点G_2,如表格4所示,此时db1距离上一个本地事务保存点db1_1没有数据修改,所以将db1_1于G_2关联即可,而db2距离上一个本地保存点db2_1存在数据修改,因此事务保存点管理装置需要通知db2创建本地保存点db2_2,并保存db2_2于G_2的关联关系。

表格1:实例1中语句对应在每个数据库连接上的执行情况

表格2:实例1中完成第3条语句后的全局保存点与数据库本地保存点的对应关系

保存点序号全局保存点DB1本地保存点1G_1db1_1

表格3:实例1中完成第4条语句后的全局保存点与数据库本地保存点的对应关系

保存点序号全局保存点DB1本地保存点DB2本地保存点1G_1db1_1db2_1

表格4:实例1中完成第5条语句后的全局保存点与数据库本地保存点的对应关系

保存点序号全局保存点DB1本地保存点DB2本地保存点1G_1db1_1db2_12G_2db1_1db2_2

图4是根据本发明的实施例的另一事务保存点管理操作的示意性流程图。在图4所示出的实例中,用户请求顺序地执行如下6条SQL语句:

1:start transaction;

2:insert data1to db1;

3:savepoint G_1;

4:instert data2to db2;

5:savepoint G_2;

6:savepoint G_1;

其中第6句用于重置全局保存点G_1。

在此实例中,仅在实例1的基础上增加了语句6的执行,由此仅对第6条语句的执行做出如下说明,其他不再赘述:当用户终端发送第6条语句“savepoint G_1”时,由于之前已经创建过全局保存点G_1,故本条语句的目的是重置保存点“savepoint G_1”,此时事务保存点管理装置删除原G_1的关联关系记录,并查看参与数据库db1所处状态,发现其处于本地保存点db1_1稳定状态,同时查看参与数据库db2所处状态,发现其处于本地保存点db2_2稳定状态,因此如表格5所示,将G_1设置为时序位置中的最新保存点,并与本地保存点db1_1和db2_2关联。同时,发现db2的本地保存点db2_1不再与任何全局保存点关联,此时可以释放本地保存点db2_1,因此事务保存点管理装置需要通知参与数据库db2释放本地保存点db2_1。

表格5:实例2中完成第6条语句后的全局保存点与数据库本地保存点的对应关系

图5是根据本发明的实施例的另一事务保存点管理操作的示意性流程图。在图5所示出的实例中,用户请求顺序地执行如下5条SQL语句:

1:start transaction;

2:insert data1to db1;

3:savepoint G_1;

4:instert data2to db2;

5:savepoint G_1;

其中第5句用于重置全局保存点G_1。

在此实例中,仅在实例1的基础上修改了语句5,由此仅对第5条语句的执行做出如下说明,其他不再赘述:当用户终端发送第5条语句“savepoint G_1”时,由于之前已经创建过全局保存点G_1,本条语句的目的是重置保存点“savepoint G_1”,此时事务保存点管理装置删除原G_1的关联关系记录,并查看参与数据库db1所处状态,发现其处于本地保存点db1_1稳定状态,因此将G_1与db1_1关联,随之查看参与数据库db2所处状态,发现其不处于本地保存点稳定状态,同时查看到db2_1仅与原全局保存点G_1关联,因此事务保存点管理装置需要通知参与数据库db2重置本地保存点db2_1,然后将db2_1与全局保存点G_1关联,最终如表格6所示,将G_1设置为时序位置中的最新保存点,并与本地保存点db1_1和db2_1关联。

表格6:实例3中完成第5条语句后的全局保存点与数据库本地保存点的对应关系

图6是根据本发明的实施例的另一事务保存点管理操作的示意性流程图。在图6所示的实例中,用户请求顺序地执行如下6条SQL语句:

1:start transaction;

2:insert data1to db1;

3:savepoint G_1;

4:instert data2to db2;

5:savepoint G_2;

6:rollback to savepoint G_1;

其中第6句用于回滚全局事务至全局保存点G_2。

在本实例中,仅在实例1的基础上增加了语句6的执行,由此仅对第6条语句的执行做出如下说明,其他不再赘述:当用户终端发送第6条语句“rollback to savepoint G_1”时,本条语句的目的是回滚全局事务至G_1,事务保存点管理装置发现G_1关联的本地保存点分别为db1_1和db2_2,而参与数据库db1正处于db_1的保存点稳定状态,所以参与数据库db1不需要做任何操作,但参与数据库db2并不处于db2_1这个保存点的稳定状态,因此事务保存点管理装置需要通知参与数据库db2执行本地保存点回滚操作,并回滚至db2_1。同时,事务保存点管理装置需要删除失效在G_1之后的所有全局保存点,及全局保存点与本地保存点的关联关系。最终如表格7所示,其是执行完上述6条语句后,事务保存点管理装置记录的全局保存点序列信息,以及全局保存点与本地保存点的关联关系。

表格7:实例4中完成第6条语句后的全局保存点与数据库保存点的对应关系

图7是根据本发明的实施例的另一事务保存点管理操作的示意性流程图。在图7所示出的实例中,用户请求顺序地执行如下6条SQL语句:

1:start transaction;

2:insert data1to db1;

3:savepoint G_1;

4:instert data2to db2;

5:savepoint G_2;

6:release savepoint G_1;

其中第6句用于释放全局保存点G_1。

在本实例中,仅在实例1的基础上增加了语句6的执行,由此仅对第6条语句的执行做出如下说明,其他不再赘述:当用户终端发送第6条语句“release savepoint G_1”时,本条语句的目的是释放全局保存点G_1。事务保存点管理装置删除G_1所在的全局保存点顺序信息,以及G_1与本地保存点的关联关系,此时会发现参与数据库db2的本地保存点db2_1不与任何全局保存点关联,因此事务保存点管理装置通知参与数据库db2释放本地保存点db2_1。最终如表格8所示,其是执行完上述6条语句后,事务保存点管理装置记录的全局保存点序列信息,以及全局保存点与本地保存点的关联关系。

表格8:实例5中完成第6条语句后的全局保存点与数据库本地保存点的对应关系

尽管本发明是通过上述的优选实施方式进行描述的,但是其实现形式并不局限于上述的实施方式。应该认识到:在不脱离本发明主旨和范围的情况下,本领域技术人员可以对本发明做出不同的变化和修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号