CN102597995B - 同步数据库和非数据库资源 - Google Patents

同步数据库和非数据库资源 Download PDF

Info

Publication number
CN102597995B
CN102597995B CN201080049531.XA CN201080049531A CN102597995B CN 102597995 B CN102597995 B CN 102597995B CN 201080049531 A CN201080049531 A CN 201080049531A CN 102597995 B CN102597995 B CN 102597995B
Authority
CN
China
Prior art keywords
file
entry
action
isp
delete
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.)
Expired - Fee Related
Application number
CN201080049531.XA
Other languages
English (en)
Other versions
CN102597995A (zh
Inventor
E.M.道森
K.戈德史密斯
B.柯基尔
C.S.道森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN102597995A publication Critical patent/CN102597995A/zh
Application granted granted Critical
Publication of CN102597995B publication Critical patent/CN102597995B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1865Transactional file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种用于同步数据库和非数据库资源的系统,包括用于发送请求到服务提供者以执行动作的应用。该服务器提供者接收该请求并且执行该动作,该动作不在提交协调下。该服务提供者还将条目插入到动作撤销表中以撤销该动作,并且使得插入是永久性的。代表应用,服务提供者然后从动作撤销表删除该条目。该应用然后可以配置为执行以下之一:(1)通过执行COMMIT使得删除是永久性的;以及(2)通过执行ROLLBACK回滚删除。稍后,在条目保留在动作撤销表中的情况下,服务提供者可以撤销动作。在此还公开了对应的方法和制作产品(即,计算机可读介质)。

Description

同步数据库和非数据库资源
技术领域
本发明涉及数据库和非数据库资源,更具体地,涉及用于对数据库和非数据库资源执行提交(commit)协调的装置和方法。
背景技术
数据库事务是数据库管理系统(DBMS)或与数据库相关联的其他应用执行的工作的单元。通常使用“全有或全无(all-or-nothing)”方法执行事务,意味着与事务相关联的全部工作单元必须完成或全部不完成。DBMS或应用中内置的“提交协调器”可以确保事务全部完成或全部不完成。
例如,考虑其中应用使用“全有或全无”方法执行若干步骤的金融事务。具体地,应用使用以下(以伪代码列出的)步骤将资金从支票账户转移到储蓄账户:
开始事务
记入借方支票账户
记入贷方储蓄账户
更新历史日志
提交事务
三个步骤全部必须完成,或者全部不完成。否则,将丢失数据完整性。因为事务内的各步骤作为整体处理,所以事务可以定义为不可分割的工作单元。
事务可以按照两种不同方式之一终止,即,COMMIT(提交)或ROLLBACK(回滚)语句。当事务以COMMIT语句(以下称为“COMMIT”)结束时,使得由事务指定的数据修改在数据库中是永久的。另一方面,如果事务中的一个或多个数据修改失败,则ROLLBACK语句(以下称为“ROLLBACK”)可以用于撤销该事务中的所有语句的效果。例如,如果在以上列出的步骤“记入贷方储蓄账户”期间磁盘驱动器崩溃,则可以执行ROLLBACK语句,以便撤销由“记入借方支票账户”语句进行的数据修改。尽管该事务失败,但数据完整性将保持完整以保持账户收支平衡。
不幸的是,应用可能执行落入应用的正常“提交协调”之外的某些动作或使得这样的某些动作发生。例如,考虑这样的应用,其作为事务的一部分调用服务提供者执行某动作,如在文件系统中存储大图像文件。该服务提供者和文件系统可能不知道该事务。因此,服务提供者执行的动作可能落入该应用的“提交协调”之外。换句话说,如果该应用最终执行ROLLBACK,则该应用可能不能撤销由该服务提供者执行的动作。类似地,服务提供者可能不知道ROLLBACK,因此也将不能采取行动来撤销该动作。使用上述示例,响应于ROLLBACK,这样的场景可能导致没有撤销(即,从文件系统中删除)的文件系统中的孤立文件。
鉴于以上,需要一种装置和方法,用于撤销由在应用的正常提交协调外动作的服务提供者或其它实体执行的动作。这样的装置和方法将理想地被实施而不需要修改应用和/或DBMS。这样的装置和方法还将理想地影响(leverage)应用和/或DBMS中的现有功能。
发明内容
已经响应于现有技术的当前状态,并且具体地,响应于目前可用的装置和方法还没有完全解决的现有技术中的问题和需要,开发了本发明。相应地,已经开发本发明来提供用于对数据库和非数据库资源执行提交协调的装置和方法。
与前面一致,在此公开了一种用于同步数据库和非数据库资源的系统。在某些实施例中,这样的系统包括用于发送请求到服务提供者以存储对象的应用。该服务提供者接收请求并且将对象存储为文件,其中该文件是非数据库资源。该服务提供者还将条目插入新的文件删除表中以删除该文件,并且通过执行COMMIT使得该插入为永久性的。代表应用,该服务提供者配置为从该文件删除表删除该条目。该应用然后可以执行以下之一:(1)通过执行COMMIT使得删除为永久性的;以及(2)通过执行ROLLBACK回滚删除。在稍后时间,服务提供者配置为在该条目保留在文件删除表中的情况下删除文件。以该方式,不在提交协调下的文件系统可以与在提交协调下的应用同步。
在本发明的另一方面,一种用于同步数据库和非数据库资源的系统包括用于发送请求到服务提供者以执行动作的应用。该服务提供者接收请求并执行动作,该动作不在提交协调下。该服务提供者进一步将条目插入动作撤销表中以撤销动作,并且通过执行COMMIT使得插入为永久性的。代表应用,该服务提供者然后从动作撤销表删除该条目。该应用然后可以配置为执行以下之一:(1)通过执行COMMIT使得删除为永久性的;以及(2)通过执行ROLLBACK回滚删除。在稍后时间,服务提供者配置为在该条目保留在动作撤销表中的情况下撤销该动作。
在此还公开并要求保护对应的方法和制造产品(即,计算机可读介质)。
附图说明
现在将仅仅通过示例方式,参考附图描述本发明的实施例,附图中:
图1是示出根据本发明的装置和方法可以操作的环境的一个示例的高级框图;
图2是示出当执行ROLLBACK时用于同步数据库和非数据库资源的方法的一个实施例的流程图;
图3示出当执行ROLLBACK时在不同时间点的各种数据结构的状态;
图4是示出当执行COMMIT时用于同步数据库和非数据库资源的方法的一个实施例的流程图;
图5示出当执行COMMIT时在不同时间点的各种数据结构的状态;
图6是示出可以包括在根据本发明的服务提供者中的各种模块的高级框图;以及
图7是示出当执行COMMIT和/或ROLLBACK时用于同步数据库和非数据库资源的方法的替代实施例的流程图。
具体实施方式
将容易理解的是,如在此一般描述和图中图示的,本发明的组件可以按照广泛的多种不同的配置安排和设计。因此,如图中表示的,以下本发明实施例的更详细描述意图不在于限制要求保护的本发明的范围,而是仅仅表示根据本发明的目前构思的实施例的某些示例。将通过参考附图最好地理解目前描述的实施例,贯穿附图中,相同部分用相同标号指定。
如本领域技术人员将意识到的,本发明可以实现为装置、系统、方法、计算机可读介质或计算机程序产品。此外,本发明可以采用以下的形式:硬件实施例、配置为操作硬件的软件实施例(包括固件、驻留软件、微代码等)、或组合在此通常可以称为“模块”或“系统”的软件和硬件各方面的实施例。此外,本发明可以采用体现在任何有形表达介质中的计算机程序产品的形式,其中该有形表达介质具有在介质中存储的计算机可使用的程序代码。
可以利用一个或多个计算机可使用或计算机可读的介质的任何组合来存储计算机程序产品。该计算机可使用或计算机可读介质例如可以是但不限于电的、磁的、光的、电磁的、红外线的或半导体的系统、装置或设备。计算机可读介质的更具体示例(非穷举列表)包括以下:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便携式紧凑盘只读存储器(CDROM)、光存储器件、或磁存储器件。在本文的上下文中,计算机可使用或计算机可读介质可以是能够包含、存储或传送供指令执行系统、装置或器件使用的,或与指令执行系统、装置或器件相联系的程序的介质。
用于执行本发明的操作的计算机程序代码可以以一个或多个编程语言的任何组合书写,编程语言包括面向对象的编程语言(如Java、Smalltalk、C++等)和常规的过程编程语言(如“C”编程语言或类似的编程语言)。程序代码可以完全地在用户的计算机上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分地在用户的计算机上和部分地在远程计算机上或完全在远程计算机或服务器上执行。在后者情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以(例如,使用因特网服务提供商通过因特网)连接到外部计算机。
以下参考根据本发明实施例的方法、装置、系统、计算机可读介质和计算机程序产品的流程图图示和/或框图描述本发明的实施例。将理解的是,流程图图示和/或框图中的每个框、以及流程图图示和/或框图中的各框的组合,可以通过计算机程序指令或代码实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的指令,创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置(means)。
这些计算机程序指令还可以存储在计算机可读介质中,其可以指引计算机或其它可编程数据处理装置以特定方式工作,使得计算机只读介质中存储的指令产生一种包括指令装置(instruction means)的制造产品,该指令装置实现流程图和/或框图的一个或多个框中指定的功能/动作。
计算机程序指令还可以加载到计算机或其它可编程数据处理装置,使得在计算机或其它可编程装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令提供用于实现流程图和/或框图对一个或多个框中指定的功能/动作的过程。
参考图1,图示了根据本发明的装置和方法可以操作的环境100的一个示例。在该示例中,环境100包括应用102,该应用配置为存取包括一个或多个数据库表104的数据库。该数据库可以通过数据库管理系统106(例如,DB2或类似DBMS106)的方式存取。在某些实施例中,数据库表104存储在磁盘驱动器108或其它适当的存储设备(如固态驱动器108(即,SSD))上。应用102可以负责同步数据库表104以维持数据完整性,并且确保表104中包含的数据一致。因此,应用102可以发起对于数据库表104中存储的数据的“提交协调”。
在某些实施例中,应用102可以与服务提供者110(如“对象存取方法”(OAM)或其它服务提供者)通信以提供一个或多个服务。例如,服务提供者110可以允许应用102存储和检索一个或多个存储设备(如磁盘驱动器112、光盘驱动器114或磁带驱动器116)中的“对象”。作为示例,服务提供者110可以允许应用将一个或多个对象作为文件存储在文件系统118中。应用102可以通过应用编程接口122(如OSREQ API,其中服务提供者是OAM)与服务提供者110通信。
在某些实施例中,“对象”可以包括任何命名的字节序列。例如,对象可以是图像数据(如压缩扫描图像)或编码数据。服务提供者110可能不知道字节序列的内容、格式和/或结构。
在某些实施例中,当应用102指引服务提供者110在存储设备112、114、116中存储对象时,用于该对象的元数据可以存储在数据库表104中,如对象目录表120。该元数据可以包括在其它信息中用于定位和管理对象的信息。当应用102存储对象(使用服务提供者API122)时,服务提供者110可以增加行(即,条目)到包含用于存储的对象的元数据的对象目录表120。然而,应用120而不是服务提供者110可以执行对于该行的COMMIT。如果应用最终执行ROLLBACK,则这将从对象目录表120删除用于该对象的条目,但是可以将对象留下来孤立在文件系统118中。换句话说,因为文件系统118不在DBMS106的“提交协调”下,所以该对象可以继续存在于文件系统118中,即使用于该对象的记录已经从对象目录表120删除。此外,如果应用102再次试图将相同的具体命名的对象存储在文件系统118中(如可能出现在“存储-回滚-存储”的场景),则存储操作可能失败,因为该命名的对象已经存在于文件系统118中。
相应地,提供一种用于撤销由在应用的提交协调器外动作的服务提供者110或其它实体执行的动作的装置和方法将是现有技术的进步。提供这样的装置和方法而不修改应用102和/或DBMS106将是进一步的进步。这样的装置和方法将理想地影响应用102和/或DBMS106中的现有功能。
为了提供这些特征,在选择的实施例中,提供文件删除表124以用作驻留在DBMS的提交协调外的资源的代理(proxy)。文件删除表124在DBMS的提交协调下,因此用于保持非数据库资源与数据库资源同步和一致。文件删除表124的功能和操作以及其它功能将结合图2到5更详细地描述。
在图示示例中,应用102、DBMS106和服务提供者110运行在驻留在主机系统128(例如,大型计算机或其它计算系统)上的相同主机操作系统126中。然而,组件102、106、110不必需要运行在相同操作系统126或主机系统128上。例如,组件102、106、110可以在不同操作系统126中操作,或者在不同主机系统128上运行。在某些实施例中,组件102、106、110可以在通过网络(例如,LAN、WAN、因特网等)相互通信的不同计算机上操作。因此,仅仅通过示例方式提供图示的硬件和软件配置,并且意图不在于限制。
参考图2,图示了用于同步数据库和非数据库资源的方法200的一个实施例。图2的方法200示出了这样的场景,其中应用102执行它已经执行的工作的ROLLBACK。图3示出了在方法200执行时在不同时间点的各种数据结构的状态。
如图2和3所示,应用102(在应用线程202下操作)最初发送208请求到服务提供者110以存储命名对象。服务提供者110(在分开的服务线程204下操作)然后生成210用于该命名对象的唯一标识符,以便从命名对象的其它实例中区分该对象的实例。该区分可能是重要的,因为命名对象的实例的内容可以不同于相同命名对象的另一实例的内容。
在服务线程204下操作,服务提供者110然后将命名对象作为具有唯一标识符的文件存储212在文件系统118中。例如,如图3所示,在时间T1,具有唯一标识符“7”的、命名为myfile的对象在文件系统118中存储为myfile.7。
在应用102可能决定回滚用于存储命名对象的请求的预期中,服务提供者110对该命名对象添加214“删除”条目到文件删除表124。服务提供者然后可能在服务线程204上对该条目执行214COMMIT,以使得该条目在文件删除表124中是永久性的。例如,如在时间T2所示,服务提供者110将条目delete myfile.7插入文件删除表(FDT)124中。本质上,这使得文件的删除成为要由服务提供者110执行的默认动作。
在应用线程202下操作,服务提供者110然后将命名对象添加216到对象目录表120,从而指示命名对象存储在文件系统118中。如在时间T3所示,服务提供者110将用于命名对象的元数据插入对象目标表120中。
服务提供者110然后从文件删除表124删除218该条目,意图消除用于删除命名对象的请求。例如,如在时间T4所示,服务提供者110从文件删除表124移除delete myfile.7条目。从文件删除表124的该删除的永久性将取决于事务的最终部署。更具体地,应用102最终执行COMMIT还是ROLLBACK。
在该示例中,应用102最终执行220ROLLBACK,从而撤销应用102执行的工作。这将回滚delete myfile.7条目的删除,从而将其添加回到文件删除表124。因此,如在时间T5所示,将delete myfile.7条目恢复到文件删除表124,并且删除了对象目录表120中的该对象的条目。注意,实际的文件保留在文件系统118中。此外注意,服务提供者110不知道应用102已经通过执行ROLLBACK部署了事务。
为了从文件系统118删除包含命名对象的文件,在某个将来时间点由服务提供者110执行清除线程206。如所示的,服务提供者110最初从文件删除表124检索存在时间多于某个间隔n的条目。可以选择该间隔n,以便允许应用102有足够时间部署事务(执行COMMIT或ROLLBACK)。取决于应用102,该间隔n可以为秒、分、小时、天或周的量级。
一旦已经检索到存在时间多于某个间隔n的条目,服务提供者110就删除由文件删除表124中的条目指定的文件。这将同步文件系统118和对象目录表120,在对象目录表120中,用于命名对象的条目已经被ROLLBACK220删除。如图3所示,在时间T6,从文件系统118删除文件myfile.7。
最后,服务提供者110从请求命名对象的删除的文件删除表124删除条目。服务提供者110在清除线程206上对该改变执行COMMIT,以使得其为永久性的。因此,如在时间T7所示,从文件删除表124删除delete myfile.7条目。
由于与每个命名对象相关联的唯一标识符,应用102可以继续执行对于相同命名对象的动作,即使该命名对象的之前实例仍然还没有从文件系统118删除。例如,如果应用102在之前实例已经删除之前尝试再次存储相同命名对象,则服务提供者110将对新的实例生成新的唯一标识符(例如,myfile.8)。该实例然后可以存储在文件系统118中,而不引起由于重复文件名导致的错误。
参考图4,图示了用于同步数据库和非数据库资源的方法400的另一实施例。图4的方法400示出了这样的场景,其中应用102执行COMMIT。图5示出了在执行方法400时在不同时间点的各种数据结构的状态。方法400与图2所示的方法200在直到应用102执行420COMMIT(而不是ROLLBACK)时都相同。
如图4所示,应用102执行420COMMIT,从而使得应用102执行的工作为永久性的。这将永久性地从文件删除表124删除delete myfile.7条目。因此,如在图5中的时间T5所示,从文件删除表124移除delete myfile.7条目。然而,保留对象目录表120中的该条目。如同之前示例,服务提供者110不知道应用102已经执行COMMIT。
如同之前示例,在某个将来时间点,由服务提供者110执行清除线程406。因为用于命名对象的条目已经从文件删除表124移除,所以清除线程406将不从文件系统118删除myfile.7文件。这将确保文件系统118保持与对象目录表120同步。
参考图6,在某些实施例中,根据本发明的服务提供者110可以修改为实施图2和4所示的方法200、400。这样的服务提供者110可以包括一个或多个模块来实施该功能。这些模块可以以硬件、在硬件上可执行的软件或固件、或其组合来实施。在选择的实施例中,这些模块包括ID生成器模块600、存储模块602、添加行模块604、提交模块606、添加到目录模块608、删除行模块610和清除模块612中的一个或多个。这些模块仅仅通过示例方式呈现,并且意图不在于限制。在某些实施例中,可以提供比所示的那些更多或更少的模块。在其它实施例中,来自某些模块的功能可以组合到较少模块中,或者相反地,分割到若干模块中。
当服务提供者110接收用于存储命名对象的请求时,ID生成器模块600对于该命名对象生成唯一标识符,以便从该命名对象的其它实例中区分该对象的实例。存储模块602然后将命名对象存储为文件系统118中唯一命名的文件。一旦已经存储文件,添加行模块604就在服务线程204上对于该命名对象将“删除”条目添加到文件删除表124。提交模块606使得该条目在文件删除表124中是永久性的。这将使得文件的删除成为要由服务提供者110执行的默认动作。
一旦添加行模块604已经添加“删除”条目到文件删除表124,并且该条目已经提交,添加到目录模块608就在应用线程202上将与该命名对象相关联的条目添加216到对象目录表120。这将指示该命名对象存储在文件系统118中。然后,删除行模块610从文件删除表124删除218之前讨论的“删除”条目,意图消除用于删除命名对象的请求。该删除的永久性将取决于事务的最终部署。在这点,应用102负责执行COMMIT或ROLLBACK,以使得应用102执行的工作为永久性的或撤销应用102执行的工作。
在某个将来时间点,清除模块612从文件系统118移除已经在文件删除表124中对于删除被标识的文件。例如,延迟模块614配置为从文件删除表124检索存在时间多于某个间隔n的条目。删除文件模块616然后删除在各条目中标识的任何文件。这将同步文件系统118和对象目录表120。一旦文件已经从文件系统118删除,删除行模块618从文件删除表124删除相关联的“删除”条目。提交模块620然后执行COMMIT以使得改变在文件删除表124中为永久性的。
参考图7,尽管已经主要与从文件系统118删除文件相关联讨论了在此讨论的装置和方法,但是在此讨论的装置和方法具有更广的应用性。实际上,从文件系统118删除文件仅仅表示可以由在此公开的装置和方法处理的一种类型的动作。在其它实施例中,该装置和方法可以用于撤销落在应用102或DBMS106的正常“提交协调”外的广泛的多种动作。更具体地,当应用102最终如通过执行ROLLBACK部署事务时,数据库表124可以用作撤销广泛的多种动作的代理。图7中图示了包括图2和4中描述的方法的更广泛的方法700。
如图7所示,应用102(在应用线程702下操作)最初发送708请求到服务提供者110以执行某个动作。该动作实际上可以包括任何事务,如存储文件、执行程序、生成对象或产品(artifact)、执行服务等。在某些实施例中,服务提供者110(在分开的服务线程704下操作)生成710用于该动作的唯一标识符,以便从其它动作中区分该动作。服务提供者110然后执行712具有唯一标识符的动作。
在应用102可能决定回滚用于执行该动作的请求的预期中,服务提供者110对该动作添加714条目到动作撤销表(类似于文件删除表124)。服务提供者110然后在服务线程204上对于该条目执行714COMMIT,以使得该条目在表中是永久性的。这将使得该动作的撤销成为要由服务提供者110执行的默认任务。
在应用线程702下操作,服务提供者110然后从动作撤销表删除718条目,意图消除用于执行动作的请求。该删除的永久性将取决于事务的最终部署,并且更具体地,应用102最终执行COMMIT或ROLLBACK。
如果应用102最终执行720ROLLBACK,从而撤销由应用102执行的工作,则应用102将回滚条目的删除,从而将其添加回到动作撤销表。注意,在此时,动作将仍然已经执行并且没有撤销。类似地,服务提供者110将不知道应用102已经通过执行ROLLBACK部署事务。
为了撤销动作撤销表中指定的动作,在某个将来时间点由服务提供者110执行清除线程706。如所示的,服务提供者110可以最初从动作撤销表检索722存在时间多于某个间隔n的条目。可以选择间隔n,以诸如允许应用102有足够时间通过执行COMMIT或ROLLBACK来部署事务。一旦已经检索到存在时间多于某个间隔n的条目,服务提供者110就撤销724由该条目指定的动作。最终,服务提供者110从请求动作的撤销的动作撤销表中删除726该条目。服务提供者110然后执行726COMMIT以使得该改变是永久性的。以该方式,可以撤销落入应用的提交协调器外的任何动作。
附图中的流程图和框图图示了根据本发明各个实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示模块、片段或代码部分,其包括用于实现指定的(多个)逻辑功能的一个或多个可执行指令。还应当注意,在一些替代实现中,框中标注的功能可以脱离图中标注的顺序发生。例如,取决于涉及的功能,两个接连地表示的框实际上可以基本并行地执行,或者该框有时可以按相反的顺序执行。其它实现可以不要求所有公开的步骤来实现期望的功能。还将注意到,框图和/或流程图图示的每个框以及框图和/或流程图图示的各框的组合,可以通过执行指定功能或动作的专用的基于硬件的系统、或者专用硬件与计算机指令的组合来实现。

Claims (16)

1.一种用于同步数据库和非数据库资源的方法,该方法包括:
发送请求以存储对象;
接收请求并将对象存储为文件,其中该文件为非数据库资源;
将条目插入到文件删除表中以删除该文件,并且通过执行COMMIT使得该插入为永久性的;
从该文件删除表中删除该条目;以及
响应于事务的最终部署,执行以下之一:(1)通过执行COMMIT使得该条目的删除为永久性的;以及(2)通过执行ROLLBACK回滚该条目的删除。
2.如权利要求1所述的方法,还包括在该条目保留在该文件删除表中的情况下,删除该文件。
3.如权利要求2所述的方法,其中删除该文件还包括在决定删除该文件之前等待时段n。
4.如权利要求1所述的方法,还包括在从该文件删除表中永久地移除该条目的情况下,不删除该文件。
5.如权利要求4所述的方法,其中不删除该文件还包括在决定不删除该文件之前等待时段n。
6.如权利要求1所述的方法,其中将对象存储为文件包括将该文件存储在文件系统中。
7.如权利要求1所述的方法,还包括生成唯一标识符并将该文件与该唯一标识符相关联。
8.如权利要求7所述的方法,其中该条目使用该唯一标识符标识该文件。
9.一种用于同步数据库和非数据库资源的系统,该系统包括:
用于发送请求以存储对象的装置;
用于接收请求并将对象存储为文件的装置,其中该文件为非数据库资源;
用于将条目插入到文件删除表中以删除该文件,并且通过执行COMMIT使得该插入为永久性的的装置;
用于从该文件删除表中删除该条目的装置;以及
用于响应于事务的最终部署,执行以下之一的装置:(1)通过执行COMMIT使得该条目的删除为永久性的;以及(2)通过执行ROLLBACK回滚该条目的删除。
10.如权利要求9所述的系统,所述系统还包括,用于在该条目保留在该文件删除表中的情况下,删除该文件的模块。
11.如权利要求10所述的系统,其中所述用于在该条目保留在该文件删除表中的情况下,删除该文件的装置还用于在决定删除该文件之前等待时段n。
12.如权利要求9所述的系统,还包括,用于在从该文件删除表中永久地移除该条目的情况下,不删除该文件的装置。
13.如权利要求12所述的系统,其中所述用于在从该文件删除表中永久地移除该条目的情况下,不删除该文件的装置还用于在决定不删除该文件之前等待时段n。
14.如权利要求9所述的系统,其中所述用于接收请求并将对象存储为文件的装置用于将该文件存储在文件系统中。
15.如权利要求9所述的系统,还包括用于生成唯一标识符并将该文件与该唯一标识符相关联的装置。
16.如权利要求15所述的系统,其中该条目使用该唯一标识符标识该文件。
CN201080049531.XA 2009-10-31 2010-10-08 同步数据库和非数据库资源 Expired - Fee Related CN102597995B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/610,281 US9020905B2 (en) 2009-10-31 2009-10-31 Synchronizing database and non-database resources without a commit coordinator
US12/610,281 2009-10-31
PCT/EP2010/065101 WO2011051098A1 (en) 2009-10-31 2010-10-08 Synchronizing database and non-database resources

Publications (2)

Publication Number Publication Date
CN102597995A CN102597995A (zh) 2012-07-18
CN102597995B true CN102597995B (zh) 2015-02-18

Family

ID=43770488

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080049531.XA Expired - Fee Related CN102597995B (zh) 2009-10-31 2010-10-08 同步数据库和非数据库资源

Country Status (5)

Country Link
US (1) US9020905B2 (zh)
CN (1) CN102597995B (zh)
DE (1) DE112010004185B4 (zh)
GB (1) GB2487139A (zh)
WO (1) WO2011051098A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105740131B (zh) * 2014-12-09 2020-09-25 深圳力维智联技术有限公司 软件用户行为回退处理方法及装置
US10048960B2 (en) * 2014-12-17 2018-08-14 Semmle Limited Identifying source code used to build executable files
WO2017058148A1 (en) * 2015-09-28 2017-04-06 Hewlett Packard Enterprise Development Lp Executing transactions based on success or failure of the transactions
CN107239467B (zh) * 2016-03-29 2020-04-10 北京神州泰岳软件股份有限公司 基于数据库的数据处理方法及装置
CN108073596B (zh) * 2016-11-10 2020-08-14 北京国双科技有限公司 一种olap数据库的数据删除方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1725658A (zh) * 2004-07-21 2006-01-25 中兴通讯股份有限公司 一种实时数据库主备同步方法
CN101460930A (zh) * 2005-05-06 2009-06-17 微软公司 维护数据库与文件系统之间的链接级一致性

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5297279A (en) * 1990-05-30 1994-03-22 Texas Instruments Incorporated System and method for database management supporting object-oriented programming
US6029160A (en) * 1995-05-24 2000-02-22 International Business Machines Corporation Method and means for linking a database system with a system for filing data
US6128771A (en) * 1996-02-09 2000-10-03 Sun Microsystems, Inc. System and method for automatically modifying database access methods to insert database object handling instructions
US5884327A (en) * 1996-09-25 1999-03-16 International Business Machines Corporation System, method and program for performing two-phase commit with a coordinator that performs no logging
US5765162A (en) * 1996-10-25 1998-06-09 International Business Machines Corporation Method for managing queryable datastore persistent objects and queryable datastore collections in an object-oriented environment
US5953719A (en) * 1997-09-15 1999-09-14 International Business Machines Corporation Heterogeneous database system with dynamic commit procedure control
US6453356B1 (en) * 1998-04-15 2002-09-17 Adc Telecommunications, Inc. Data exchange system and method
US6738971B2 (en) * 1999-03-10 2004-05-18 Oracle International Corporation Using a resource manager to coordinate the comitting of a distributed transaction
US10235368B2 (en) * 2000-06-08 2019-03-19 International Business Machines Corporation System and method for updating external file referenced by database with transactional consistency using SQL
US6571259B1 (en) * 2000-09-26 2003-05-27 Emc Corporation Preallocation of file system cache blocks in a data storage system
US6874001B2 (en) * 2001-10-05 2005-03-29 International Business Machines Corporation Method of maintaining data consistency in a loose transaction model
KR20030056540A (ko) * 2001-12-28 2003-07-04 한국전자통신연구원 데이터베이스 관리 시스템에서 시스템 고장에 대비한 파일삭제 및 회복 방법
US6873995B2 (en) * 2002-04-23 2005-03-29 International Business Machines Corporation Method, system, and program product for transaction management in a distributed content management application
US7076508B2 (en) * 2002-08-12 2006-07-11 International Business Machines Corporation Method, system, and program for merging log entries from multiple recovery log files
US7412455B2 (en) * 2003-04-30 2008-08-12 Dillon David M Software framework that facilitates design and implementation of database applications
US7346905B2 (en) * 2003-06-10 2008-03-18 International Business Machines Corporation Apparatus and method for maintaining resource integrity without a unified transaction manager in a software environment
DE602004006224T2 (de) * 2004-03-18 2008-01-10 Alcatel Lucent Verfahren und Vorrichtung zur Datensynchronisierung eines verteilten Datenbanksystems
US8271448B2 (en) * 2005-01-28 2012-09-18 Oracle International Corporation Method for strategizing protocol presumptions in two phase commit coordinator
US7478115B2 (en) * 2005-06-13 2009-01-13 Microsoft Corporation System and method for database and filesystem coordinated transactions
US7809777B2 (en) 2005-07-01 2010-10-05 Qnx Software Systems Gmbh & Co. Kg File system having deferred verification of data integrity
US8117605B2 (en) * 2005-12-19 2012-02-14 Oracle America, Inc. Method and apparatus for improving transactional memory interactions by tracking object visibility
US8880480B2 (en) * 2007-01-03 2014-11-04 Oracle International Corporation Method and apparatus for data rollback
US11281654B2 (en) * 2007-10-23 2022-03-22 International Business Machines Corporation Customized roll back strategy for databases in mixed workload environments
EP2330511B1 (en) * 2008-09-17 2016-07-20 Fujitsu Limited Data update synchronization method and system by two-phase commit
US9569254B2 (en) * 2009-07-28 2017-02-14 International Business Machines Corporation Automatic checkpointing and partial rollback in software transaction memory
US8356007B2 (en) * 2010-10-20 2013-01-15 Microsoft Corporation Distributed transaction management for database systems with multiversioning
US8825601B2 (en) * 2010-02-01 2014-09-02 Microsoft Corporation Logical data backup and rollback using incremental capture in a distributed database

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1725658A (zh) * 2004-07-21 2006-01-25 中兴通讯股份有限公司 一种实时数据库主备同步方法
CN101460930A (zh) * 2005-05-06 2009-06-17 微软公司 维护数据库与文件系统之间的链接级一致性

Also Published As

Publication number Publication date
DE112010004185T5 (de) 2012-08-30
CN102597995A (zh) 2012-07-18
DE112010004185B4 (de) 2014-07-24
GB2487139A (en) 2012-07-11
GB201201716D0 (en) 2012-03-14
US20110106760A1 (en) 2011-05-05
US9020905B2 (en) 2015-04-28
WO2011051098A1 (en) 2011-05-05

Similar Documents

Publication Publication Date Title
CN109086388B (zh) 区块链数据存储方法、装置、设备及介质
CN105359099B (zh) 索引更新管线
US20070239725A1 (en) Active cache offline access and management of project files
US10831741B2 (en) Log-shipping data replication with early log record fetching
CN113396407A (zh) 用于利用区块链技术扩充数据库应用的系统和方法
CN104516943A (zh) 数据库日志的存档管理
US20060236049A1 (en) Remote copy system and remote copy method
JP4916892B2 (ja) トランザクション処理のためのログ情報管理システムおよび方法
US20060200500A1 (en) Method of efficiently recovering database
JP6475304B2 (ja) トランザクション処理方法および装置
CN102597995B (zh) 同步数据库和非数据库资源
US10970193B2 (en) Debugging a client synchronization service
US9207966B2 (en) Method and system for providing a high-availability application
WO2021082925A1 (zh) 一种交易处理的方法及装置
US11093348B2 (en) Method, device and computer program product for recovering metadata
JP2008310591A (ja) クラスタシステム、計算機、および障害回復方法
WO2023111910A1 (en) Rolling back database transaction
US9600188B2 (en) Collision avoidance using dynamic target volume allocation from a shared resource pool
US20230043307A1 (en) Replicating Changes Written by a Transactional Virtual Storage Access Method
US9672118B2 (en) Collision avoidance using dynamic target volume allocation
JP4710380B2 (ja) 分散処理システム及び分散処理方法
JP2010039988A (ja) ファイル管理方法、装置及びプログラム
CN104220982A (zh) 一种事务处理方法与装置
CN114116732B (zh) 处理事务的方法、装置、存储装置以及服务器
CN111427989B (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150218

Termination date: 20201008

CF01 Termination of patent right due to non-payment of annual fee