CN101211362A - 用于数据库更新管理的系统和方法 - Google Patents
用于数据库更新管理的系统和方法 Download PDFInfo
- Publication number
- CN101211362A CN101211362A CNA2007101600258A CN200710160025A CN101211362A CN 101211362 A CN101211362 A CN 101211362A CN A2007101600258 A CNA2007101600258 A CN A2007101600258A CN 200710160025 A CN200710160025 A CN 200710160025A CN 101211362 A CN101211362 A CN 101211362A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- affairs
- request
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明是为了防止在针对多个数据库的更新处理中发生由多个并发事务所造成的死锁。本发明提供了一种数据库更新管理系统和方法,该系统包括:访问顺序存储单元,其用于预先存储对多个数据库的访问顺序;数据请求接收单元,其用于从事务接收针对待更新的数据库中的数据的数据请求;数据装载单元,其用于将作为数据请求的目标的数据从数据库装载到虚拟数据区域;已更新数据存储单元,其用于响应于虚拟数据区域中的数据被事务更新,存储指明已更新数据的信息;以及数据排序单元,其用于响应于事务的完成根据访问顺序对所存储的信息进行排序,该已排序的信息被用于更新数据库。
Description
技术领域
本发明一般涉及数据库的更新管理。特别地,本发明涉及用于减少可能发生在针对多个数据库的更新处理中由多个并发事务所造成的死锁的频率的更新管理。
背景技术
在执行对多个数据库的独占控制中,可能发生这样的情况也即死锁,例如一个事务锁定数据库A并等待数据库B被解锁,而另一事务锁定数据库B并等待数据库A被解锁,并且所述处理永远不会前进。当死锁发生时,一般采用这样的处理:例如,一个事务被丢弃而另一个事务被完成,以便解决所述死锁。
常规地,为了减少这种死锁的发生,应用开发者已经按以下这种方式创建应用:该多个数据库的更新顺序被预先确定并且根据该顺序来执行对这些数据库的更新。
参考图1以提供更详细的描述,当有两个数据库(表格T1和表格T2)时,应用开发者预先确定表格T1和T2按照上述所列顺序更新,并且创建所有应用A1和A2,其访问数据库以按该顺序更新数据库。由此,这使得可能减少死锁的发生。
在专利文献1(日本未审查专利公开(Kokai)号2005-122560)中公开了一种相关技术。在专利文献1中所描述的技术是用于解决在没有实际操作程序之前检测死锁的可能性的问题。该技术被配置以确定程序对数据库的访问顺序是否与预定的访问顺序相一致,并且如果确定了该访问顺序与该预定的顺序不一致则报告背离了预定的访问顺序。也即,这是用于确定已创建的程序是否是根据该预定的访问顺序正确创建的技术。
发明内容
近几年,应用开发已经变得更加可能通过使用现有组件和资源来创建应用。这被认为是归因于组件设计作为应用开发方法已经得到普及并且提出了面向服务的架构(SOA),其使客户操作实现了服务/组件的灵活组合。
在这样的基于组件的应用开发中,死锁频率的增加在数据访问实现方面是个问题。死锁频率增加的原因是组件的灵活组合导致执行次序的改变,结果导致不能维持数据库的更新顺序的一致性。在图1中所示出的例子中,在应用A1中组件C1和C2的执行次序的重新配置(reshuffle)导致如图2中所示出的针对数据库的更新顺序的不一致性,结果导致死锁的发生。
如上所述,避免死锁的常规基本策略是创建应用使得更新顺序在共享数据库的各应用之中被标准化。然而,在基于SOA的应用中或者基于组件的应用中确保该顺序的这种标准化是困难的,这些应用根据操作中的改变灵活地重新配置执行次序。
另外,在每个组件的开发中,虽然一个组件内的更新顺序可以被标准化,但是如果用多个组件来实现一个处理则更新顺序总体上会不可避免地变成嵌套结构,如图3所示。
尽管数据库的更新顺序依赖于执行数据库访问的各组件的组合顺序,但是关心组件的组合的人很难也理解组件内的数据访问的内容。此外,依赖于组件的内容,不管调用组件的顺序为何都对更新顺序进行标准化可能是不可能的。
由此,本发明的目的是提供一种数据库更新管理系统、程序和方法,其可以减少可能在针对多个数据库的更新处理中发生由各事务引起的死锁的发生频率。
本发明的另一目的是提供一种数据库更新管理系统、程序和方法,其在事务需要以预定的顺序更新数据库时,可更新各数据库而不必在应用侧知道该更新顺序,并且根据针对该物理数据库的顺序来实现该更新。
为了实现上面所提及的目的,本发明提供一种数据库更新管理系统,其用于防止在针对多个数据库的更新处理中发生由多个并发事务所造成的死锁。该数据库更新管理系统包括:访问顺序存储单元,其用于预先存储对该多个数据库的访问顺序;数据请求接收单元,其用于从该事务接收针对待更新的数据库中数据的数据请求;数据装载单元,其用于将该数据从该数据库装载到虚拟数据区域;已更新数据存储单元,其用于响应于该虚拟数据区域中的数据被该事务更新,存储指明已更新数据的信息;以及数据排序单元,其用于响应于该事务的完成根据该访问顺序对所存储的指明已更新数据的信息进行排序。使用该已排序的指明已更新数据的信息来执行对数据库的更新。由此,使得有可能将各事务间的与数据库的更新顺序有关的一致性的保证与事务相分离。
优选地,数据装载单元每次从事务接收到数据请求时从数据库中装载隶属于该数据请求的数据。作为替代,该数据装载单元可以被如此配置使得响应于事务的开始从数据库中集体地装载由该事务所请求的全部数据。
该事务更新已装载到虚拟数据区域的数据。当该事务包括多个组件时,相同的虚拟数据区域被用于来自在相同事务中处理的组件的数据请求。由此,有可能在相同的事务中处理的各组件之间传递数据。
可以如此配置使得根据已装载到虚拟数据区域的数据被更新,在已更新数据存储单元中设置对应于该数据的更新标记。由此,可以指明已更新的数据。
优选地,该数据库更新管理系统可以还包括锁定管理单元,其用于确定从数据库装载的数据是否被其它事务更新。该锁定管理单元可以被配置成使得具有更新时间存储单元,其用于响应于从数据库装载隶属于数据请求的数据而存储所获取的数据的更新时间,并且在更新数据库时通过比较所存储的更新时间和从数据库装载的数据的更新时间来再次确定该数据是否被另一事务更新。
优选地,该数据库更新管理系统可以包括用于监视事务是否完成的事务监视单元。该事务监视单元响应于检测到事务的完成来启动数据库的更新处理。
优选地,该数据库更新管理系统使用已排序的指明了已更新数据的信息来创建更新命令,以便将该更新命令发出给数据库。
如上面所提及,尽管本发明的要点已经被描述为数据库更新管理系统,但是本发明还可被领会成一种方法或程序(或程序产品)。该程序产品可以包括例如用于存储上述程序的存储介质或用于传送该程序的介质。
应当注意,本发明的上述概要没有列举所有的本发明所需要的特征,并且各组件的组合或其子组合也可以被包括在本发明中。
附图说明
图1说明了一种用于避免死锁的常规方法;
图2说明用于避免死锁的常规方法存在的问题;
图3说明用于避免死锁的常规方法存在的问题;
图4说明根据本发明的实施例的数据库更新管理系统的概貌的例子;
图5说明根据本发明的实施例的数据库更新管理系统,其被归类成功能块;
图6说明根据本发明的实施例的已更新数据存储单元的配置例子;
图7说明根据本发明的实施例的已更新数据存储单元的另一配置例子;
图8说明一种用于根据预定的访问顺序将由事务以任意顺序更新了的数据反射给数据库的机制;
图9说明根据本发明的实施例的更新时间存储单元的配置例子;
图10是示出根据本发明的实施例的数据库的更新处理的流程图;以及
图11说明根据本发明的实施例的用作应用服务器和客户端计算机的信息处理装置的硬件配置的例子。
具体实施方式
在下文中,虽然将基于附图详细描述实现本发明的最佳方式,但是下面所描述的各实施例并不旨在限制根据权利要求所述的本发明,并且在各实施例中所描述的特征的所有组合并不必然是解决本发明的方法的要素。
另外,本发明可以用许多不同的方式来实现,并且本发明不应当被解释为局限于各实施例中的描述内容。还应当注意,在各实施例中所描述的特征的所有组合并不必然是解决本发明的方法的要素。贯穿各实施例中的描述,相同的标号表示相同的部件。
图4示出根据本发明的实施例的数据库更新管理系统的概貌的例子。应用服务器100被连接到客户端计算机200和数据库300。该数据库更新管理系统用作应用服务器100的一部分。用户从客户端计算机200调用数据库应用以访问数据库300。该数据库更新管理系统对从该数据库应用到数据库300的访问进行管理。
图11例示了根据本发明的实施例的适于实现应用服务器100和客户端计算机200的信息处理装置1100的硬件配置。该信息处理装置包括中央处理单元(CPU)1和主存储器4。CPU1和主存储器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、或ROM14可以记录计算机程序的代码,其用于提供指令给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、由WindRiver Systems公司提供的诸如Vx Works之类的实时OS、或Java(注册商标)OS。
如上面所提及,应当理解,根据本发明的实施例的客户端计算机200和应用服务器100不限于特定的操作系统环境。显然,客户端计算机200和应用服务器100可以分别工作在彼此不同的操作系统环境中。
图5示出根据本发明的实施例的数据库更新管理系统110,其被归类成功能块。在具有图11中所例示的硬件配置的信息处理装置中,通过将存储在硬盘驱动器13或类似物中的待被读入CPU1中的操作系统或计算机程序装载进主存储器14,可以实现图5的功能框图中所示出的每个部件,并且使硬件资源和软件协同工作。
该数据库更新管理系统110包括:访问顺序存储单元111、数据请求接收单元112、数据区域初始化单元113、虚拟数据区域114、数据装载单元115、已更新数据存储单元116、事务监视单元117、命令发出单元118、数据排序单元119、锁定管理单元120、和更新时间存储单元121。
该访问顺序存储单元111预先存储访问顺序,其代表用于对多个数据库的访问的顺序。只要该访问顺序是唯一的,则它可以是任意顺序。例如,如果有三个表格,表格T1、表格T2和表格T3,并确定了以上述所列顺序来访问它们,则该访问顺序存储单元111以该顺序来存储表格名字T1、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已经被更新,以及表格T1的数据记录R3随后已经被更新。
图7示出根据本发明的实施例的已更新数据存储单元116的另一配置例子。像图6的配置例子一样,这个例子示出,表格T2的数据记录R2已经被更新,接着表格T1的数据记录R3已经被更新。这个配置例子与图6中的配置例子之间的不同是在用于所访问的表格的存储区域中提供了对应着每个数据记录的标记区域,并且通过使用该更新标记来指明已更新数据记录。在这个例子中,虽然更新标记是按数据记录来提供,但是它也可以按栏来提供。
事务监视单元117监视该应用的更新事务是否完成。根据对该更新事务的完成的检测,对数据库的更新处理被启动。
命令发出单元118使用更新事务的完成作为触发以将由该事务所更新的数据集体地反射给数据库300。通过向数据库发出诸如SQL之类的更新命令来执行对数据库300的反射。如果DBMS提供优化功能用于以块的形式集体地更新,诸如批处理更新,则该命令发出单元118可以通过使用该功能高效地执行对数据库300的反射。
必须根据预定的访问顺序发出更新命令,以便避免发生死锁。与下面所描述的数据排序单元119相协作地实现根据访问顺序发出更新命令。
该数据排序单元119对被存储在已更新数据存储单元116中的信息进行排序,用于指明由该事务根据存储在访问顺序存储单元111中的访问顺序更新数据。
参考图8,那里描述了一种用于根据预定的访问顺序将由事务按任意顺序更新的数据反射给数据库300的机制。该访问顺序存储单元111表示在对数据库的更新处理中应当按哪个顺序来访问表格T1和表格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和表格T1的数据记录R3。
当打算将该事务所更新的表格T2的数据记录R2反射到数据库300时,锁定管理单元120再次从数据库300中装载数据记录R2的更新时间3。锁定管理单元120接着比较存储在更新时间存储单元121中的更新时间1和新获取的更新时间3。如果这两个时间彼此一致,则锁定管理单元120就确定该数据记录还没有被另一事务更新过。相反,如果这两个时间彼此不一致,则锁定管理单元120就确定该数据记录已经被另一事务更新过。
图10是描述根据本发明的实施例的对数据库的更新处理的流程图1000。该处理始于步骤1001,其中预先确定对多个数据库的访问顺序并将其存储在访问顺序存储单元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的更新处理(步骤1010)。如果不存在已更新数据,则该处理结束。相反,如果该事务监视单元117没有检测到更新事务的完成(步骤1008处的“否”分支),则该处理返回到步骤1006以等待事务的完成。
响应于针对数据库300的更新处理被启动,锁定管理单元120通过数据装载单元115从数据库300中获取作为更新目标的数据的更新时间(步骤1011)。此刻,由DBMS所提供的物理锁定被获取。锁定管理单元120确定所获取的更新时间是否与更新时间存储单元中所存储的更新时间一致(步骤1012)。如果这两个时间彼此一致(步骤1012处的“是”分支),则意味着从自数据库300中获取该数据的时刻开始直到目前为止在数据库300上该数据还没有被另一事务更新,从而该处理前进到步骤1013并且准备针对数据库300的更新命令。
相反,如果这两个更新时间彼此不一致(步骤1012处的“否”分支),则意味着该数据已经被另一事务更新,从而该处理前进到步骤1015。在步骤1015处,执行当发生独占错误时的处理,其是预先设置的。这个设置内容一般在设计应用时进行确定,并且在执行时通过使用用于数据库更新管理系统的定义文件等来执行该设置。在发生独占错误时的处理的例子包括发出回退、强迫进行更新而不管发生了独占错误,等等。
在步骤1013处,数据排序单元119根据在访问顺序存储单元111中所存储的访问顺序,对存储在已更新数据存储单元116中的指明已更新数据的信息进行排序。接着,命令发出单元118通过参考已排序信息并取回虚拟数据区域114中的数据,创建并发出给数据库300的更新命令(步骤1014)。
如上面所描述,根据本发明,如果事务需要以预定顺序来更新数据库,则为了减少死锁的发生频率,可以在不知道更新顺序的情况下更新数据库,而该更新可以根据用于物理数据库的顺序来实现。
本发明可以被实现成硬件、软件或硬件和软件的组合。在使用硬件和软件的组合的执行中,说明性的例子包括在具有预定程序的数据处理系统中的执行。在这种情况下,通过将预定程序装载到该数据处理系统并执行,该程序控制该数据处理系统并执行根据本发明的处理。该程序由一组可以由任意语言、代码和符号来表述的指令组成。该组指令直接地或者在以下两个步骤之一或全部步骤之后允许系统执行某个功能:(1)转换到不同的语言、代码、或符号,以及(2)实现复制到不同的介质。
很明显,本发明不仅包括这种程序自身而且还包括在其范围中记录了该程序的介质。用于执行本发明的功能的程序可以被存储于任何计算机可读记录介质,诸如软盘、MO、CD-ROM、DVD、硬盘驱动器、ROM、MRAM、RAM,等等。可以从通过通信线所连接的其它数据处理系统中下载该程序,或者从其他记录介质进行复制以便存储在记录介质中。该程序产品还可以被压缩或被分成多个以存储在单个记录介质或多个记录介质中。另外,应当注意,明显地也可以用各种各样的形式来提供用于执行本发明的程序产品。
本领域的普通技术人员显然明白可以对上述各实施例进行各种各样的修改或改进。自然,添加了这种修改或改进的模式也被包括在本发明的技术范围中。
如上所述,虽然已经使用各实施例描述了本发明,但是本发明的技术范围不限于在前述各实施例中所描述的范围。本领域的普通技术人员显然明白可以对上述各实施例进行各种各样的修改或改进。自然,添加了这种修改或改进的模式也被包括在本发明的技术范围中。
Claims (14)
1.一种数据库更新管理系统,其用于防止在针对多个数据库的更新处理中发生由多个并发事务所造成的死锁,所述数据库更新管理系统包括:
访问顺序存储单元,其用于预先存储对所述多个数据库的访问顺序;
数据请求接收单元,其用于从所述事务接收针对待更新的数据库中的数据的数据请求;
数据装载单元,其用于将所述数据从所述数据库装载到虚拟数据区域;
已更新数据存储单元,其用于响应于所述虚拟数据区域中的数据被所述事务更新,存储指明所述已更新数据的信息;以及
数据排序单元,其用于响应于所述事务的完成根据所述访问顺序对所述存储的信息进行排序,所述已排序的信息被用于更新所述数据库。
2.根据权利要求1所述的系统,其中每当从所述事务接收到所述数据请求时,所述数据装载单元从所述数据库中装载隶属于所述数据请求的数据。
3.根据权利要求1所述的系统,其中响应于所述事务的开始,所述数据装载单元从所述数据库中集体地装载由所述事务所请求的全部数据。
4.根据权利要求1所述的系统,其中所述事务更新被装载到所述虚拟数据区域的数据。
5.根据权利要求1所述的系统,其中所述事务包括多个组件,并且相同的虚拟数据区域被用于来自在相同事务中处理的组件的所述数据请求。
6.根据权利要求4所述的系统,其中响应于所述数据被更新,在所述已更新数据存储单元中设置对应于被装载到所述虚拟数据区域的所述数据的更新标记。
7.根据权利要求1所述的系统,还包括锁定管理单元,其用于确定从所述数据库中装载的数据是否被另一事务更新。
8.根据权利要求7所述的系统,其中所述锁定管理单元包括更新时间存储单元,用于响应于从所述数据库中装载所述数据,存储所获取的作为所述数据请求的目标的数据的更新时间,并且在更新所述数据库时通过比较所述存储的更新时间和从所述数据库中装载的所述数据的更新时间来再次确定所述数据是否被另一事务更新。
9.根据权利要求1所述的系统,还包括事务监视单元,其用于监视所述事务是否完成,所述事务监视单元响应于检测到所述事务的完成,启动所述数据库的更新处理。
10.根据权利要求1所述的系统,其中所述指明已更新数据的信息是包含被所述事务更新的数据的表格和数据记录的标识符。
11.根据权利要求1所述的系统,还包括命令发出单元,其用于使用所述已排序的信息来创建更新命令以便将所述更新命令发出给所述数据库。
12.一种用于使计算机用作数据库更新管理系统的程序产品,所述数据库更新管理系统防止在针对多个数据库的更新处理中发生由多个并发事务所造成的死锁,所述程序产品使所述计算机用作:
访问顺序存储单元,其用于预先存储对所述多个数据库的访问顺序;
数据请求接收单元,其用于从所述事务接收针对待更新的数据库中的数据的数据请求;
数据装载单元,其用于将所述数据从所述数据库装载到虚拟数据区域;
已更新数据存储单元,其用于响应于所述虚拟数据区域中的数据被所述事务更新,存储指明已更新数据的信息;以及
数据排序单元,其用于响应于所述事务的完成根据所述访问顺序对所述存储的信息进行排序,所述已排序的信息被用于更新所述数据库。
13.一种使计算机用作数据库更新管理系统的程序产品,所述数据库更新管理系统用于防止在针对多个数据库的更新处理中发生由多个并发事务所造成的死锁,所述程序产品用于使所述计算机用作:
访问顺序存储单元,其用于预先存储对所述多个数据库的访问顺序;
数据请求接收单元,其用于从所述事务接收针对待更新的数据库中数据的数据请求;
已更新数据存储单元,其用于响应于基于所述数据请求装载到虚拟数据区域中的数据被所述事务更新,存储指明已更新数据的信息;以及
数据排序单元,其用于响应于所述事务的完成根据所述访问顺序对所述存储的信息进行排序,所述已排序信息被用于更新所述数据库。
14.一种管理数据库更新的方法,其用于防止在针对多个数据库的更新处理中发生由多个并发事务所造成的死锁,所述方法包括步骤:
预先存储对所述多个数据库的访问顺序;
从所述事务接收针对待更新的数据库中数据的数据请求;
将所述数据从所述数据库装载到虚拟数据区域;
响应于所述虚拟数据区域中的数据被所述事务更新,存储指明所述已更新数据的信息;以及
响应于所述事务的完成,根据所述访问顺序对所述存储的信息进行排序。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006350653 | 2006-12-26 | ||
JP2006-350653 | 2006-12-26 | ||
JP2006350653A JP4432087B2 (ja) | 2006-12-26 | 2006-12-26 | データベース更新管理システム、プログラムおよび方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101211362A true CN101211362A (zh) | 2008-07-02 |
CN101211362B CN101211362B (zh) | 2010-07-07 |
Family
ID=39544379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101600258A Expired - Fee Related CN101211362B (zh) | 2006-12-26 | 2007-12-20 | 用于数据库更新管理的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8001098B2 (zh) |
JP (1) | JP4432087B2 (zh) |
CN (1) | CN101211362B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279873A (zh) * | 2010-06-11 | 2011-12-14 | 微软公司 | 对数据、模式,以及应用程序的统一并发变更 |
CN102667733A (zh) * | 2009-10-30 | 2012-09-12 | 株式会社Ntt数据 | 数据访问装置、数据访问方法以及数据访问程序 |
CN108228893A (zh) * | 2018-02-05 | 2018-06-29 | 广州中元软件有限公司 | 一种关系数据库数据持久化优化和排队方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8407183B2 (en) * | 2007-12-21 | 2013-03-26 | Sap Ag | Business intelligence data extraction on demand |
US9258415B1 (en) | 2015-03-30 | 2016-02-09 | Captioncall, Llc | Communication device and related methods for offline data record modification and synchronization with a backend server associated with a relay service for hearing-impaired users |
US11243777B2 (en) * | 2018-05-18 | 2022-02-08 | Nuxeo Corporation | Process stream replication for content management system synchronization |
CN110442361B (zh) * | 2019-06-27 | 2024-02-09 | 五八有限公司 | 一种灰度发布方法、装置及电子设备 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0314027A (ja) | 1989-06-12 | 1991-01-22 | Kubota Nainen Kiki Service Kk | 診断・指導エキスパートシステム |
JPH0659959A (ja) | 1992-08-04 | 1994-03-04 | Mutoh Ind Ltd | ファイル保護方式 |
GB9424699D0 (en) * | 1994-12-07 | 1995-02-01 | Int Computers Ltd | Deadlock detection mechanism |
JP3014027B2 (ja) | 1995-05-19 | 2000-02-28 | エヌ・ティ・ティ移動通信網株式会社 | 情報信号無線伝送方法 |
JP2701814B2 (ja) | 1995-11-28 | 1998-01-21 | 日本電気株式会社 | 分散ファイル管理方法 |
JPH1049420A (ja) | 1996-08-02 | 1998-02-20 | Fuji Xerox Co Ltd | データベース管理方法 |
JPH1165904A (ja) | 1997-08-15 | 1999-03-09 | Nec Corp | データ管理システム、データ管理方法およびデータ管理プログラムを記録した媒体 |
JP3478131B2 (ja) | 1998-07-01 | 2003-12-15 | 日本電気株式会社 | ファイルアクセス装置及びファイルアクセスプログラムを記録したコンピュータ読み取り可能な記録媒体 |
SE521433C2 (sv) * | 1998-07-22 | 2003-11-04 | Ericsson Telefon Ab L M | En metod för hantering av risken för en total låsning mellan samtidiga transaktioner i en databas |
PA8502401A1 (es) * | 1999-09-17 | 2002-02-21 | Nagracard Sa | Procedimiento y sistema de transmision de una cadena de mensajes para banco de datos. |
US6438558B1 (en) * | 1999-12-23 | 2002-08-20 | Ncr Corporation | Replicating updates in original temporal order in parallel processing database systems |
US6957237B1 (en) * | 2000-06-02 | 2005-10-18 | Sun Microsystems, Inc. | Database store for a virtual heap |
US6947956B2 (en) | 2002-06-06 | 2005-09-20 | International Business Machines Corporation | Method and apparatus for selective caching of transactions in a computer system |
US8010491B2 (en) | 2003-02-28 | 2011-08-30 | Microsoft Corporation | Method for managing multiple file states for replicated files |
JP2005122560A (ja) | 2003-10-17 | 2005-05-12 | Fujitsu Ltd | デッドロック事前検出プログラム |
US7385608B1 (en) * | 2003-12-31 | 2008-06-10 | 3Dlabs Inc. Ltd. | State tracking methodology |
JP4314126B2 (ja) | 2004-02-20 | 2009-08-12 | 株式会社東芝 | 同時実行制御方法及び装置 |
JP2005309653A (ja) | 2004-04-20 | 2005-11-04 | Hitachi Global Storage Technologies Netherlands Bv | ディスク装置及びキャッシュ制御方法 |
JP4892812B2 (ja) | 2004-04-28 | 2012-03-07 | 株式会社日立製作所 | キャッシュ制御およびデータ処理システム並びにその処理プログラム |
GB2414089A (en) * | 2004-05-07 | 2005-11-16 | Paul Pickering | Adding temporal characteristics to an existing database |
US7062628B2 (en) * | 2004-09-28 | 2006-06-13 | Hitachi, Ltd. | Method and apparatus for storage pooling and provisioning for journal based storage and recovery |
US7801882B2 (en) * | 2004-10-01 | 2010-09-21 | Microsoft Corporation | Optimized constraint and index maintenance for non updating updates |
-
2006
- 2006-12-26 JP JP2006350653A patent/JP4432087B2/ja not_active Expired - Fee Related
-
2007
- 2007-12-17 US US11/957,957 patent/US8001098B2/en not_active Expired - Fee Related
- 2007-12-20 CN CN2007101600258A patent/CN101211362B/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102667733A (zh) * | 2009-10-30 | 2012-09-12 | 株式会社Ntt数据 | 数据访问装置、数据访问方法以及数据访问程序 |
CN102279873A (zh) * | 2010-06-11 | 2011-12-14 | 微软公司 | 对数据、模式,以及应用程序的统一并发变更 |
CN108228893A (zh) * | 2018-02-05 | 2018-06-29 | 广州中元软件有限公司 | 一种关系数据库数据持久化优化和排队方法 |
Also Published As
Publication number | Publication date |
---|---|
US20080154900A1 (en) | 2008-06-26 |
JP4432087B2 (ja) | 2010-03-17 |
US8001098B2 (en) | 2011-08-16 |
CN101211362B (zh) | 2010-07-07 |
JP2008165272A (ja) | 2008-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101211362B (zh) | 用于数据库更新管理的系统和方法 | |
KR100513551B1 (ko) | 주문 제작 컴퓨터시스템을 위한 소프트웨어 설치 및 테스트방법및 시스템 | |
CN100452030C (zh) | 用于在数据库恢复期间快照查询的系统和方法 | |
US6742141B1 (en) | System for automated problem detection, diagnosis, and resolution in a software driven system | |
US8219987B1 (en) | Optimized virtual machine specification for provisioning application specific runtime environment | |
US8667459B2 (en) | Application specific runtime environments | |
CN102057355B (zh) | 同步虚拟机和应用程序生存周期 | |
US5627967A (en) | Automated generation on file access control system commands in a data processing system with front end processing of a master list | |
US20100250730A1 (en) | Automated license reconciliation for deployed applications | |
US8918783B2 (en) | Managing virtual computers simultaneously with static and dynamic dependencies | |
CN111356996B (zh) | 用于版本验证的系统和计算机实现的方法 | |
US11086618B2 (en) | Populating a software catalogue with related product information | |
KR19990023212A (ko) | 주문 제작 컴퓨터시스템을 위한 소프트웨어 설치 및 테스트방법 및 시스템 | |
CN1975655B (zh) | 用于管理对存储装置的访问的方法和设备 | |
EP1540516A1 (en) | Methods and systems for archiving data | |
CN103309751A (zh) | 提供文件系统功能的终端的设备和方法 | |
WO2000068793A1 (en) | System for automated problem detection, diagnosis, and resolution in a software driven system | |
US20040153748A1 (en) | Method for configuring a data processing system for fault tolerance | |
CN102197367A (zh) | 映象过程 | |
CN101523352A (zh) | 用于并发控制的持久锁/资源 | |
US6925345B2 (en) | Method and system for manufacture of information handling systems from an image cache | |
JP4060890B2 (ja) | 階層化ドライバ入出力システム内の複数ドライバによる入出力要求の再処理を可能にするファイル・システム・プリミティブ | |
US20030055846A1 (en) | Method and system for providing field replaceable units in a personal computer | |
CN117976159A (zh) | 一种并行融合的drg分析方法及相应系统 | |
US20060080334A1 (en) | Method for configuration file management in a computing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100707 Termination date: 20181220 |
|
CF01 | Termination of patent right due to non-payment of annual fee |