用于数据库更新管理的系统和方法

文档序号:6612474阅读:202来源:国知局
专利名称:用于数据库更新管理的系统和方法
技术领域
本发明一般涉及数据库的更新管理。特别地,本发明涉及用于减少 可能发生在针对多个数据库的更新处理中由多个并发事务所造成的死 锁的频率的更新管理。
背景技术
在执行对多个数据库的独占控制中,可能发生这样的情况也即死锁,例如一个事务锁定数据库A并等待数据库B被解锁,而另一事务 锁定数据库B并等待数据库A被解锁,并且所述处理永远不会前进。 当死锁发生时, 一般采用这样的处理例如, 一个事务被丢弃而另一个 事务被完成,以便解决所述死锁。常规地,为了减少这种死锁的发生,应用开发者已经按以下这种方 式创建应用该多个数据库的更新顺序被预先确定并且根据该顺序来执 行对这些数据库的更新。参考图1以提供更详细的描述,当有两个数据库(表格T1和表格 T2)时,应用开发者预先确定表格Tl和T2按照上述所列顺序更新, 并且创建所有应用Al和A2,其访问数据库以按该顺序更新数据库。由 此,这使得可能减少死锁的发生。在专利文献1 (日本未审查专利公开(Kokai)号2005 - 122560) 中公开了一种相关技术。在专利文献l中所描述的技术是用于解决在没 有实际操作程序之前检测死锁的可能性的问题。该技术被配置以确定程 序对数据库的访问顺序是否与预定的访问顺序相一致,并且如果确定了 该访问顺序与该预定的顺序不一致则报告背离了预定的访问顺序。也 即,这是用于确定已创建的程序是否是根据该预定的访问顺序正确创建
的技术。 发明内容近几年,应用开发已经变得更加可能通过使用现有组件和资源来创且提出了面向服务的架构(SOA),其使客户操作实现了服务/组件的灵 活组合。在这样的基于组件的应用开发中,死锁频率的增加在数据访问实现 方面是个问题。死锁频率增加的原因是组件的灵活组合导致执行次序的 改变,结果导致不能维持数据库的更新顺序的一致性。在图1中所示出的例子中,在应用A1中组件C1和C2的执行次序的重新配置(reshuffle) 导致如图2中所示出的针对数据库的更新顺序的不一致性,结果导致死 锁的发生。如上所述,避免死锁的常规基本策略是创建应用使得更新顺序在共 享数据库的各应用之中被标准化。然而,在基于SOA的应用中或者基 于组件的应用中确保该顺序的这种标准化是困难的,这些应用根据操作 中的改变灵活地重新配置执行次序。另外,在每个组件的开发中,虽然一个组件内的更新顺序可以被标 准化,但是如果用多个组件来实现一个处理则更新顺序总体上会不可避 免地变成嵌套结构,如图3所示。尽管数据库的更新顺序依赖于执行数据库访问的各组件的组合顺 序,但是关心组件的组合的人很难也理解组件内的数据访问的内容。此 外,依赖于组件的内容,不管调用组件的顺序为何都对更新顺序进行标 准化可能是不可能的。由此,本发明的目的是提供一种数据库更新管理系统、程序和方法, 其可以减少可能在针对多个数据库的更新处理中发生由各事务引起的 死锁的发生频率。本发明的另一目的是提供一种数据库更新管理系统、程序和方法, 其在事务需要以预定的顺序更新数据库时,可更新各数据库而不必在应 用侧知道该更新顺序,并且根据针对该物理数据库的顺序来实现该更新。为了实现上面所提及的目的,本发明提供一种数据库更新管理系 统,其用于防止在针对多个数据库的更新处理中发生由多个并发事务所造成的死锁。该数据库更新管理系统包括访问顺序存储单元,其用于 预先存储对该多个数据库的访问顺序;数据请求接收单元,其用于从该 事务接收针对待更新的数据库中数据的数据请求;数据装载单元,其用 于将该数据从该数据库装载到虛拟数据区域;已更新数据存储单元,其 用于响应于该虛拟数据区域中的数据被该事务更新,存储指明已更新数 据的信息;以及数据排序单元,其用于响应于该事务的完成根据该访问 顺序对所存储的指明已更新数据的信息进行排序。使用该已排序的指明 已更新数据的信息来执行对数据库的更新。由此,使得有可能将各事务 间的与数据库的更新顺序有关的一致性的保证与事务相分离。优选地,数据装载单元每次从事务接收到数据请求时从数据库中装 载隶属于该数据请求的数据。作为替代,该数据装载单元可以被如此配 置使得响应于事务的开始从数据库中集体地装载由该事务所请求的全 部数据。该事务更新已装载到虚拟数据区域的数据。当该事务包括多个组件 时,相同的虚拟数据区域被用于来自在相同事务中处理的组件的数据请 求。由此,有可能在相同的事务中处理的各组件之间传递数据。可以如此配置使得根据已装载到虚拟数据区域的数据被更新,在已 更新数据存储单元中设置对应于该数据的更新标记。由此,可以指明已 更新的数据。优选地,该数据库更新管理系统可以还包括锁定管理单元,其用于 确定从数据库装载的数据是否被其它事务更新。该锁定管理单元可以被 配置成使得具有更新时间存储单元,其用于响应于从数据库装载隶属于 数据请求的数据而存储所获取的数据的更新时间,并且在更新数据库时 通过比较所存储的更新时间和从数据库装载的数据的更新时间来再次 确定该数据是否被另一事务更新。
优选地,该数据库更新管理系统可以包括用于监视事务是否完成的事务监视单元。该事务监视单元响应于^r测到事务的完成来启动数据库的更新处理。优选地,该数据库更新管理系统使用已排序的指明了已更新数据的 信息来创建更新命令,以便将该更新命令发出给数据库。如上面所提及,尽管本发明的要点已经被描述为数据库更新管理系 统,但是本发明还可被领会成一种方法或程序(或程序产品)。该程序介质。应当注意,本发明的上述概要没有列举所有的本发明所需要的特


