CN102301368B - 用于保持数据完整性的设备 - Google Patents
用于保持数据完整性的设备 Download PDFInfo
- Publication number
- CN102301368B CN102301368B CN201080005695.2A CN201080005695A CN102301368B CN 102301368 B CN102301368 B CN 102301368B CN 201080005695 A CN201080005695 A CN 201080005695A CN 102301368 B CN102301368 B CN 102301368B
- Authority
- CN
- China
- Prior art keywords
- lock
- response
- instance
- file
- data
- 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.)
- Active
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/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
- G06F16/1774—Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供了一种在软件组件的多个实例各自包括能够访问共享资源的多个进程的环境中保持数据完整性的设备。软件组件的每个实例是“活动的”实例(被允许更新数据)或“待命的”实例(不被允许更新数据)。在任何时间点,环境不包括多于一个活动实例,然而,可以存在多于一个待命实例。优选地,在活动实例完全故障(即,与当前活动实例的每个进程相关联的故障)的事件中,单个待命实例能够变为新的活动实例。
Description
技术领域
本发明涉及用于保持数据完整性的设备。
背景技术
在“高度可用的”商业计算环境中,硬件和软件技术的组合被典型地组合以提供关键程序从硬件和软件故障的快速恢复,所述环境被设计用于消除单点故障。
例如,典型的高度可用的环境通常包括多个共享诸如磁盘驱动器的资源的松散连接的计算机。关键程序能够在一组计算机中的任何一台上运行。而且,硬件资源(例如,磁盘驱动器)在计算机之间共享。导致关键程序的不可用性的硬件或软件故障能够通过将其移至另一台计算机由此恢复它的可用性而得到补救。
典型的高度可用的环境在历史上是由被称为高度可用性(HA)软件的软件所管理的。典型地,HA软件通过监视组件并承担响应于故障而移动资源的责任,提供对硬件和软件组件的管理。
这样的高度可用的环境的示例(100)在图1A中示出,并包括具有第一HA软件(117)和高度可用的软件组件(110)的第一实例的第一计算机(105),其中软件组件(110)可操作用来访问共享资源,例如,包括数据的共享磁盘(120)。
高度可用的环境(100)还包括具有可操作用来与第一HA软件(117)通信的第二HA软件(119)的第二计算机(115)。
在示例中,第一计算机(105)的第一实例(110)访问共享磁盘(120)。第一HA软件(117)具有共享磁盘(120)的“所有权”。
在第一计算机(105)的故障的事件中,第二HA软件(119)可操作用来检测故障(例如,响应于第二HA软件(119)不再能够与第一HA软件(117)通信)。
参考图1B,作为响应,第二HA软件(119)可操作用来终止第一实例(110),将共享磁盘(120)的所有权移至其本身,并接着在第二计算机(115)上开启(start)软件组件(125)的第二实例。第二计算机(115)接着可操作用来从第一计算机(105)“接管”责任,并且在第二计算机(115)上运行的第二实例(125)能够访问共享磁盘(120)。
图1A和1B的环境(100)提供了软件组件的有保证的单个激活——也即,软件组件的两个实例不可能在不同的计算机上同时开启。如果软件组件的两个实例要在不同的计算机上同时开启,则这可能引起诸如共享磁盘(120)上的数据的损坏的错误。
虽然上述环境(100)为关键程序的高度可用性和关键程序的有保证的单个激活作了准备,但是特殊硬件(例如,必须被具体地配置以使其能够被多个计算机访问的共享磁盘(120))和软件(例如,HA软件)是需要的。
凭借更多的现代技术,可以在不需要特殊的硬件和/或软件的情况下获得高度可用性和有保证的单个激活。
这样的环境的代表(200)在图2中示出,其中环境(200)包括相同软件组件的两个实例。更具体地,环境(200)包括具有高度可用的软件组件(210)的第三实例的第三计算机(205),其中第三实例(210)可操作用来访问共享资源,例如,包括数据的共享磁盘(220)。环境(200)还包括具有高度可用的软件组件(225)的第四实例的第四计算机(215),其中第四实例(225)也可操作用来访问共享磁盘(220)。
在图1A和1B的示例中,软件组件不需要负起有保证的单个激活的责任,因为环境(100)包括HA软件。因为图2的环境(200)不包括HA软件,所以软件组件需要能够确保共享磁盘上的数据不会通过来自两个计算机(205、215)的同时的未协调的访问而被损坏。
如果软件组件的每个实例分别由单个进程组成,并且如果共享磁盘上的数据仅包含在少量文件中,则使用对共享磁盘上的数据文件的文件锁定以确保数据的完整性被保持是充分的。
例如,排他的文件锁定能够用于确保一次只有软件组件的一个运行实例读取或写入数据文件。在更复杂的方法中,数据文件的区域的“范围锁定”可用于确保软件组件的多个实例不会通过未协调的访问而使数据文件损坏。
当软件组件的复杂度增加时,需要进一步的改进。
发明内容
根据优选实施例的第一方面,提供了一种用于保持数据完整性的设备,用于在包括具有第一多个进程的第一软件实例、以及第二软件实例的环境中使用,其中所述第一软件实例和第二软件实例各自可操作用来访问共享数据,并且其中,与所述共享数据相关联的文件用于锁定,所述设备包括:第一锁组件,用于响应于第一多个进程的第一父进程不持有(hold)第一分层(hierarchical)文件锁,代表第二实例获得所述第一分层文件锁;部件,用于响应于代表所述第二实例获得第一分层文件锁,激活第二锁组件,其中,所述第二锁组件可操作用来响应于第一多个进程均不持有作为第一分层文件锁的子锁(child)的第二分层文件锁,代表所述第二实例获得第二分层文件锁;以及部件,用于响应于由第一锁组件获得所述第一分层文件锁,并响应于由第二锁组件获得所述第二分层文件锁,防止第一实例访问共享数据并允许所述第二实例访问共享数据。
根据优选实施例的第二方面,提供了一种保持数据完整性的方法,用于在包括具有第一多个进程的第一软件实例、以及第二软件实例的环境中使用,其中所述第一软件实例和第二软件实例各自可操作用来访问共享数据,并且其中,与所述共享数据相关联的文件用于锁定,所述方法包括:响应于第一多个进程的第一父进程不持有第一分层文件锁,代表第二实例获得所述第一分层文件锁;响应于代表所述第二实例获得第一分层文件锁、以及第一多个进程均不持有作为第一分层文件锁的子锁的第二分层文件锁,代表所述第二实例获得第二分层文件锁;以及响应于获得所述第一分层文件锁和所述第二分层文件锁,防止第一实例访问共享数据并允许所述第二实例访问共享数据。
根据优选实施例的第三方面,提供了一种计算机程序,包括程序代码组件,其被适配为当所述程序在计算机上运行时执行上述方法的所有步骤。
附图说明
现在将参考以下附图中图示的本发明的优选实施例,仅通过示例的方式来描述本发明:
图1A是现有技术的高度可用的第一环境的框图;
图1B是在高度可用的第一环境中的计算机故障的事件中、图1的现有技术的高度可用的第一环境的框图;
图2是现有技术的高度可用的第二环境的框图;
图3是根据优选实施例的高度可用的第二环境的框图;
图4是示出与图3的环境的父进程相关联的进程中涉及的操作步骤的流程图;
图5是示出与图3的环境的子进程相关联的进程中涉及的操作步骤的流程图;
图6A是与第一父进程相关联的组件的框图;
图6B是与第二父进程相关联的组件的框图;
图7A是与图6A的父进程的第一子进程相关联的组件的框图;以及
图7B是与图6A的父进程的第二子进程相关联的组件的框图。
具体实施方式
在软件组件的多个实例各自包括能够访问共享资源的数据的多个进程的环境中,需要改进的方法。
在这里的示例中,软件组件的多个实例能够在多台计算机上同时开启。每个实例可操作用来访问环境中的数据,并且每个实例包括一个或多个操作系统进程。
软件组件的每个实例是“活动的(active)”实例(被允许更新数据)或“待命的(standby)”实例(不被允许更新数据)。
在任何时间点,环境不包括多于一个活动实例——然而,可以存在多于一个待命实例——这确保关键程序的单个激活。
优选地,在活动实例的完全故障(即,与当前的活动实例的每个进程相关联的故障)的事件中,单个待命实例可变为新的活动实例。更优选地,活动实例的局部故障(即,与当前的活动实例的进程的子集相关联、而不是与当前的活动实例的每个进程相关联的故障)防止单个待命实例变为新的活动实例。
现在将参考附图描述优选实施例的实现。
图3描绘了高度可用的环境的代表(300),其包括具有高度可用的软件组件(310)的第五实例的第五计算机(305)。
第五实例(310)包括多个进程(311、312和313),每个进程都可操作用来访问共享资源,例如,包括数据的共享磁盘(320)。在示例中,共享磁盘(320)与网络文件系统相关联。
第一进程(311)是具有两个子进程(也就是,第二进程(312)和第三进程(313))的父进程,其中父进程启动子进程。
环境(300)还包括具有高度可用的软件组件(325)的第六实例的第六计算机(315),其中第六实例(325)包括多个进程(326、327和328),每个进程都可操作用来访问共享磁盘(320)。
第四进程(326)是具有两个子进程(也就是,第五进程(327)和第六进程(328))的父进程,其中父进程启动子进程。
图6A是与第一进程(311)相关联的组件的框图,其中第一进程(311)包括第一监视器组件(600)和第一锁组件(605),它们每个都可操作用来访问共享磁盘(320)。第一进程(311)还包括第一启动器组件(610)。
图6B是与第四进程(326)相关联的组件的框图,其中第四进程(326)包括第二监视器组件(615)和第二锁组件(620),它们每个都可操作用来访问共享磁盘(320)。第四进程(326)还包括第二启动器组件(625)。
图7A是与第二进程(312)相关联的组件的框图,其中第二进程(312)包括第三监视器组件(700)和第三锁组件(705),它们每个都可操作用来访问共享磁盘(320)。第二进程(312)还包括第一终止器(710)。
图7B是与第三进程(313)相关联的组件的框图,其中第三进程(313)包括第四监视器组件(715)和第四锁组件(720),它们每个都可操作用来访问共享磁盘(320)。第三进程(313)还包括第二终止器(725)。
优选地,父进程和子进程中的每个都可操作用来访问一个或多个锁。
存储在共享磁盘(320)上的文件用于锁定。
在这里的示例中,提供了可以被锁定在排他模式中的主锁和可以被锁定在排他或共享模式中的活动锁。
本发明可以用建议的或强制的锁来实现。
优选地,锁包括与实例相关联的标识符,其中所述实例的父进程持有所述锁。在一个示例中,将标识符存储在共享磁盘(320)中的用于锁定的文件中。在另一个示例中,将标识符存储在与用于锁定的文件分离的文件中。
现在将参考图3至8描述示例。
在示例中,第一进程(311)开始执行,使得第五实例(310)开启。
参考图4,第一进程(311)的第一监视器组件(600)监视主锁,从而确定(步骤400)是否可以获得锁的排他模式。
第一监视器组件(600)确定可以获得主锁上的排他模式,并且,作为响应,第一锁组件(605)获得主锁上的排他模式。优选地,与第一进程(311)相关联的标识符与主锁相关联。
第一进程(311)的第一监视器组件(600)监视活动锁,从而确定是否可以获得锁的排他模式。
第一监视器组件(600)确定可以获得活动锁上的排他模式,并且,作为响应,第一锁组件(605)获得活动锁上的所述排他模式。优选地,与第一进程(311)相关联的标识符与活动锁相关联。
作为响应,第五实例(310)变为活动实例(注意,第五实例(310)变为唯一的活动实例)。
作为响应,第一锁组件(605)解锁活动锁上的排他模式,并接着将活动锁锁定在共享模式中。
第一启动器组件(610)启动一个或多个子进程。在这里的示例中,第一启动器组件(610)启动第二进程(312)和第三进程(313)。
可替代地,第二进程(312)和第三进程(313)中的至少一个可以被独立地启动(例如,通过与第一进程(311)分离的另一个进程)。
优选地,第二进程和第三进程不做任何工作,直到它们证实了活动锁的持有者是第一进程为止——第三监视器组件(700)和第四监视器组件(715)中的每一个都检查与活动锁相关联的标识符,从而分别确定标识符是否与第二进程和第三进程的父进程相关联。如果标识符不与父进程相关联,则第二进程和第三进程假定父进程已经失败并且它们也必须终止——下面将更详细地描述终止过程。
在该示例中,标识符与父进程(也就是,第一进程(311))相关联。作为响应,参考图5,一旦启动,第三监视器组件(700)和第四监视器组件(715)中的每一个就都监视活动锁,从而确定(步骤500)是否可以获得锁的共享模式。
第三监视器组件(700)确定可以获得活动锁上的共享模式,并且,作为响应,第三锁组件(705)获得(步骤505)活动锁上的所述共享模式。
第四监视器组件(715)确定是否可以获得活动锁上的共享模式,并且,作为响应,第四锁组件(720)获得(步骤505)活动锁上的所述共享模式。
因此,第一进程(311)以排他模式持有主锁,并且第一进程(311)、第二进程(312)和第三进程(313)中的每一个都以共享模式持有活动锁。
结果,另一单个实例不能变为新的活动实例,并且第一进程(311)、第二进程(312)和第三进程(313)中的每一个都能够安全地访问共享磁盘中的数据。应该理解,由于第一进程(311)、第二进程(312)和第三进程(313)与同一实例(也就是,第五实例(310))相关联,所以可以使用已知的机制来协调第一进程(311)、第二进程(312)和第三进程(313)对共享磁盘(320)的访问。
参考图4,在该示例中,第四进程(326)由第六实例(325)启动。
第四进程(326)的第四监视器组件(615)监视主锁,从而确定(400)是否可以获得锁的排他模式。
第四监视器组件(615)确定不能获得主锁上的排他模式——这是因为主锁的排他模式已经被第一进程(311)获得。
有利地,第四监视器组件(615)可使用与是否可以获得主锁的排他模式相关联的确定,从而还确定另一个实例是否是活动的。如果第四监视器组件(615)不能获得主锁的排他模式,则第四监视器组件(615)确定另一个实例已经持有主锁的排他模式。
在步骤430,第六实例(325)确定它是否将重试变为新的活动实例。响应于第六实例(325)不重试(步骤435)变为新的活动实例,图4的进程结束。
响应于第六实例(325)重试变为新的活动实例,第六实例(325)被标记为待命实例(步骤435)。
在该示例中,第六实例(325)重试(步骤435)变为新的活动实例,并且接着,第四监视器组件(615)监视主锁,从而确定(步骤400)是否可以获得锁的排他模式。
第四监视器组件(615)确定可以获得主锁上的排他模式——这是因为在该示例中,主锁的排他模式已经被第一进程(311)的锁组件(605)释放(例如,被显式地释放,因为第一进程(311)已经完成工作;被隐式地释放,因为第一进程(311)已经失败)。
接着,第四锁组件(720)获得(步骤405)主锁上的排他模式。
现在,第六实例(325)尝试变为新的活动实例。
作为响应,第四监视器组件(615)接着监视活动锁,从而确定(步骤410)是否可以获得锁的排他模式。
第一监视器组件(600)确定不能获得主锁上的排他模式——在这里的示例中,这是因为第二进程(312)或第三进程(313)中的至少一个仍然以共享模式持有活动锁。
接着,第四锁组件(720)释放主锁上的排他模式,并且第六实例(325)仍然是(步骤430)待命实例。
应该理解,优选实施例提供了“分层的”锁,也就是,主锁和活动锁,其中,首先获得主锁,并且接着可以获得活动锁。通过使用分层锁,本发明通过对在其期间当前活动实例的父进程可能已经终止、但相关联的子进程尚未终止的定时窗口(timing window)负责而提供了可靠性——这导致了主锁上的排他模式被父进程释放且活动锁上的共享模式被子进程释放。因此,即使第四进程(326)能够获得主锁上的排他模式(即,因为第四进程(326)由于第二进程(312)或第三进程(313)中的至少一个仍然以共享模式持有活动锁而不能获得主锁上的排他模式),第六实例(325)也仍然是待命实例。
响应于第六实例(325)不重试(步骤435)变为新的活动实例,进程结束。
在该示例中,响应于第六实例(325)重试(步骤435)变为新的活动实例,第四监视器组件(615)监视主锁,从而确定(步骤400)是否可以获得锁的排他模式。
第四监视器组件(615)确定可以获得主锁上的排他模式——在该示例中,这是因为主锁的排他模式已经被第一进程(311)的第一锁组件(605)释放。
接着,第四锁组件(720)获得主锁上的排他模式。
第四监视器组件(615)接着监视活动锁,从而确定(步骤410)是否可以获得锁的排他模式。
第一监视器组件(600)确定可以获得活动锁上的排他模式——在这里的示例中,这是因为第二进程(312)和第三进程(313)都不再以共享模式持有活动锁。
第二进程(312)和第三进程(313)都不再以共享模式持有活动锁的事件可由以下情况引起:例如,第二进程和第三进程中的每一个都被显式地或隐式地终止;或者第一进程(311)(显式地或者由于故障而隐式地)终止,并且接着,第三监视器组件(700)和第四监视器组件(715)中的每一个都确定第一进程(311)已经通过使用轮询功能(步骤510)而终止——接着,第二进程和第三进程的第一终止器(710)和第二终止器(725)中的每一个分别终止(步骤520)并释放共享模式中的活动锁。应该理解,如果第一进程(311)未终止,则子进程可以继续工作(步骤515)。
响应于第一监视器组件(600)确定可以获得活动锁上的排他模式,第四锁组件(720)获得活动锁上的所述排他模式。
作为响应,第六实例(325)变为新的活动实例。
应该理解,在上面的示例中,由于没有第五实例(310)(也就是,之前的活动实例)的子进程正在运行,所以第四锁组件(720)可操作用来获得活动锁上的排他模式。而且,由于与第五实例(310)相关联的进程(311、312和313)中的每一个都不在运行,所以第四锁组件(720)可操作用来获得主锁和活动锁中的每一个上的排他模式。
在另一个实现中,提供了多个活动锁。优选地,如果主锁上的排他模式已经被释放了,则活动实例的所有进程必须释放所有的所述多个活动锁,从而使另一实例能够试图变为新的活动实例。
接着,第四锁组件(720)解锁活动锁上的排他模式,并接着将活动锁锁定在共享模式中。
第二启动器组件(625)可以启动一个或多个子进程,例如,第五进程(327)和第六进程(328)。
有利地,在每个实例可以包括多个进程的环境中,本发明考虑到实例的高度可用性(例如,实例可变为新的活动实例)和有保证的单个激活,以便一次只有软件组件的一个实例可以访问共享数据(例如,通过使用“分层”锁定——例如,排他的主锁和排他的/共享的活动锁)。
有利地,实例不需要配备另一个实例的位置,并且实例之间的网络心跳(network heartbeating)不需要确保单个激活。这是因为可以使用文件锁定来保证单个激活。有利地,待命实例可以在不需要知道与故障的实例相关联的数据(例如,与故障的实例在哪里运行相关联的位置)的情况下取代故障的实例。
有利地,不需要HA软件。这增加了可用性并允许更简单地引入待命实例。
而且,持有锁的进程的标识符与锁的关联是有利的,例如,如果已经存在网络中断。在中断之后,父进程可以重新获得该锁并查询标识符,以确定标识符是否是它自己的。如果标识符是它自己的,则进程知道它在中断之前持有该锁、以及在中断期间没有其它实例获得该锁。如果标识符不是它自己的,则进程知道在中断期间另一实例必定已经获得了该锁—-在这种情况下,父进程和与该实例相关联的其它进程必须终止,以保证完整性(并且如果需要,则父进程可以重新执行并试图获得该锁)。
应该理解,如果存在多个待命实例,则优选地,当当前活动实例不再是活动实例时,实施选择进程以选择单个待命实例变为新的活动实例,例如,其中,所述多个待命实例“竞争(race)”以变为新的活动实例;其中,所述多个待命实例判定它们中的哪一个变为新的活动实例。可替代地,可以使用另外的锁文件以协调和监视待命实例。
Claims (6)
1.一种用于保持数据完整性的设备,用于在包括第二软件实例、以及具有第一多个进程的第一软件实例的环境中使用,其中所述第一软件实例和所述第二软件实例各自可操作用来访问共享数据,并且其中,与所述共享数据相关联的文件被用于锁定,所述设备包括:
第一锁组件,用于响应于所述第一多个进程的第一父进程不持有第一分层文件锁,代表第二实例获得所述第一分层文件锁;
部件,用于响应于代表所述第二实例获得所述第一分层文件锁,激活第二锁组件,其中,所述第二锁组件可操作用来响应于所述第一多个进程均不持有作为所述第一分层文件锁的子锁的第二分层文件锁,代表所述第二实例获得所述第二分层文件锁;以及
部件,用于响应于由所述第一锁组件获得所述第一分层文件锁,并响应于由所述第二锁组件获得所述第二分层文件锁,防止第一实例访问所述共享数据并允许所述第二实例访问所述共享数据。
2.如权利要求1所述的设备,其中所述第二锁组件可操作用来响应于第二监视器组件确定已经由所述第一多个进程中的至少一个获得了所述第二分层文件锁,防止代表所述第二实例获得所述第二分层文件锁。
3.如权利要求1所述的设备,其中所述第二软件实例包括第二多个进程,并且其中所述第二锁组件可操作用来代表所述第二多个进程中的至少一个获得所述第二分层文件锁。
4.如权利要求1所述的设备,还包括第一监视器组件,用于确定所述第一分层文件锁是否能够被获得。
5.如权利要求1所述的设备,还包括第二监视器组件,用于确定所述第二分层文件锁是否能够被获得。
6.一种用于保持数据完整性的方法,用于在包括第二软件实例、以及具有第一多个进程的第一软件实例的环境中使用,其中所述第一软件实例和所述第二软件实例各自可操作用来访问共享数据,并且其中,与所述共享数据相关联的文件被用于锁定,所述方法包括:
响应于所述第一多个进程的第一父进程不持有第一分层文件锁,代表第二实例获得所述第一分层文件锁;
响应于代表所述第二实例获得所述第一分层文件锁、以及所述第一多个进程均不持有作为所述第一分层文件锁的子锁的第二分层文件锁,代表所述第二实例获得所述第二分层文件锁;以及
响应于获得所述第一分层文件锁以及所述第二分层文件锁,防止第一实例访问所述共享数据并允许所述第二实例访问所述共享数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP09152290 | 2009-02-06 | ||
EP09152290.4 | 2009-02-06 | ||
PCT/EP2010/050829 WO2010089222A1 (en) | 2009-02-06 | 2010-01-26 | An apparatus for maintaining data integrity |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102301368A CN102301368A (zh) | 2011-12-28 |
CN102301368B true CN102301368B (zh) | 2014-01-22 |
Family
ID=42104432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080005695.2A Active CN102301368B (zh) | 2009-02-06 | 2010-01-26 | 用于保持数据完整性的设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10372682B2 (zh) |
JP (1) | JP5466717B2 (zh) |
KR (1) | KR101581072B1 (zh) |
CN (1) | CN102301368B (zh) |
WO (1) | WO2010089222A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8561080B2 (en) * | 2011-04-26 | 2013-10-15 | Sap Ag | High-load business process scalability |
US9053141B2 (en) * | 2011-10-31 | 2015-06-09 | International Business Machines Corporation | Serialization of access to data in multi-mainframe computing environments |
US9032484B2 (en) | 2011-10-31 | 2015-05-12 | International Business Machines Corporation | Access control in a hybrid environment |
US9741040B2 (en) | 2013-08-30 | 2017-08-22 | Sap Se | High-load business process scalability |
US9722908B2 (en) | 2013-10-17 | 2017-08-01 | International Business Machines Corporation | Problem determination in a hybrid environment |
US10666443B2 (en) * | 2016-10-18 | 2020-05-26 | Red Hat, Inc. | Continued verification and monitoring of application code in containerized execution environment |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5414839A (en) * | 1992-06-19 | 1995-05-09 | Digital Equipment Corporation | Hybrid lock escalation and de-escalation protocols |
US5566319A (en) * | 1992-05-06 | 1996-10-15 | International Business Machines Corporation | System and method for controlling access to data shared by a plurality of processors using lock files |
US5692178A (en) * | 1992-08-20 | 1997-11-25 | Borland International, Inc. | System and methods for improved file management in a multi-user environment |
CN1809815A (zh) * | 2003-05-01 | 2006-07-26 | 国际商业机器公司 | 管理锁定和事务 |
US7120631B1 (en) * | 2001-12-21 | 2006-10-10 | Emc Corporation | File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator |
CN101236509A (zh) * | 2007-01-30 | 2008-08-06 | 国际商业机器公司 | 用于管理锁的系统和方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5115499A (en) * | 1986-05-14 | 1992-05-19 | Sequoia Systems, Inc. | Shared computer resource allocation system having apparatus for informing a requesting computer of the identity and busy/idle status of shared resources by command code |
US4819159A (en) * | 1986-08-29 | 1989-04-04 | Tolerant Systems, Inc. | Distributed multiprocess transaction processing system and method |
US5319780A (en) * | 1987-10-19 | 1994-06-07 | International Business Machines Corporation | System that implicitly locks a subtree or explicitly locks a node based upon whether or not an explicit lock request is issued |
JPH01207833A (ja) * | 1988-02-16 | 1989-08-21 | Fujitsu Ltd | 排他制御方式 |
US5355477A (en) * | 1991-12-23 | 1994-10-11 | International Business Machines Corporation | Method for updating a block using record-level locks by committing the update if the block has not been updated by another process otherwise spinning |
CA2213371C (en) * | 1996-08-28 | 2003-01-28 | Hitachi, Ltd. | Process executing method and resource accessing method in computer system |
US5895494A (en) * | 1997-09-05 | 1999-04-20 | International Business Machines Corporation | Method of executing perform locked operation instructions for supporting recovery of data consistency if lost due to processor failure, and a method of recovering the data consistency after processor failure |
US6240414B1 (en) | 1997-09-28 | 2001-05-29 | Eisolutions, Inc. | Method of resolving data conflicts in a shared data environment |
US6026401A (en) * | 1997-10-14 | 2000-02-15 | International Business Machines Corporation | Locking tool data objects in a framework environment |
US6178421B1 (en) * | 1998-06-05 | 2001-01-23 | International Business Machines Corporation | Method of performing parallel cleanup of segments of a lock structure |
US8099758B2 (en) * | 1999-05-12 | 2012-01-17 | Microsoft Corporation | Policy based composite file system and method |
US6625602B1 (en) * | 2000-04-28 | 2003-09-23 | Microsoft Corporation | Method and system for hierarchical transactions and compensation |
JP2002123412A (ja) * | 2000-10-16 | 2002-04-26 | Toshiba Corp | ファイルアクセス制御システム |
US6944133B2 (en) * | 2001-05-01 | 2005-09-13 | Ge Financial Assurance Holdings, Inc. | System and method for providing access to resources using a fabric switch |
US6687709B2 (en) * | 2001-06-29 | 2004-02-03 | International Business Machines Corporation | Apparatus for database record locking and method therefor |
US7904804B1 (en) * | 2001-11-20 | 2011-03-08 | Vignette Software Llc | System and method for web sites in hierarchical relationship to share assets |
US7814488B1 (en) * | 2002-09-24 | 2010-10-12 | Oracle America, Inc. | Quickly reacquirable locks |
US7284151B2 (en) * | 2003-07-21 | 2007-10-16 | Oracle International Corporation | Conditional data access after database system failure |
US7383368B2 (en) * | 2003-09-25 | 2008-06-03 | Dell Products L.P. | Method and system for autonomically adaptive mutexes by considering acquisition cost value |
US8103642B2 (en) * | 2006-02-03 | 2012-01-24 | Oracle International Corporation | Adaptive region locking |
US7409525B1 (en) * | 2006-03-29 | 2008-08-05 | Emc Corporation | Implicit locks in a shared virtual memory system |
US20090307707A1 (en) * | 2008-06-09 | 2009-12-10 | International Business Machines Corporation | System and method for dynamically adaptive mutual exclusion in multi-threaded computing environment |
US8510281B2 (en) * | 2008-12-18 | 2013-08-13 | Sap Ag | Ultimate locking mechanism |
US8510334B2 (en) * | 2009-11-05 | 2013-08-13 | Oracle International Corporation | Lock manager on disk |
-
2010
- 2010-01-26 WO PCT/EP2010/050829 patent/WO2010089222A1/en active Application Filing
- 2010-01-26 KR KR1020117020532A patent/KR101581072B1/ko active IP Right Grant
- 2010-01-26 CN CN201080005695.2A patent/CN102301368B/zh active Active
- 2010-01-26 JP JP2011548640A patent/JP5466717B2/ja active Active
- 2010-02-05 US US12/700,861 patent/US10372682B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5566319A (en) * | 1992-05-06 | 1996-10-15 | International Business Machines Corporation | System and method for controlling access to data shared by a plurality of processors using lock files |
US5414839A (en) * | 1992-06-19 | 1995-05-09 | Digital Equipment Corporation | Hybrid lock escalation and de-escalation protocols |
US5692178A (en) * | 1992-08-20 | 1997-11-25 | Borland International, Inc. | System and methods for improved file management in a multi-user environment |
US7120631B1 (en) * | 2001-12-21 | 2006-10-10 | Emc Corporation | File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator |
CN1809815A (zh) * | 2003-05-01 | 2006-07-26 | 国际商业机器公司 | 管理锁定和事务 |
CN101236509A (zh) * | 2007-01-30 | 2008-08-06 | 国际商业机器公司 | 用于管理锁的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20100205164A1 (en) | 2010-08-12 |
JP5466717B2 (ja) | 2014-04-09 |
JP2012517057A (ja) | 2012-07-26 |
US10372682B2 (en) | 2019-08-06 |
WO2010089222A1 (en) | 2010-08-12 |
KR20110114699A (ko) | 2011-10-19 |
CN102301368A (zh) | 2011-12-28 |
KR101581072B1 (ko) | 2015-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102301368B (zh) | 用于保持数据完整性的设备 | |
US20040205148A1 (en) | Method for operating a computer cluster | |
KR100637775B1 (ko) | 클러스터형 컴퓨터 시스템의 자원 대상 작용 수행 방법 및 장치, 클러스터형 컴퓨터 시스템 및 그의 수행을 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독가능 기록 매체 | |
US6243744B1 (en) | Computer network cluster generation indicator | |
US7266722B2 (en) | System and method for efficient lock recovery | |
US5095421A (en) | Transaction processing facility within an operating system environment | |
US5664088A (en) | Method for deadlock recovery using consistent global checkpoints | |
US9514160B2 (en) | Automatic recovery of a failed standby database in a cluster | |
CN100485676C (zh) | 文件系统串行化重新初始化装置、方法和系统 | |
CN105700939A (zh) | 一种分布式系统中多线程同步的方法和系统 | |
CN109558218A (zh) | 一种基于Redis的分布式业务数据锁实现方法 | |
CN102932164A (zh) | 群集客户端故障转移 | |
CN112039970B (zh) | 一种分布式业务锁服务方法、服务端、系统及存储介质 | |
US5226176A (en) | System for selectively aborting operation or waiting to load required data based upon user response to non-availability of network load device | |
CN107992491A (zh) | 一种分布式文件系统、数据访问和数据存储的方法及装置 | |
CN107508694A (zh) | 一种集群内的节点管理方法及节点设备 | |
JPH0423160A (ja) | 計算機システム | |
CN108733477B (zh) | 数据集群化处理的方法、装置及设备 | |
US7162497B2 (en) | System and method for shared directory management | |
US6493746B1 (en) | Multi-operator network management system and method using transaction processing | |
CN117271227A (zh) | 数据库集群主节点切换方法、系统及管控平台 | |
CN116319280A (zh) | 一种基于kubernetes分布式锁选举主备节点的方法 | |
CN109587218A (zh) | 一种集群选举的方法和装置 | |
CN107181608A (zh) | 一种恢复服务及性能提升的方法及运维管理系统 | |
CN116545845B (zh) | 生产服务器冗余备份装置、系统及方法 |
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 |