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

技术编号:2828212 阅读:172 留言:0更新日期:2012-04-11 18:40
本发明专利技术是为了防止在针对多个数据库的更新处理中发生由多个并发事务所造成的死锁。本发明专利技术提供了一种数据库更新管理系统和方法,该系统包括:访问顺序存储单元,其用于预先存储对多个数据库的访问顺序;数据请求接收单元,其用于从事务接收针对待更新的数据库中的数据的数据请求;数据装载单元,其用于将作为数据请求的目标的数据从数据库装载到虚拟数据区域;已更新数据存储单元,其用于响应于虚拟数据区域中的数据被事务更新,存储指明已更新数据的信息;以及数据排序单元,其用于响应于事务的完成根据访问顺序对所存储的信息进行排序,该已排序的信息被用于更新数据库。

【技术实现步骤摘要】

本专利技术一般涉及数据库的更新管理。特别地,本专利技术涉及用于减少 可能发生在针对多个数据库的更新处理中由多个并发事务所造成的死 锁的频率的更新管理。
技术介绍
在执行对多个数据库的独占控制中,可能发生这样的情况也即死锁,例如一个事务锁定数据库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的信息处理装本文档来自技高网...

【技术保护点】
一种数据库更新管理系统,其用于防止在针对多个数据库的更新处理中发生由多个并发事务所造成的死锁,所述数据库更新管理系统包括:访问顺序存储单元,其用于预先存储对所述多个数据库的访问顺序;数据请求接收单元,其用于从所述事务接收针对待更新的数据库中的数据的数据请求;数据装载单元,其用于将所述数据从所述数据库装载到虚拟数据区域;已更新数据存储单元,其用于响应于所述虚拟数据区域中的数据被所述事务更新,存储指明所述已更新数据的信息;以及数据排序单元,其用于响应于所述事务的完成根据所述访问顺序对所述存储的信息进行排序,所述已排序的信息被用于更新所述数据库。

【技术特征摘要】
JP 2006-12-26 2006-3506531.一种数据库更新管理系统,其用于防止在针对多个数据库的更新处理中发生由多个并发事务所造成的死锁,所述数据库更新管理系统包括访问顺序存储单元,其用于预先存储对所述多个数据库的访问顺序;数据请求接收单元,其用于从所述事务接收针对待更新的数据库中的数据的数据请求;数据装载单元,其用于将所述数据从所述数据库装载到虚拟数据区域;已更新数据存储单元,其用于响应于所述虚拟数据区域中的数据被所述事务更新,存储指明所述已更新数据的信息;以及数据排序单元,其用于响应于所述事务的完成根据所述访问顺序对所述存储的信息进行排序,所述已排序的信息被用于更新所述数据库。2. 根据权利要求1所述的系统,其中每当从所述事务接收到所述 数据请求时,所述数据装载单元从所述数据库中装载隶属于所述数据请 求的数据。3. 根据权利要求1所述的系统,其中响应于所述事务的开始,所 述数据装载单元从所述数据库中集体地装载由所述事务所请求的全部 数据。4. 根据权利要求1所迷的系统,其中所述事务更新被装载到所述 虛拟数据区域的数据。5. 根据权利要求1所述的系统,其中所述事务包括多个组件,并 且相同的虚拟数据区域被用于来自在相同事务中处理的组件的所述数 据请求。6. 根据权利要求4所迷的系统,其中响应于所述数据被更新,在 所述已更新数据存储单元中设置对应于被装载到所述虚拟数据区域的所述数据的更新标记。7. 根据权利要求1所述的系统,还包括锁定管理单元,其用于确 定从所述数据库中装载的数据是否被另一事务更新。8. 根据权利要求7所述的系统,其中所述锁定管理单元包括更新时间存储单元,用于响应于从所述数据库中装载所述数据,存储所获取 的作为所述数据请求的目标的数据的更新时间,并且在更新所述数据库 时通过比较所述存储的更新时间和从所述数据库中装载的所述数据的 更新时间来再次确定所述数据是否被另 一事务更新。9. 根据权利要求1所述的系统,还包括事务监视单元,其用于监视所述事务是否完成,所述事务监视单元响应于检测到所述事务的完 成,启动所述数据库的...

【专利技术属性】
技术研发人员:松本龙幸二上哲也
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1