图1说明了一种用于避免死锁的常规方法;图2说明用于避免死锁的常规方法存在的问题;图3说明用于避免死锁的常规方法存在的问题;图4说明根据本发明的实施例的数据库更新管理系统的概貌的例子;图5说明根据本发明的实施例的数据库更新管理系统,其被归类成 功能块;图6说明根据本发明的实施例的已更新数据存储单元的配置例子; 图7说明根据本发明的实施例的已更新数据存储单元的另 一配置例子;图8说明一种用于根据预定的访问顺序将由事务以任意顺序更新了 的数据反射给数据库的机制;图9说明根据本发明的实施例的更新时间存储单元的配置例子; 图10是示出根据本发明的实施例的数据库的更新处理的流程图;以及图11说明根据本发明的实施例的用作应用服务器和客户端计算机
的信息处理装置的硬件配置的例子。
具体实施方式
在下文中,虽然将基于附图详细描述实现本发明的最佳方式,但是 下面所描述的各实施例并不旨在限制根据权利要求所述的本发明,并且 在各实施例中所描述的特征的所有组合并不必然是解决本发明的方法 的要素。另外,本发明可以用许多不同的方式来实现,并且本发明不应当被 解释为局限于各实施例中的描迷内容。还应当注意,在各实施例中所描 述的特征的所有组合并不必然是解决本发明的方法的要素。贯穿各实施 例中的描述,相同的标号表示相同的部件。图4示出根据本发明的实施例的数据库更新管理系统的概貌的例子。应用服务器100被连接到客户端计算机200和数据库300。该数据 库更新管理系统用作应用服务器100的一部分。用户从客户端计算机 200调用数据库应用以访问数据库300。该数据库更新管理系统对从该 数据库应用到数据库300的访问进行管理。户端计算机200的信息处理装置1100的硬件配置。该信息处理装置包 括中央处理单元(CPU) l和主存储器4。 CPU l和主存储器4通过总 线2连接到作为辅助存储器的硬盘设备13。此外,诸如软盘驱动器20、 MO驱动器28、或CR-ROM驱动器26和29之类的可移除存储装置(在 其中记录介质可被更换的外部存储系统)通过相关联的软盘控制器19、 IDE控制器25或SCSI控制器27连接到总线2。诸如软盘驱动器20、 MO驱动器28、或CR-ROM驱动器26和29 之类的可移除存储装置可分别在其中插入诸如软盘、MO、 CD-ROM之 类的存储介质,并且这种软盘或类似物、硬盘驱动器13、或ROM 14 可以记录计算机程序的代码,其用于提供指令给CPU等与操作系统协 作以实现本发明。该计算机程序是通过被装载到主存储器4来执行的。 该计算机程序可以被压缩或者还可以被分成多片以记录在多个介质中。
该信息处理装置还可以具有诸如鼠标等之类的指示设备7、键盘6 和用于向用户呈现可视数据的显示器12作为用户接口硬件。另外,可 以通过并行口 16将其连接到打印机(未示出)或者通过串行口 15将其 连接到调制解调器(未示出)。服务器100通过串行口 15和调制解调器 或者通过通信适配器18 (诸如以太网(注册商标)卡或令牌环卡)或类 似物连接到网络,从而能够与其它计算机或类似物进行通信。扬声器23通过放大器22接收由音频控制器21进行过D/A转换(数 字/模拟转换)的音频信号,并且将它作为音频输出。另外,音频控制器 21使得有可能对从麦克风24接收到的音频信息进行A/D转换(模拟/ 数字转换),由此将系统外部的音频信息取进系统。根据上面所描述的解释,容易理解本发明的实施例中的信息处理 装置是通过诸如大型机、工作站或通用个人计算机(PC)或它们的组合 之类的信息处理装置来实现的。然而,这些组件是说明性的并且所有这 些组件对于本发明并不必然是必要的。本领域的普通技术人员可以容易想到各种各样的修改,诸如组合多 个机器以及给它们分配功能用于实现在本发明的实施例中所使用的信 息处理器的各硬件组件,而且这些变化自然在本发明的思想所包括的概 念内。根据本发明的实施例的应用服务器100和客户端计算机200可以使 用由微软公司所提供的Windows (注册商标)操作系统,由国际商业机 器公司所提供的AIX (注册商标)z/OS (注册商标)、由苹果计算机公 司所提供的Mac OS、或者诸如Linux (注册商标)之类的支持GUI多 窗口环境的那些操作系统作为操作系统。另外,客户端计算机200和应用服务器100可以使用诸如由国际商 业机器公司所提供的PC-DOS或由微软公司所提供的MS-DOS之类的支持基于字符的环境的那些操作系统作为操作系统。此外,根据本发明 的实施例的客户端计算机200和应用服务器100还可使用被并入网络计 算机中的操作系统,诸如由国际商业机器公司提供的OS/Open、由Wind River Systems公司提供的诸如Vx Works之类的实时OS、或Java (注册
商标)OS。如上面所提及,应当理解,根据本发明的实施例的客户端计算机200 和应用服务器100不限于特定的操作系统环境。显然,客户端计算机200 和应用服务器100可以分别工作在彼此不同的操作系统环境中。图5示出根据本发明的实施例的数据库更新管理系统110,其被归 类成功能块。在具有图11中所例示的硬件配置的信息处理装置中,通 过将存储在硬盘驱动器13或类似物中的待被读入CPU 1中的操作系统 或计算机程序装载进主存储器14,可以实现图5的功能框图中所示出的 每个部件,并且使硬件资源和软件协同工作。该数据库更新管理系统110包括访问顺序存储单元lll、数据请 求接收单元112、数据区域初始化单元113、虚拟数据区域114、数据装 载单元115、已更新数据存储单元116、事务监视单元117、命令发出单 元118、数据排序单元119、锁定管理单元120、和更新时间存储单元 121。该访问顺序存储单元111预先存储访问顺序,其代表用于对多个数 据库的访问的顺序。只要该访问顺序是唯一的,则它可以是任意顺序。 例如,如果有三个表格,表格T1、表格T2和表格T3,并确定了以上 述所列顺序来访问它们,则该访问顺序存储单元111以该顺序来存储表 格名字Tl、 T2和T3。该数据请求接收单元112从数据库应用210的事务接收针对将由该 应用更新的数据库300中的数据的数据请求。由此,该更新管理系统110 可以识别应用210需要例如表格T1中的数据。该数据装载单元115响应于数据请求接收单元112从应用210的事 务接收到数据请求,将该事务所请求的数据从数据库300装载到虚拟数 据区域114。在基于该数据请求来装载数据的步骤中,数据装载单元115 不获取对由DBMS (数据管理系统)所提供的目标数据的物理锁定。在隶属于数据请求的数据还未被装载到虚拟数据区域114的条件 下,每当从事务接收到数据请求时,优选地执行从数据库300中装载数 据。 然而,基于对可用存储器容量或优化来自/去往数据库的输出/输入 的考虑,数据装载单元115可以被配置成响应于事务的开始从数据库 300中集体地装载该事务所请求的所有数据。这可以通过预先存储事务所需要的数据的列表和获取该数据列表的数据请求接收单元112来实现。数据区域初始化单元113对事务所请求的数据应当被装载到的虚拟 数据区域114进行初始化,以将它设置为数据可以被装载的状态。虚拟 数据区域114可以^皮构建成例如在Java (注册商标)堆栈上的例子。该 事务访问并更新在虚拟数据区域114中的数据。如果该事务已经更新了 虚拟数据区域114中的数据,则该更新不被立即反射给数据库300,而 是仅被保持在虚拟数据区域114中直到该事务完成为止。更新包括对数 据的修改以及对其的删除和插入。如果该事务是由多个组件组成,则在相同事务中的这些组件属于相 同的线程。至于来自相同事务里处理的组件的数据请求,相同的虚拟数 据区域114被分配和被使用。由此,当在属于相同事务的各组件中首次 被执行的一个组件更新数据时,更新管理系统110可以将已更新数据提 供给后来被执行的组件,而不需要从数据库300中装载该数据。如果被装载到虚拟数据区域114的数据被应用210更新,则已更新 数据存储单元116存储指明了已更新数据的信息。例如,指明了已更新 数据的信息是包括已更新数据的表格或数据记录的标识符。图6示出根 据本发明的实施例的已更新数据存储单元116的配置例子。这个例子示 出,表格T2的数据记录R2已经被更新,以及表格Tl的数据记录R3 随后已经;波更新。图7示出根据本发明的实施例的已更新数据存储单元116的另一配 置例子。像图6的配置例子一样,这个例子示出,表格T2的数据记录 R2已经被更新,接着表格T1的数据记录R3已经被更新。这个配置例提供了对应着每个数据记录的标记区域,并且通过使用该更新标记来指 明已更新数据记录。在这个例子中,虽然更新标记是按数据记录来提供,
但是它也可以按栏来提供。事务监视单元117监视该应用的更新事务是否完成。根据对该更新 事务的完成的检测,对数据库的更新处理被启动。命令发出单元118使用更新事务的完成作为触发以将由该事务所更新的数据集体地反射给数据库300。通过向数据库发出诸如SQL之类的 更新命令来执行对数据库300的反射。如果DBMS提供优化功能用于 以块的形式集体地更新,诸如批处理更新,则该命令发出单元118可以 通过使用该功能高效地执行对数据库300的反射。必须根据预定的访问顺序发出更新命令,以1更避免发生死锁。与下 面所描述的数据排序单元119相协作地实现根据访问顺序发出更新命 令。该数据排序单元119对被存储在已更新数据存储单元116中的信息 进行排序,用于指明由该事务根据存储在访问顺序存储单元111中的访 问顺序更新数据。参考图8,那里描述了一种用于根据预定的访问顺序将由事务按任 意顺序更新的数据反射给数据库300的机制。该访问顺序存储单元111 表示在对数据库的更新处理中应当按哪个顺序来访问表格Tl和表格 T2。应用210被创建,而不需要知道那个更新顺序,并且因此它首先对 展开在虛拟数据区域114的表格T2的数据记录R2中的数据进行更新, 并接着更新表格T1的数据记录R3中的数据。作为结果,条目"T2 'R2" 和"T1 .R3"按由事务所更新的顺序存储在已更新数据存储单元116中。响应于该事务的完成,该数据排序单元119根据访问顺序存储单元 111中的顺序来对已更新数据存储单元116中的内容进行排序。命令发 出单元118通过参考已更新数据存储单元116的已排序的内容以及取回 虛拟数据区域114中的数据,创建待发出给数据库300的更新命令。在针对数据库执行更新处理时,需要执行针对目标数据的独占控 制。然而,如上所述,数据装载单元115不获取对基于来自事务的数据 请求从数据库300装载数据的物理锁定。接着,在执行对数据库300的 更新处理时,需要通过使用另一方法来实现独占控制。在本发明的实施
例中,锁定管理单元120提供了一种独占控制功能。锁定管理单元120确定当从数据库300中装载的数据被一事务处理 时该数据是否已经被数据库300上的另一事务所更新。当从数据库300 装载该事务所请求的数据时,锁定管理单元120还装载保持在数据库 300上的时间,其指示该数据先前在何时已经^皮更新。锁定管理单元120 将所获取的更新时间存储在连接到锁定管理单元的更新时间存储单元 121中。图9示出根据本发明的实施例的更新时间存储单元121的配置例 子。在这个例子中,已经从数据库300中装载了表格T2的数据记录R2 和表格T1的数据记录R3。它也表示,先前已经分别在时间1和时间2 处在数据库300上更新了表格T2的数据记录R2和表格Tl的数据记录 R3。当打算将该事务所更新的表格T2的数据记录R2反射到数据库300 时,锁定管理单元120再次从数据库300中装载数据记录R2的更新时 间3。锁定管理单元120接着比较存储在更新时间存储单元121中的更 新时间1和新获取的更新时间3。如果这两个时间彼此一致,则锁定管 理单元120就确定该数据记录还没有被另一事务更新过。相反,如果这 两个时间彼此不一致,则锁定管理单元120就确定该数据记录已经被另 一事务更新过。图10是描述根据本发明的实施例的对数据库的更新处理的流程图 1000。该处理始于步骤IOOI,其中预先确定对多个数据库的访问顺序并 将其存储在访问顺序存储单元111中。数据请求接收单元112从事务接收对数据库300中待更新的数据的 数据请求(步骤1002)。响应于数据请求接收单元112接收到该数据请 求,数据区域初始化单元113初始化/设置虛拟数据区域114,其中数据 隶属于待^皮展开的数据请求(步骤1003 )。同样,响应于数据请求接收单元112接收该数据请求,数据装载单 元115从数据库300中将隶属于该数据请求的数据装载到虚拟数据区域 114 (步骤1004)。在这一步骤处,不获取用于独占控制的物理锁定。作 为替代,当从数据库300中装载数据时,数据装载单元115还装载该数 据的更新时间,并在连接到锁定管理单元120的更新时间存储单元121 中存储所获取的更新时间(步骤1005 )。应用210访问并更新在虛拟数据区域114中展开的数据。在步骤 1006处,用于管理虚拟数据区域114的程序(未示出)监视虚拟数据区 域114中的数据是否被应用210中的事务更新。如果检测到数据被更新(步骤1006处的"是"分支),则用于管理虚拟数据区域114的程序存 储在已更新数据存储单元116中存储指明已更新数据的信息(步骤 1007)。接着,该处理前进到步骤1008。相反,如果数据未被更新(步 骤1006处的"否"分支),则该处理直接前进到步骤1008。在步骤1008处,事务监视单元117监视该事务是否完成。如果该 事务监视单元117检测到更新事务的完成(步骤1008处的"是"分支), 则该处理前进到步骤1009,并且在存在已更新数据的情况下(步骤1009 处的"是,,分支)启动针对数据库300的更新处理(步骤IOIO)。如果 不存在已更新数据,则该处理结束。相反,如果该事务监视单元117没 有检测到更新事务的完成(步骤1008处的"否,,分支),则该处理返回 到步骤1006以等待事务的完成。响应于针对数据库300的更新处理被启动,锁定管理单元120通过 数据装载单元115从数据库300中获取作为更新目标的数据的更新时间(步骤1011 )。此刻,由DBMS所提供的物理锁定被获取。锁定管理单时间一致(步骤1012 )。如果这两个时间彼此一致(步骤1012处的"是" 分支),则意味着从自数据库300中获取该数据的时刻开始直到目前为 止在数据库300上该数据还没有被另一事务更新,从而该处理前进到步 骤1013并且准备针对数据库300的更新命令。相反,如果这两个更新时间彼此不一致(步骤1012处的"否"分 支),则意味着该数据已经被另一事务更新,从而该处理前进到步骤 1015。在步骤1015处,执行当发生独占错误时的处理,其是预先设置 的。这个设置内容一般在设计应用时进行确定,并且在执行时通过使用
用于数据库更新管理系统的定义文件等来执行该设置。在发生独占错误 时的处理的例子包括发出回退、强迫进行更新而不管发生了独占错误,等等。在步骤1013处,数据排序单元119根据在访问顺序存储单元111 中所存储的访问顺序,对存储在已更新数据存储单元116中的指明已更 新数据的信息进行排序。接着,命令发出单元118通过参考已排序信息 并取回虚拟数据区域114中的数据,创建并发出给数据库300的更新命 令(步骤1014)。如上面所描述,根据本发明,如果事务需要以预定顺序来更新数据 库,则为了减少死锁的发生频率,可以在不知道更新顺序的情况下更新 数据库,而该更新可以根据用于物理数据库的顺序来实现。本发明可以被实现成硬件、软件或硬件和软件的组合。在使用石更件 和软件的组合的执行中,说明性的例子包括在具有预定程序的数据处理 系统中的执行。在这种情况下,通过将预定程序装载到该数据处理系统 并执行,该程序控制该数据处理系统并执行根据本发明的处理。该程序 由一组可以由任意语言、代码和符号来表述的指令组成。该组指令直接 地或者在以下两个步骤之一或全部步骤之后允许系统执行某个功能 (l)转换到不同的语言、代码、或符号,以及(2)实现复制到不同的 介质。很明显,本发明不仅包括这种程序自身而且还包括在其范围中记录 了该程序的介质。用于执行本发明的功能的程序可以被存储于任何计算 机可读记录介质,诸如软盘、MO、 CD-ROM、 DVD、硬盘驱动器、ROM、 MRAM、 RAM,等等。可以从通过通信线所连接的其它数据处理系统 中下载该程序,或者从其他记录介质进行复制以便存储在记录介质中。 该程序产品还可以被压缩或被分成多个以存储在单个记录介质或多个 记录介质中。另外,应当注意,明显地也可以用各种各样的形式来提供 用于执行本发明的程序产品。样的修改或改进。自然,添加了这种修改或改进的模式也被包括在本发 明的技术范围中。如上所述,虽然已经使用各实施例描述了本发明,但是本发明的技 术范围不限于在前述各实施例中所描述的范围。本领域的普通技术人员了这种修改或改进的模式也被包括在本发明的技术范围中。
权利要求
1.一种数据库更新管理系统,其用于防止在针对多个数据库的更新处理中发生由多个并发事务所造成的死锁,所述数据库更新管理系统包括访问顺序存储单元,其用于预先存储对所述多个数据库的访问顺序;数据请求接收单元,其用于从所述事务接收针对待更新的数据库中的数据的数据请求;数据装载单元,其用于将所述数据从所述数据库装载到虚拟数据区域;已更新数据存储单元,其用于响应于所述虚拟数据区域中的数据被所述事务更新,存储指明所述已更新数据的信息;以及数据排序单元,其用于响应于所述事务的完成根据所述访问顺序对所述存储的信息进行排序,所述已排序的信息被用于更新所述数据库。
2. 根据权利要求1所述的系统,其中每当从所述事务接收到所述 数据请求时,所述数据装载单元从所述数据库中装载隶属于所述数据请 求的数据。
3. 根据权利要求1所述的系统,其中响应于所述事务的开始,所 述数据装载单元从所述数据库中集体地装载由所述事务所请求的全部 数据。
4. 根据权利要求1所迷的系统,其中所述事务更新被装载到所述 虛拟数据区域的数据。
5. 根据权利要求1所述的系统,其中所述事务包括多个组件,并 且相同的虚拟数据区域被用于来自在相同事务中处理的组件的所述数 据请求。
6. 根据权利要求4所迷的系统,其中响应于所述数据被更新,在 所述已更新数据存储单元中设置对应于被装载到所述虚拟数据区域的所述数据的更新标记。
7. 根据权利要求1所述的系统,还包括锁定管理单元,其用于确 定从所述数据库中装载的数据是否被另一事务更新。
8. 根据权利要求7所述的系统,其中所述锁定管理单元包括更新时间存储单元,用于响应于从所述数据库中装载所述数据,存储所获取 的作为所述数据请求的目标的数据的更新时间,并且在更新所述数据库 时通过比较所述存储的更新时间和从所述数据库中装载的所述数据的 更新时间来再次确定所述数据是否被另 一事务更新。
9. 根据权利要求1所述的系统,还包括事务监视单元,其用于监视所述事务是否完成,所述事务监视单元响应于检测到所述事务的完 成,启动所述数据库的更新处理。
10. 根据权利要求1所述的系统,其中所述指明已更新数据的信息 是包含被所述事务更新的数据的表格和数据记录的标识符。
11. 根据权利要求1所述的系统,还包括命令发出单元,其用于使 用所述已排序的信息来创建更新命令以便将所述更新命令发出给所述 数据库。
12. —种用于使计算机用作数据库更新管理系统的程序产品,所述 数据库更新管理系统防止在针对多个数据库的更新处理中发生由多个 并发事务所造成的死锁,所述程序产品使所述计算机用作访问顺序存储单元,其用于预先存储对所述多个数据库的访问顺序;数据请求接收单元,其用于从所述事务接收针对待更新的数据库中 的数据的数据请求;数据装载单元,其用于将所述数据从所述数据库装载到虚拟数据区域;已更新数据存储单元,其用于响应于所述虛拟数据区域中的数据被 所述事务更新,存储指明已更新数据的信息;以及数据排序单元,其用于响应于所述事务的完成根据所述访问顺序对 所述存储的信息进行排序,所述已排序的信息被用于更新所述数据库。
13. —种使计算机用作数据库更新管理系统的程序产品,所述数据 库更新管理系统用于防止在针对多个数据库的更新处理中发生由多个并发事务所造成的死锁,所述程序产品用于使所述计算机用作访问顺序存储单元,其用于预先存储对所述多个数据库的访问顺序;数据请求接收单元,其用于从所述事务接收针对待更新的数据库中数据的数据请求;已更新数据存储单元,其用于响应于基于所述数据请求装载到虚拟 数据区域中的数据被所述事务更新,存储指明已更新数据的信息;以及数据排序单元,其用于响应于所述事务的完成根据所述访问顺序对 所述存储的信息进行排序,所述已排序信息被用于更新所述数据库。
14. 一种管理数据库更新的方法,其用于防止在针对多个数据库的 更新处理中发生由多个并发事务所造成的死锁,所述方法包括步骤预先存储对所述多个数据库的访问顺序; 从所述事务接收针对待更新的数据库中数据的数据请求; 将所述数据从所述数据库装载到虛拟数据区域; 响应于所述虚拟数据区域中的数据被所述事务更新,存储指明所述 已更新数据的信息;以及响应于所述事务的完成,根据所述访问顺序对所述存储的信息进行排序。
全文摘要
本发明是为了防止在针对多个数据库的更新处理中发生由多个并发事务所造成的死锁。本发明提供了一种数据库更新管理系统和方法,该系统包括访问顺序存储单元,其用于预先存储对多个数据库的访问顺序;数据请求接收单元,其用于从事务接收针对待更新的数据库中的数据的数据请求;数据装载单元,其用于将作为数据请求的目标的数据从数据库装载到虚拟数据区域;已更新数据存储单元,其用于响应于虚拟数据区域中的数据被事务更新,存储指明已更新数据的信息;以及数据排序单元,其用于响应于事务的完成根据访问顺序对所存储的信息进行排序,该已排序的信息被用于更新数据库。
文档编号G06F17/30GK101211362SQ20071016002
公开日2008年7月2日 申请日期2007年12月20日 优先权日2006年12月26日
发明者二上哲也, 松本龙幸 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1