CN102640151B - 用于传输日志记录的方法和系统 - Google Patents

用于传输日志记录的方法和系统 Download PDF

Info

Publication number
CN102640151B
CN102640151B CN201080054642.XA CN201080054642A CN102640151B CN 102640151 B CN102640151 B CN 102640151B CN 201080054642 A CN201080054642 A CN 201080054642A CN 102640151 B CN102640151 B CN 102640151B
Authority
CN
China
Prior art keywords
log recording
source
attribute
goal systems
object key
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
Application number
CN201080054642.XA
Other languages
English (en)
Other versions
CN102640151A (zh
Inventor
R·拉斐尔
P·S·泰勒
H·德施姆克
F·C·海斯
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 CN102640151A publication Critical patent/CN102640151A/zh
Application granted granted Critical
Publication of CN102640151B publication Critical patent/CN102640151B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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

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)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供用于如下的技术:响应于由本地事务改变源对象,产生日志记录,其中所述日志记录中的每一个包括序列标识符、源系统实体修改时间戳、目标键、目标分区标识符,及源属性的值,其中所述源属性使用目标键指示符来识别。处理的所述日志记录基于每一日志记录的阶段值(phase value)来选择,其中该阶段值为提交(submitted)、正在处理(in-flight)及源系统实体状态改变完成中的一个。将一个或多个不相交(disjoint)分区指派给多个处理实例(instances)中的每一个。在该多个处理实例中的每一个的控制下,确定是否传输在指派给该处理实例的一个或多个不相交分区中的日志记录,且响应于确定该日志记录待传输,传输该日志记录。

Description

用于传输日志记录的方法和系统
技术领域
本发明的实施例涉及信息系统中转换后的数据的高吞吐量、可靠复制。
背景技术
信息常常存在于组织内、企业或甚至更多跨越全球的企业内的多个位置中。常常以用于本地应用的最佳方式表示此信息,且通常,并非在组织内、企业或甚至更多跨越全球的企业内的所有应用需要、使用或甚至想要或被允许存取存在的所有信息。然而,在本地应用中愈来愈多地共享及利用此信息日益常见。该信息的共享、转换及本地使用为允许对数据的一致观看、实现交叉销售情形,及实现重要商业最佳化以及识别新商业机会的根本能力。
传统系统导致高实施成本,在试图整合执行本地应用的本地源系统与某一其它目标系统的每一部署时常常招致高实施成本。本地目标调用趋于适当地特定于目标系统,且时常适当地特定于该目标系统的配置。用于复制及数据转换的传统系统未达到使用从数据转换所导出的参数值与本地目标调用整合。此归因于实施及整合传统系统内的本地目标调用的成本而导致程序化本地目标调用的高成本。此高成本导致这些类型的项目中的许多项目不能在第一处投资且尤其在企业级花费大量时间来实施、测试及部署。
需要强数据完整性的传统系统依赖于整个工作负载的传统事务串行化,有时甚至使用两个系统之间的两个阶段提交来确保数据完整性。此串行化归因于引入至源系统事务(其现在变为分布式事务)中的延时而对于源系统及目标系统两者具有严重的性能后果。此延时意谓归因于在减少总吞吐量的较长持续时间内保持更多锁定而发生增加的串行化。因为整个系统取决于整个完整系统始终可用,所以此延时也具有高可用性影响。传统系统依赖于源事务串行化以排序目标系统上的执行,且因此不能完全并行化以利用高性能簇。
需要高吞吐量复制(归因于多个位置)、转换(归因于数据的“本地”表示,及针对该数据而执行的应用),并需要数据完整性(一致信任的企业范围数据)。因此,需要信息系统中转换后的数据的高吞吐量、可靠复制。
发明内容
提供用于如下方法、计算机程序产品及系统,包括:响应于由本地事务改变源对象,产生日志记录,其中所述日志记录中的每一个包括序列标识符、源系统实体修改时间戳、目标键、目标分区标识符,及源属性(property)的值,其中所述源属性使用目标键指示符来识别。处理的所述日志记录基于每一日志记录的阶段值来选择,其中该阶段值为提交、正在处理及源系统实体状态改变完成中的一个。将一个或多个不相交分区指派给多个处理实例中的每一个。在多个处理实例中的每一个的控制下,确定是否传输在指派给该处理实例的一个或多个不相交分区中的日志记录,且响应于确定该日志记录待传输,传输该日志记录。
附图说明
仅通过例子,参照附图,说明本发明的实施例,其中:
图1说明根据某些实施例的计算架构。
图2说明根据某些实施例的操作的流程。
图3说明根据某些实施例的结构。
图4说明根据某些实施例的处理。
图5说明根据某些实施例的用于产生日志记录的逻辑。图5由图5A及图5B形成。
图6说明根据某些实施例的用于非恢复处理日志记录的逻辑。
图7说明根据某些实施例的用于恢复处理的逻辑。
图8说明根据某些实施例的用于将日志记录传输至目标系统的逻辑。图8由图8A、图8B及图8C形成。
图9说明根据某些实施例的用于传输日志记录的详细逻辑。
图10说明根据某些实施例的纵向延伸系统(scaled up system)。
图11说明根据某些实施例的横向延伸系统(scaled out system)。
图12说明可根据某些实施例使用的系统架构。
具体实施方式
在以下描述中,参照形成该描述的部分且说明本发明的若干实施例的随附附图。应理解,在不脱离本发明的范围的情况下,可对其他实施例加以利用且可进行结构性改变及操作性改变。
通过在进行保持全部数据及事务完整性的本地调用的方式方面及在进行保持全部数据及事务完整性的本地调用时实现高并行性程度,实施例提供可延伸性机制,维持系统完整性,改良吞吐量。
由实施例所提供的能力实施于引起架构的使用者的最小程序化的架构中。本文中也描述实现架构的有效实施及最佳化的此架构自身的核心设计。
图1说明根据某些实施例的计算架构。计算设备100包括日志产生组件110、日志消费者组件120、日志最佳化组件130、目标系统转换组件140及日志150。一个或多个源系统160及一个或多个目标系统170耦合至该计算设备100。在某些实施例中,该计算设备100为主内容服务器。在某些实施例中,至少一个源系统160为企业内容管理(ECM)系统。在某些实施例中,至少一个目标系统170为主数据管理(MDM)系统。
源系统160接收事务(例如,txl、tx2、tx3...txn)并将该事务路由至计算设备100。源系统160处的源本地应用发出事务。所述事务改变数据(例如,源系统160上的源对象)。计算设备100在如由标记为160的源系统及标记为170的目标系统所表示的信息系统之间执行转换后的数据的高吞吐量、可靠复制。日志产生组件110使用改变的数据来产生如日志150所表示的日志中的数据。日志150的结构定义的细节在图3中得以描述。日志最佳化组件130处理并最佳化日志150,且产生日志150中的额外数据。目标系统转换组件140执行数据转换并将转换后的数据路由至目标系统170,目标系统170也产生日志150中的额外数据。事务(例如,tx1l...txp)接着可使用转换后的数据。因此,通过源系统160改变数据,且改变的数据通过计算设备100处的目标系统转换组件140来转换。
在某些实施例中,每次存在一个源数据改变。每一改变以源事务标识符来标记。另外,每一改变以源事务的操作码(也即,插入、更新或删除)来标记。在某些实施例中,在源数据改变中存在多个列,且所述列中的每一个具有多个属性(attribute)。
在源事务内,可存在多个待执行的语句,且可存在多个语句中的每一个的数据改变。实施例将数据转换应用于具有源事务标识符的源事务。每事务可存在一个或多个源数据改变。在某些实施例中,提供单一数据转换内的功能执行次序(也即,以避免在建立/维持主键/外部键关系时出现中间异常)。
在某些实施例中,图1中所说明的系统可描述为复制管线,从检测源系统160中的细节开始至以可靠且经正确排序的方式提取、转换及传递至目标系统170。
图2说明根据某些实施例的操作的流程。在图2中,根据图例200,连续箭头指示标记,虚线箭头指示数据流,且点划线箭头指示控制流。源系统实体执行实例210耦合至计算设备,该计算设备耦合至目标系统实体执行实例290。计算设备、详细的系统信息、数据流及控制流200展示于包括虚线及点划线两者的线内。计算设备200为计算设备100(图1)的执行实例。源系统实体执行实例210为源系统160(图1)的执行实例。目标系统实体执行实例290为目标系统170(图1)的执行实例。在某些实施例中,计算设备200为主内容服务器;源系统实体执行实例210为企业内容管理系统;且目标系统实体执行实例290为主数据管理系统。
源系统实体执行实例210能够存取源文档模型(例如,D3)及代理(proxy)目标平坦模型(例如,M3)。代理目标平坦模型可描述为对不具有实执行实例数据的源系统上的目标数据模型的平坦化仿真。这用于实施及连同映射表的内容的强系统元数据验证检查方便。举例而言,D3可为用于表示身份文档(诸如,驾照、护照或出生证明)的扫描影像的元数据文档模型。此元数据文档模型实施于源系统的数据建模能力中。在ECM系统中,此可为基于对象的数据模型。举例而言,M3可为与储存于数据库管理系统(DBMS)中的D3中的信息相同或类似的信息的平坦关系表示,或D3可为可延伸标记语言(XML)或由目标系统所支持的某一其它数据模型表示。在某些实施例中,源文档模型为对象模型,且代理目标平坦模型为关系模型。D3-实例经由源事务而改变成D3-实例'。对于事务,事件处理例程(handler)224存取文档模型、来自状态220的事务的状态信息、及来自映射222(标记为“映射”)的列。事件处理例程224将文档模型、状态信息及列转递至日志产生器226。日志产生器226存取映射222,使用来自映射222的列将源文档模型变换成中间模型,并将数据返回至事件处理例程224。事件处理例程224将数据写入至日志240。日志处理器250处理该日志。目标类型处理例程260使用映射222来完成数据转换(从中间至目标)。(多个)目标接口(I/F)262提供用于以适当参数调用适当应用设计界面(API)的一个或多个界面。来自完成的数据转换的数据值用作适当应用设计界面的参数。
在某些实施例中,日志产生组件110(图1)的功能性通过事件处理例程224、日志产生器226、状态220及映射222来实施。在某些实施例中,日志最佳化组件130(图1)的功能性实施于日志处理器250中。在某些实施例中,目标系统转换组件140(图1)的功能性实施于目标类型处理例程260及(多个)目标I/F262中。
图3说明根据某些实施例的结构300。在某些实施例中,结构300储存于状态220中。结构300包括目标系统实体表310、源系统实体链接表320、日志表330及映射表340。实体为一类型(例如,文档模型)。源系统的执行实例可具有多个源系统实体,且目标系统的执行实例可具有多个目标系统实体。
结构300产生高数据完整性,而无需两个阶段提交。另外,目标系统实体表310及源系统实体链接表320通过早先在处理中识别复本而减少消息及代码路径。
目标系统实体表310包括以下的属性:目标键、目标控制代码(handle)、源系统实体参考计数及源系统实体修改时间戳。
源系统实体链接表320包括以下的属性:链接标识符、源键及目标键。链接标识符可描述为给予链接的唯一数字。链接形成于源数据模型抽象执行实例(例如,文档)与目标数据模型抽象执行实例之间。在实施例的情况下,在源数据模型抽象执行实例(例如,文档)与源系统实体链接表320之间存在1对1关联,且在目标系统实体表310与链接表320之间存在1对多关联。
若插入用于日志记录的操作码,则添加链接(也即,将一列添加至源系统实体链接表320),且累加源系统实体参考计数。若删除操作码,则移除链接(也即,通过从源系统实体链接表320删除一相应列),且递减源系统实体参考计数。若操作码被更新,则无需改变源系统实体链接表320或源系统实体参考计数。
在某些实施例中,日志240实施为日志表330。日志表330包括以下的属性:序号(其识别在源系统实体执行实例210上完成事务的次序)、事务标识符、操作码(也即,插入、更新或删除)、源系统实体修改时间戳(其指示修改源对象的最新时间)、目标类型、目标键、目标分区标识符、中间形式有效负载(其具有待以中间形式传输的值)、阶段值、阶段时间戳,及部署(例如,“传输成功”、“传输失败”或“未传输”)。在某些实施例中,单调原子序号产生器产生序号。在某些实施例中,目标类型为M3模型的目标数据类型执行实例。举例而言,若文档为身份文档,则诸如姓名的某些属性可以目标M3模型中的特定类型来表示。此可为简单串类型、固定长度字符串,或用于名(first name)、中间名(或中间开头字母)及姓(lastname)的结构。阶段值反映以下日志记录生命周期中的阶段:提交、正在处理、源系统实体状态改变完成,及完成(也即,目标系统实体状态改变完成)。在系统冷起动后,处理可基于由阶段值所识别的阶段而开始。在某些实施例中,日志表330也包括从源对象所获得(例如,复制)的源键,且源键指示符用以确定哪些源属性应用以产生源键。
在某些实施例中,映射222实施为映射表340。映射表340包括以下的属性:映射标识符、源类型、源属性标识符、源方法标识符、源键指示符、目标类型、目标属性标识符、目标方法标识符及目标键指示符。映射表340的每一列表示属性转换规格。在某些实施例中,在使用或不使用提供易于选择源实体属性及目标实体属性并使其相关联的某一可视化工具及必要方法以实现系统目标的情况下,映射表以映射预先填充以用于系统的给定执行实例。
在实施例的情况下,目标键为目标系统170的主键。
实施例执行实体功能映射。在某些实施例中,在系统(例如,图1)配置时间定义映射。映射222定义目标功能及用于那些目标功能的目标参数。映射222定义源功能及转换后的数据执行实例(例如,类型及结构描述)。映射222定义将源功能映射至目标功能的方式。映射222定义将转换后的数据执行实例映射至目标功能参数的方式。映射定义待经由动态绑定所执行的目标功能码。
实施例将每一源功能/值映射至目标功能/参数。用于给定目标功能的目标参数分组在一起,使得可应用一个目标功能执行。默认值、空值、错误产生或其它技术用于任何剩余的未经指派的参数。在一些实施例中,典型域完整性规则可用于未经指派的参数。
图4说明根据某些实施例的处理。控制开始于块400处,其中通过在源系统160上执行的本地事务来改变源对象。在块402中,日志产生组件110产生日志记录,其中所述日志记录中的每一个包括序列标识符、源系统实体修改时间戳、目标键、目标分区标识符,及源属性的值,其中所述源属性使用目标键指示符来识别。在块404中,日志消费者组件120基于每一日志记录的阶段值来选择要处理的日志记录,其中阶段值为提交、正在处理及源系统实体状态改变完成中的一个。在块406中,日志消费者组件120将一个或多个不相交分区指派给多个处理实例中的每一个。在块408中,在该多个处理实例中的每一个的控制下,日志最佳化组件130确定是否传输在指派给该处理实例的一个或多个不相交分区中的日志记录,且响应于确定该日志记录待传输而传输该日志记录。
图5说明根据某些实施例的用于产生日志记录的逻辑。控制开始于块500处,其中改变(也即,插入(也即,产生)、更新(也即,修改)或删除)源对象。举例而言,源对象为图3中的D3。在块502中,日志产生组件110识别源对象的源类型。在块504中,日志产生组件110使用所识别的源类型来识别映射表340中的列的群,其中列的每一群具有相同目标类型。在块506中,日志产生组件110选择列的下一群,其以列的第一群开始。在某些实施例中,一旦在映射表340中识别具有源类型的列,则通过目标类型排序所述列以形成列的群。在列的每一群内,通过递增映射标识符来排序所述列。接着,以列的第一群开始,日志产生组件110处理表示属性转换规格的每一列。
在块508中,日志产生组件110使用列的选定群中的列中的每一个的目标键指示符来识别源属性,其中目标键指示符指示哪些源属性待用以产生目标键(也即,键源属性)及哪些源属性不用以产生目标键(也即,非键源属性)。举例而言,目标键指示符可针对一组源属性中的每一个提供一位,且当该位设定为“真”时,相关联的源属性的值用以产生目标键。
在块510中,日志产生组件110从源对象提取所识别的源属性的值并将所提取的值以由选定群中的列中的每一个中的一映射标识符所指定的次序储存于缓冲器中。处理从块510(图5A)继续至块512(图5B)。
在块512中,日志产生组件110将键源属性的值散列以产生目标键并将该目标键添加至缓冲器。此时,缓冲器储存键源属性的值、非键源属性的值,及目标键。在块514中,日志产生组件110将目标键散列以产生目标分区标识符并将该目标分区标识符添加至缓冲器。在某些实施例中,分区的数目被预先定义(“N”),且用于块514中的散列产生在0至(N-1)的范围中的目标分区标识符。
在块516中,对于存在用于其的源方法的每一源属性,日志产生组件110执行该源方法并以由所执行的源方法所返回的结果值替代缓冲器中的源属性的值。也即,可能不存在用于特定源属性的源方法。
此时,缓冲器储存键源属性的值、非键源属性的值、目标键及目标分区标识符。键源属性的值及非键源属性的值形成中间形式有效负载。在块518中,日志产生组件110通过将储存于缓冲器中的值、序号、事务标识符、操作码、源系统实体修改时间戳、目标类型、指示提交的阶段值的阶段值、阶段时间戳及部署写入至日志记录中而产生该日志记录。在一些实施例中,序号根据充分大精度的原子单调序号产生器而产生。
在块520中,日志产生组件110确定是否已选择所有群。若已选择,则完成处理,否则,处理继续至块506以选择具有相同目标类型的另一列群。
图6说明根据某些实施例的用于非恢复处理日志记录的逻辑。图6的处理可称为“正常”(也即,非恢复)处理。控制开始于块600处,其中日志消费者组件120以源系统实体修改时间戳的次序提取提交阶段中的日志记录(也即,具有提交阶段值的日志记录)。在块602中,日志消费者组件120将所提取的日志记录推入至调度表中。在某些实施例中,该调度表为具有容器的散列表,且所提取的日志记录中的每一个基于该日志记录的目标键而储存于所述容器中的一个中。在块604中,日志消费者组件120将所推入的日志记录中的每一个的阶段值更新为正在处理。在某些其它实施例中,容器为永久储存器中的日志记录的经排序的队列,且该排序基于日志记录的序号及源系统实体修改时间戳。
图7说明根据某些实施例的用于恢复处理的逻辑。控制开始于块700处,其中日志消费者组件120以源系统实体修改时间戳的次序提取正在处理阶段或源系统实体状态改变完成阶段中的日志记录(也即,具有正在处理或源系统实体状态改变完成的阶段值的日志记录)。在其它实施例中,日志消费者组件120可以序号的次序提取日志记录。在块702中,日志消费者组件120将所提取的日志记录推入至调度表中。举例而言,若已存在来自先前紧急重新起动的冷起动,则日志记录中的一些可能在或可能不在完成阶段中(例如,其在正在处理或源系统实体状态改变完成的阶段中的一个中),且这些日志记录被提取以用于处理以完成未完成阶段以将记录适当地带至完成阶段。在先前技术中,将执行两个阶段的提交。另一方面,通过所储存的阶段信息提供数据完整性避免使用两个阶段的提交。
在某些实施例中,对于给定事务集合,日志消费者组件120发现事务修改源中相同的键值或发现事务执行具有用于一个或多个参数的相同参数值的同一目标。以原始事务次序来串行地执行这些所识别的事务。可以任何次序执行其它事务。
图8说明根据某些实施例的用于传输日志记录至目标系统170的逻辑。控制开始于块800处,其中日志最佳化组件130从调度表选择未经处理的容器。在块802中,日志最佳化组件130将容器标记为经处理。在某些实施例中,容器可标记为经处理或未经处理。在块804中,日志最佳化组件130从容器移除日志记录至存储器以产生存储器内日志记录。在块806中,日志最佳化组件130选择以第一存储器内日志记录开始的下一存储器内日志记录,其中存储器内日志记录以先进先出(FIFO)次序处理。在块808中,日志最佳化组件130确定是否已选择所有存储器内日志记录。若已选择,则处理继续至块832,否则,处理继续至块810(图8B)。
在块832中,日志最佳化组件130确定容器中是否存在任何新的日志记录。若存在,则处理继续至块804,否则,处理继续至块834。在块834中,日志最佳化组件130从调度表删除容器。
因此,一旦容器被删除,则日志最佳化组件130根据图8的逻辑选择另一容器以用于处理。以此方式,日志最佳化组件130逐一处理容器。
在块810(图8B)中,日志最佳化组件130确定目标键是否在目标系统实体表310中。若存在,则处理继续至块820,否则,处理继续至块812。也即,若目标键在目标系统实体表310中,则日志最佳化组件130执行额外处理以确定是否应传输此日志记录。若目标键不在目标系统实体表310中,则日志最佳化组件130确定此日志记录待传输。
在块812中,日志最佳化组件130在目标系统实体表310中产生具有目标键的新列以用于选定的存储器内日志记录。在块814中,日志最佳化组件130在源系统实体链接表320中产生新列并在目标系统实体表中累加源系统实体参考计数。从块814,处理继续至块816(图8C)。
在块816中,日志最佳化组件130将选定的存储器内日志记录的阶段值改变成源系统实体完成。在块818中,日志最佳化组件130传输选定的日志记录至目标系统170。参照图9描述块818的处理的进一步细节。在块820中,日志最佳化组件130将选定的存储器内日志记录的阶段值改变成完成并将选定的存储器内日志记录的部署改变成“传输成功”或“传输失败”,这依据传输是成功或是失败。从块820,处理继续至块806(图8A)。
返回至图8B,在块822中,日志最佳化组件130确定目标系统实体表310中的源系统实体修改时间戳是否小于(也即,“<”)选定的存储器内日志记录的源系统实体修改时间戳。若小于,则处理继续至块824,否则,处理继续至块826。在块824中,日志最佳化组件130将目标系统实体表310中的源系统实体修改时间戳更新为选定的存储器内日志记录的源系统实体修改时间戳。从块824,处理继续至块816(图8C)。
在块826中,日志最佳化组件130确定是否存在指示选定的存储器内日志记录待传输的规则。若存在,则处理继续至块816(图8C),否则,处理继续至块828。在块828中,日志最佳化组件130确定选定的存储器内日志记录不传输至目标系统170。在块830中,日志最佳化组件130将选定的存储器内日志记录的阶段值改变成完成且将选定的存储器内日志记录的部署改变成“未传输”。
作为实例,源系统160处的源本地应用发出修改用于识别的文档、形式、主张或某一其它人工因素的事务。对于此实例,图5展示从发出事务的源本地应用收集数据的方式;图6展示维持正确的排序以使得用于身份的源本地文档、形式、主张或其它人工因素的完整性维持于目标系统170中的方式;图7展示维持数据完整性(甚至在系统失败状况下)及在失败被校正后可恢复操作的方式;图8展示最佳化工作(例如,复制身份文档(例如,驾照、护照等),而细节上的不同可全部被视为相同且可能无需被传输)的方式;且参照图9,目标系统170可具有可自动地调用的API(例如,围绕诸如“添加一方(add a party)”的能力的基于网站服务的API)。
图9说明根据某些实施例的用于传输日志记录的详细逻辑。控制开始于块900处,对于缓冲器中的存在用于其的目标方法的每一属性,目标系统转换组件140执行目标方法并以由所执行的目标方法所返回的结果值替代目标属性的值以产生目标缓冲器。因此,转换源属性的值。在块902中,对于每一目标类型,目标系统转换组件140基于日志记录中的操作码、目标类型及目标属性标识符来识别码块。在块904中,目标系统转换组件140线性化码块以形成线性化码。码块也可描述为目标接口。在块906中,目标系统转换组件140执行线性化码以传递具有转换后的源属性的日志记录至目标系统170。在某些实施例中,该执行使用目标系统API来传递日志记录。举例而言,目标系统转换组件140可分支至线性化码并开始执行。在块908中,目标系统转换组件140执行用于目标系统170的提交码块。在块910中,目标系统转换组件140接收来自目标系统170的确认。在块912中,目标系统转换组件140将目标控制代码储存于目标系统实体表310中。
因此,目标系统转换组件140通过所识别的参数执行所产生的线性化码。目标系统转换组件140提供经提供以确保不仅应用数据转换而且通过转换后的数据调用至目标系统170的正确本地调用的若干可延伸性点。那些本地调用确保待应用的任何额外语义可正确地注入至整个流程中,以维持本地完整性及本地最佳化。
通过包括目标接口(也即,码块)及将转换值插入至参数(也即,属性)中,此最小化将以另外方式必须进行的程序化。
图10说明根据某些实施例的纵向延伸系统。在某些实施例中,日志150储存于源系统160数据库1000中。在某些实施例中,通过使用者可配置的单一队列消费者线程及多个队列工作者线程来结构化日志消费者组件120。队列消费者线程填充调度表(例如,存储器内散列表)。在某些实施例中,系统的处理实例可描述为包括队列消费者线程、多个队列工作者线程及调度映射。
调度表具有大量散列容器,其中每一个可直接通过键来寻址。所使用的键为日志记录目标键值。散列容器含有单一排序的队列。容器中的每一排序的队列与特定目标键相关联。每一排序的队列可具有全部具有相同目标键的海量存储器内日志记录条目。这些条目按次序保持。此队列中的每一存储器内日志记录为可传递至目标系统170的日志列。队列中的存储器内日志记录通过序号或源系统实体修改时间戳来排序。在某些实施例中,经固定以用于调度表的容器的数目为可配置的。该一个或多个队列工作者线程按次序且并行地消费来自调度映射内的散列容器的存储器内记录,且使用图9中所描述的流程继续将存储器内日志记录传递至目标系统170,且随后错误地或无错误地将日志列标记为在完成阶段中。
在某些实施例中,至目标系统170的日志150调度以目标系统170处理事务的次序被单独线程化(threaded)。当目标系统类型处理例程返回控制代码时,队列工作者线程将日志150标记为完成阶段。
图11说明根据某些实施例的横向延伸系统。逻辑分割的日志表1100储存于数据库1000中。在某些实施例中,向每一队列消费者线程指派不相交分区集合。也即,可存在比队列消费者多的分区。可考虑可达成并行性及实际目标系统160吞吐量的节点能力的站点因素在产品燃烧或产品部署/安装时间设定N。在图11中,存在多个处理实例,且向所述处理实例中的每一个指派一个或多个分区。实施例通过在不损失系统数据完整性的情况下实现重新排序事务而在不损失次序或完整性的情况下实现更好的并行性。这作为图5中的块512及514的结果而实现。块512及514的处理产生接着用于图11中的分区标识符。在图11中,分区在并行处理实例当中分散。因此,实施例基于块512及514中所描述的散列值而使用分区,且接着分区跨越图11中所描述的并行线程而分布。此外,事务重新排序实现在比以另外方式正常出现的分区多的分区之上分布工作负载,且此产生更好的并行性。
对于纵向延伸及横向延伸,目标系统170对于通过相同目标键进行的操作是幂等(idempotent)的。
实施例识别实现达成信息的共享、转换及本地使用的根本能力的有效且可靠方式的技术。实施例提供在数据转换中程序化应用或部署特定可延伸性(以保持对表示本地应用的数据的方式的本地最佳化)的能力。
在实施例的情况下,将数据从源系统160转换至目标系统170,其中假定每一实体具有相关联的键。在某些实施例中,源键及目标键相同。这可简化类型转换或更复杂的数据模型转换。在某些实施例中,其可为归因于由某些系统所提供的基本及非标准数据模型而需要的类型与数据模型转换两者的组合。在实施例的情况下,特定转换技术可包括可用于当前技术中的技术,包括可延伸样式表语言转换(XSLT)。实施例假定提供指定一个或多个转换的设计时间技术且存在有效应用转换的执行时间执行技术。
实施例提供最佳化应用数据转换的次序的能力,其仍产生强数据完整性,同时实现传统系统中不可用的有效并行性。
在实施例的情况下,在源系统160上检测具有充分最佳化的并行性的新事务。这是嵌入至源系统160端中的属性,且源系统160端上的应用无需特殊使用者定制。实施例识别出事务将以目标键值的次序而未必以源系统160的原始改变次序的次序来应用。
举例而言,想象源系统实体执行实例210具有以该临时次序执行的两个事务S1、S2,其中S1以属性值P1=“a”、P2=“b”更新源系统实体执行实例210,且S2以属性值P1=“b”、P2=“d”更新同一源系统执行实例210。若目标系统实体执行实例290使用将P1映射至目标系统实体执行实例290的主键的转换以用于P1,则在此状况下,实施例以任何目标事务次序应用目标系统事务R1及R2。因为尽管S1、S2影响同一源系统实体执行实例210,但目标事务将本质上影响独立目标系统实体执行实例,所以这是允许的。然而,若S1及S2两者更新P1=“a”,则以源系统实体执行实例210次序来应用目标系统事务R1、R2,因为目标事务正影响同一目标系统执行实例290。
在另一实例中,存在随机发生在两个独立源系统实体执行实例上的两个事务S1及S2,其中在第一源系统实体执行实例中P1=“a”且P2=“b”,且在第二源系统实体执行实例中P1=“a”且P2=“c”,接着目标系统事务R1及R2遵循S1及S2实际上发生在源系统实体执行实例中的相同自然次序。这是因为两个源系统实体执行实例已影响同一目标系统实体执行实例。
实施例提供有可能排序目标事务并基于高阶设计准则来确定哪些目标事务系独立的的若干技术。这些技术视需要纵向延伸及横向延伸方法的整个系统所需的吞吐量要求而改变。
在实施例的情况下,使用通过执行可延伸转换程序而获得的转换后的数据来应用事务。实施例使用日志150(其可为用以确定哪一功能适于调用的数据指向表)。此功能可在执行时间被链接且可为应用或部署特定的。
实施例适用于一般信息管理(例如,DBMS)情形,其中实体及模型转换在复制及事务的情形中是常见的。举例而言,建立数据仓库或建立目标系统170为本文中所公开的实施例的另一应用。
实施例使得能够需要较少的服务器,需要对那些服务器的较少监视及管理,且使得能够应用更多服务器(若需要)。
额外实施例细节
如本领域技术人员将了解,本发明的方面可体现为系统、方法或计算机程序产品。因此,本发明的方面可采用完全硬件实施例、完全软件实施例(包括固件、常驻软件、微码等),或组合软件与硬件方面的实施例的形式,所述实施例在本文中都可通称为“电路”、“模块”或“系统”。此外,本发明的方面可采用体现于上面体现有计算机可读程序代码的一个或多个计算机可读介质中的计算机程序产品的形式。
可利用一个或多个计算机可读介质的任何组合。计算机可读介质可为计算机可读信号介质或计算机可读储存介质。计算机可读储存介质可为(例如,但不限于)电子、磁性、光学、电磁、红外线或半导体系统、装置或器件,或前述内容的任何合适组合。计算机可读储存介质的更特定实例(非详尽列表)将包括以下各个:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光学储存器件、磁性储存器件,或前述内容的任何合适组合。在此文档的情形中,计算机可读储存介质可为可含有或储存供指令执行系统、装置或器件使用或结合指令执行系统、装置或器件而使用的程序的任何有形介质。
计算机可读信号介质可包括(例如)在基频中或作为载波的部分的其中体现有计算机可读程序代码的传播数据信号。此传播信号可采用多种形式中的任一个,包括(但不限于)电磁、光学,或其任何合适组合。计算机可读信号介质可为并非计算机可读储存介质且可传达、传播或输送供指令执行系统、装置或器件使用或结合指令执行系统、装置或器件而使用的程序的任何计算机可读介质。
可使用任何适当介质(包括但不限于无线、有线、光纤线缆、RF等或前述内容的任何合适组合)来传输体现于计算机可读介质上的程序代码。
可以一种或多种程序化语言的任何组合编写用于执行本发明的方面的操作的计算机程序码,所述一种或多种程序化语言包括诸如Java、Smalltalk、C++或其类似者的对象导向式程序化语言,及诸如“C”程序化语言或类似程序化语言的传统程序性程序化语言。程序代码可完全在使用者计算机上执行,部分地在使用者计算机上执行,作为独立软件包执行,部分地在使用者计算机上执行且部分地在远程计算机上执行,或完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可经由任何类型的网络(包括局域网络(LAN)或广域网络(WAN))连接至使用者计算机,或可(例如,使用因特网服务提供商,经由因特网)连接至外部计算机。
下文参考根据本发明的实施例的方法、装置(系统)及计算机程序产品的流程图说明和/或方块图来描述本发明的方面。应理解,可通过计算机程序指令来实施流程图说明和/或方块图的每一块,及所述流程图说明和/或方块图中的块的组合。可将这些计算机程序指令提供至通用计算机、专用计算机或其它可编程数据处理装置的处理器以产生一机器,以使得经由该计算机或其它可编程数据处理装置的处理器执行的指令产生用于实施流程图和/或方块图块中所指定的功能/动作的构件。
这些计算机程序指令也可储存在一计算机可读介质中,其可指导计算机、其它可编程数据处理装置或其它器件以特定方式起作用,以使得储存在该计算机可读介质中的指令产生一制造对象,该制造对象包括实施该或所述流程图和/或方块图块中所指定的功能/动作的指令。
所述计算机程序指令也可加载至计算机、其它可编程数据处理装置或其它器件上,以使一系列操作步骤在该计算机、其它可编程装置或其它器件上执行以产生计算机实施处理程序,以使得在该计算机或其它可编程装置上执行的指令提供用于实施该或所述流程图和/或方块图块中所指定的功能/动作的处理程序。
实施所描述的操作的程序代码可以硬件逻辑或电路(例如,集成电路芯片、可编程门阵列(PGA)、特殊应用集成电路(ASIC)等)来进一步实施。
图12说明可根据某些实施例使用的系统架构1200。计算设备100、源系统160和/或目标系统170可实施系统架构1200。系统架构1200适合于储存和/或执行程序代码,且包括直接地或经由系统总线1220而间接地耦合至存储器组件1204的至少一个处理器1202。存储器组件1204可包括在程序代码的实际执行期间所使用的本地存储器、大容量储存器及高速缓存,高速缓存提供至少一些程序代码的临时储存以便减少在执行期间必须从大容量储存器提取程序代码的次数。存储器组件1204包括操作系统1205及一个或多个计算机程序1206。
输入/输出(I/O)器件1212、1214(包括但不限于键盘、显示器、指针器件等)可直接或经由介入的I/O控制器1210耦合至该系统。
网络配接器1208也可耦合至系统,以使该数据处理系统能够经由介入的私用或公用网络而耦合至其它数据处理系统或远程打印机或储存器件。调制解调器、电缆调制解调器及以太网络卡仅为当前可用类型的网络配接器1208中的少数。
系统架构1200可耦合至储存器1216(例如,非易失性储存区域,诸如磁盘驱动器、光盘驱动器、磁带驱动器等)。储存器1216可包含内部储存器件或附加式或网络可存取储存器。储存器1216中的计算机程序1206可以此项技术中已知的方式加载至存储器组件1204中并由处理器1202执行。
系统架构1200可包括少于所说明的组件的组件、本文未说明的额外组件,或所说明的组件与额外组件的某一组合。系统架构1200可包含此项技术中已知的任何计算设备,诸如主机、服务器、个人计算机、工作站、膝上型计算机、手持型计算机、电话器件、网络设施、虚拟化器件、储存器控制器等。
附图中的流程图及方块图说明根据本发明的各种实施例的系统、方法及计算机程序产品的可能实施的架构、功能性及操作。就此而言,在流程图或方块图中的每一块可表示程序代码的模块、分区或部分,其包含用于实施(多个)指定逻辑功能的一个或多个可执行指令。也应注意,在一些替代实施中,块中所提的功能可能不以图中所提的次序发生。举例而言,取决于所涉及的功能性,接连展示的两个块实际上可实质上同时执行,或所述块有时可以相反次序执行。也应注意,方块图和/或流程图说明的每一块,及方块图和/或流程图说明中的块的组合可通过执行指定功能或动作的基于专用硬件的系统实施,或通过专用硬件与计算机指令的组合来实施。
已出于说明及描述的目的而呈现本发明的实施例的先前描述。其不旨在详尽的或将所述实施例限于所公开的精确形式。依据以上教导,许多修改及变化是可能的。旨在使所述实施例的范围并非受此详细描述限制,而是受附加至此的权利要求书限制。以上说明书、实例及数据提供所述实施例的组合物的制造及使用的完整描述。因为可在不脱离实施例的精神及范围的情况下进行许多实施例,所以实施例驻留于下文所附的权利要求书或任何随后申请的权利要求书及其等效物中。

Claims (16)

1.一种用于传输日志记录的方法,其包含:
响应于由本地事务改变源对象,
产生日志记录,其中所述日志记录中的每一个包括序列标识符、源系统实体修改时间戳、目标键、目标分区标识符、及源属性的值,其中所述源属性使用目标键指示符来识别;
基于每一日志记录的阶段值来选择要处理的所述日志记录,其中该阶段值为提交、正在处理及源系统实体状态改变完成中的一个;
将一个或多个不相交分区指派给多个处理实例中的每一个;及
在所述多个处理实例中的每一个的控制下,
确定是否传输在指派给该处理实例的所述一个或多个不相交分区中的日志记录;及
响应于确定该日志记录待传输,传输该日志记录。
2.如权利要求1的方法,其进一步包含:
使用该目标键指示符来识别所述源属性中的键源属性,其中该目标键指示符指示所述源属性中的哪些为用以产生目标键的键源属性;
使用所述键源属性产生该目标键;及
使用该目标键产生该目标分区标识符。
3.如权利要求1或权利要求2的方法,其进一步包含:
将所述源属性值储存于缓冲器中;及
对于所述源属性中的存在用于其的源方法的每一个,执行该源方法并以由所执行的源方法所返回的结果值替代该源属性的值。
4.如先前权利要求中任一项的方法,其中所述处理实例中的每一个包括队列消费者线程、多个队列工作者线程及调度映射,其中所述多个队列工作者线程按次序且并行地消费该调度映射中的所述日志记录。
5.如先前权利要求中任一项的方法,其进一步包含:
提取具有提交的该阶段值的日志记录;
基于该目标键将所提取的日志记录推入至调度表的多个容器中的一个中;及
将所提取的日志记录中的每一个的该阶段值更新成正在处理的阶段值。
6.如先前权利要求中任一项的方法,其进一步包含:
通过以下方式执行恢复处理:
提取具有正在处理或源系统实体状态改变完成的阶段值的日志记录;及
基于该目标键将所提取的日志记录推入至调度表的多个容器中的一个中。
7.如先前权利要求中任一项的方法,其中确定是否传输该日志记录进一步包含:
响应于确定该日志记录的该目标键不在目标系统实体表中,将该日志记录传输至目标系统;
响应于确定该日志记录的该目标键在该目标系统实体表中及确定该目标系统实体表中的源系统实体修改时间戳小于该日志记录中的源系统实体修改时间戳,将该日志记录传输至该目标系统;及
响应于确定该目标系统实体表中的该源系统实体修改时间戳不小于该日志记录中的该源系统实体修改时间戳及确定存在指示基于所述源属性而待传输该日志记录的规则,将该日志记录传输至该目标系统。
8.如先前权利要求中任一项的方法,其中传输该日志记录进一步包含:
对于所述源属性中的存在用于其的目标方法的每一个,执行该目标方法并以由所执行的目标方法所返回的结果值替代该源属性的值,其中所述源属性被转换;
对于多个目标类型中的每一个,识别待执行的码块;
执行每一所识别的码块以将具有转换后的源属性的该日志记录传递至该目标系统。
9.一种用于传输日志记录的系统,其包含:
用于响应于由本地事务改变源对象,
产生日志记录,其中所述日志记录中的每一个包括序列标识符、源系统实体修改时间戳、目标键、目标分区标识符、及源属性的值的装置,其中所述源属性使用目标键指示符来识别;
用于基于每一日志记录的阶段值来选择要处理的所述日志记录,其中该阶段值为提交、正在处理及源系统实体状态改变完成中的一个的装置;
用于将一个或多个不相交分区指派给多个处理实例中的每一个的装置;及
用于在所述多个处理实例中的每一个的控制下,
确定是否传输在指派给该处理实例的所述一个或多个不相交分区中的日志记录;及
响应于确定该日志记录待传输,传输该日志记录的装置。
10.如权利要求9的系统,其进一步包含:
用于使用该目标键指示符来识别所述源属性中的键源属性的装置,其中该目标键指示符指示所述源属性中的哪些为用以产生目标键的键源属性;
用于使用所述键源属性产生该目标键的装置;及
用于使用该目标键产生该目标分区标识符的装置。
11.如权利要求9或权利要求10的系统,其进一步包含:
用于将所述源属性值储存于缓冲器中的装置;及
用于对于所述源属性中的存在用于其的源方法的每一个,执行该源方法并以由所执行的源方法所返回的结果值替代该源属性的值的装置。
12.如权利要求9或权利要求10的系统,其中所述处理实例中的每一个包括队列消费者线程、多个队列工作者线程及调度映射,其中所述多个队列工作者线程按次序且并行地消费该调度映射中的所述日志记录。
13.如权利要求9或权利要求10的系统,其进一步包含:
用于提取具有提交的该阶段值的日志记录的装置;
用于基于该目标键将所提取的日志记录推入至调度表的多个容器中的一个中的装置;及
用于将所提取的日志记录中的每一个的该阶段值更新成正在处理的阶段值的装置。
14.如权利要求9或权利要求10的系统,其进一步包含:
用于通过以下方式执行恢复处理:
提取具有正在处理或源系统实体状态改变完成的阶段值的日志记录;及
基于该目标键将所提取的日志记录推入至调度表的多个容器中的一个中的装置。
15.如权利要求9或权利要求10的系统,其中确定是否传输该日志记录进一步包含:
响应于确定该日志记录的该目标键不在目标系统实体表中,将该日志记录传输至目标系统;
响应于确定该日志记录的该目标键在该目标系统实体表中及确定该目标系统实体表中的源系统实体修改时间戳小于该日志记录中的源系统实体修改时间戳,将该日志记录传输至该目标系统;及
响应于确定该目标系统实体表中的该源系统实体修改时间戳不小于该日志记录中的该源系统实体修改时间戳及确定存在指示基于所述源属性而待传输该日志记录的规则,将该日志记录传输至该目标系统。
16.如权利要求9或权利要求10的系统,其中传输该日志记录进一步包含:
对于所述源属性中的存在用于其的目标方法的每一个,执行该目标方法并以由所执行的目标方法所返回的结果值替代该源属性的值,其中所述源属性被转换;
对于多个目标类型中的每一个,识别待执行的码块;
执行每一所识别的码块以将具有转换后的源属性的该日志记录传递至该目标系统。
CN201080054642.XA 2009-12-04 2010-11-29 用于传输日志记录的方法和系统 Active CN102640151B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/631,641 2009-12-04
US12/631,641 US8244686B2 (en) 2009-12-04 2009-12-04 High throughput, reliable replication of transformed data in information systems
PCT/EP2010/068438 WO2011067214A2 (en) 2009-12-04 2010-11-29 High throughput, reliable replication of transformed data in information systems

Publications (2)

Publication Number Publication Date
CN102640151A CN102640151A (zh) 2012-08-15
CN102640151B true CN102640151B (zh) 2014-04-30

Family

ID=44083000

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080054642.XA Active CN102640151B (zh) 2009-12-04 2010-11-29 用于传输日志记录的方法和系统

Country Status (7)

Country Link
US (2) US8244686B2 (zh)
JP (1) JP5744898B2 (zh)
CN (1) CN102640151B (zh)
DE (1) DE112010004652B4 (zh)
GB (1) GB2489357B (zh)
TW (1) TWI479341B (zh)
WO (1) WO2011067214A2 (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8244686B2 (en) * 2009-12-04 2012-08-14 International Business Machines Corporation High throughput, reliable replication of transformed data in information systems
JP5460486B2 (ja) * 2010-06-23 2014-04-02 インターナショナル・ビジネス・マシーンズ・コーポレーション データをソートする装置及び方法
AU2012202173B2 (en) * 2011-04-18 2013-09-05 Castle Bookkeeping Wizard Pty Ltd System and method for processing a transaction document including one or more financial transaction entries
US9423983B2 (en) * 2012-01-19 2016-08-23 Syncsort Incorporated Intelligent storage controller
US8805777B2 (en) 2012-04-13 2014-08-12 International Business Machines Corporation Data record collapse and split functionality
CN102693312B (zh) * 2012-05-28 2014-05-28 清华大学 一种键值库数据存储中柔性事务管理方法
US10706009B2 (en) * 2013-03-14 2020-07-07 Oracle International Corporation Techniques to parallelize CPU and IO work of log writes
US10268727B2 (en) 2013-03-29 2019-04-23 Hewlett Packard Enterprise Development Lp Batching tuples
US9652491B2 (en) 2013-04-15 2017-05-16 International Business Machines Corporation Out-of-order execution of strictly-ordered transactional workloads
US9465649B2 (en) 2013-04-15 2016-10-11 International Business Machines Corporation Executing distributed globally-ordered transactional workloads in replicated state machines
CN104346373B (zh) * 2013-07-31 2017-12-15 华为技术有限公司 分区日志队列同步管理方法及设备
US10235382B2 (en) 2013-11-12 2019-03-19 Red Hat, Inc. Transferring objects between different storage devices based on timestamps
US10296371B2 (en) 2014-03-17 2019-05-21 International Business Machines Corporation Passive two-phase commit system for high-performance distributed transaction execution
US10157108B2 (en) 2014-05-27 2018-12-18 International Business Machines Corporation Multi-way, zero-copy, passive transaction log collection in distributed transaction systems
SG11201610664UA (en) * 2014-06-26 2017-01-27 Amazon Tech Inc Multi-database log with multi-item transaction support
US9613078B2 (en) 2014-06-26 2017-04-04 Amazon Technologies, Inc. Multi-database log with multi-item transaction support
GB2533086A (en) * 2014-12-08 2016-06-15 Ibm Controlling a multi-database system
US9959137B2 (en) 2015-04-14 2018-05-01 Microsoft Technology Licensing, Llc Transaction redo using skip element for object
US10102251B2 (en) 2015-04-14 2018-10-16 Microsoft Technology Licensing, Llc Lockless open collection data structure
US10031814B2 (en) 2015-04-14 2018-07-24 Microsoft Technology Licensing, Llc Collection record location as log tail beginning
US10133768B2 (en) 2015-04-14 2018-11-20 Microsoft Technology Licensing, Llc Latest external dependee entity in transaction record
US10592494B2 (en) * 2015-04-14 2020-03-17 Microsoft Technology Licensing, Llc Collection record for overlapping data stream collections
US11294864B2 (en) * 2015-05-19 2022-04-05 Vmware, Inc. Distributed transactions with redo-only write-ahead log
US10585876B2 (en) 2016-04-07 2020-03-10 International Business Machines Corporation Providing snapshot isolation to a database management system
US10747626B2 (en) 2016-10-16 2020-08-18 International Business Machines Corporation Method and technique of achieving extraordinarily high insert throughput
US11157831B2 (en) 2017-10-02 2021-10-26 International Business Machines Corporation Empathy fostering based on behavioral pattern mismatch
US11170000B2 (en) * 2017-10-20 2021-11-09 Intuit Inc. Parallel map and reduce on hash chains
US20210240516A1 (en) * 2020-02-05 2021-08-05 International Business Machines Corporation Distributed transaction management
US11392562B2 (en) 2020-04-29 2022-07-19 Oracle International Corporation Hybrid client transaction mode for key value store
CN113553373B (zh) * 2021-06-11 2023-11-21 北京旷视科技有限公司 数据同步方法及装置、存储介质及电子设备

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5280611A (en) * 1991-11-08 1994-01-18 International Business Machines Corporation Method for managing database recovery from failure of a shared store in a system including a plurality of transaction-based systems of the write-ahead logging type
US6018723A (en) * 1997-05-27 2000-01-25 Visa International Service Association Method and apparatus for pattern generation
CA2281331A1 (en) * 1999-09-03 2001-03-03 Cognos Incorporated Database management system
EP1317715A1 (en) * 2000-08-04 2003-06-11 Infoglide Corporation System and method for comparing heterogeneous data sources
US6795868B1 (en) * 2000-08-31 2004-09-21 Data Junction Corp. System and method for event-driven data transformation
JP2002099451A (ja) * 2000-09-26 2002-04-05 Kawaju Techno Service Corp データ連携システム及びデータ連携方法
WO2003001720A2 (en) * 2001-06-21 2003-01-03 Isc, Inc. Database indexing method and apparatus
US7398263B2 (en) * 2002-02-26 2008-07-08 International Business Machines Corporation Sequenced modification of multiple entities based on an abstract data representation
US20030204516A1 (en) * 2002-04-24 2003-10-30 Jorg Klosterhalfen Determination of relevant figures for database recovery processes
US7647354B2 (en) 2002-05-24 2010-01-12 Oracle International Corporation High-performance change capture for data warehousing
WO2004025475A1 (ja) * 2002-09-10 2004-03-25 Annex Systems Incorporated データベースの再編成システム、並びに、データベース
US6976022B2 (en) * 2002-09-16 2005-12-13 Oracle International Corporation Method and mechanism for batch processing transaction logging records
US7222343B2 (en) * 2003-01-16 2007-05-22 International Business Machines Corporation Dynamic allocation of computer resources based on thread type
CA2472887A1 (en) * 2003-06-30 2004-12-30 Gravic, Inc. Methods for ensuring referential integrity in multithreaded replication engines
US7490083B2 (en) * 2004-02-27 2009-02-10 International Business Machines Corporation Parallel apply processing in data replication with preservation of transaction integrity and source ordering of dependent updates
GB0414291D0 (en) * 2004-06-25 2004-07-28 Ibm Methods, apparatus and computer programs for data replication
US8812433B2 (en) * 2005-02-07 2014-08-19 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
US7653650B2 (en) * 2005-12-13 2010-01-26 International Business Machines Corporation Apparatus, system, and method for synchronizing change histories in enterprise applications
WO2007083371A1 (ja) * 2006-01-18 2007-07-26 Fujitsu Limited データ統合装置、方法、プログラムを記録した記録媒体
US9361137B2 (en) * 2006-03-10 2016-06-07 International Business Machines Corporation Managing application parameters based on parameter types
US9430552B2 (en) * 2007-03-16 2016-08-30 Microsoft Technology Licensing, Llc View maintenance rules for an update pipeline of an object-relational mapping (ORM) platform
US7730044B2 (en) * 2007-04-02 2010-06-01 Bmc Software, Inc. Log data store and assembler for large objects in database system
US8190646B2 (en) * 2008-01-02 2012-05-29 International Business Machines Corporation Associative object model for composite entity information
JP5136200B2 (ja) * 2008-05-16 2013-02-06 富士通株式会社 ログ記録システム
US8301593B2 (en) * 2008-06-12 2012-10-30 Gravic, Inc. Mixed mode synchronous and asynchronous replication system
US8244686B2 (en) * 2009-12-04 2012-08-14 International Business Machines Corporation High throughput, reliable replication of transformed data in information systems

Also Published As

Publication number Publication date
US20120278288A1 (en) 2012-11-01
US20110137864A1 (en) 2011-06-09
GB2489357A (en) 2012-09-26
WO2011067214A3 (en) 2012-02-23
DE112010004652B4 (de) 2019-09-05
TWI479341B (zh) 2015-04-01
WO2011067214A2 (en) 2011-06-09
GB201211781D0 (en) 2012-08-15
CN102640151A (zh) 2012-08-15
US8244686B2 (en) 2012-08-14
JP5744898B2 (ja) 2015-07-08
DE112010004652T5 (de) 2012-10-31
JP2013513147A (ja) 2013-04-18
US9002802B2 (en) 2015-04-07
GB2489357B (en) 2016-02-17
TW201140350A (en) 2011-11-16

Similar Documents

Publication Publication Date Title
CN102640151B (zh) 用于传输日志记录的方法和系统
US8510344B1 (en) Optimistically consistent arbitrary data blob transactions
CN103544323B (zh) 一种数据更新方法和装置
US9639542B2 (en) Dynamic mapping of extensible datasets to relational database schemas
US10140351B2 (en) Method and apparatus for processing database data in distributed database system
CN109416694A (zh) 包括资源有效索引的键值存储系统
US8396833B2 (en) Inode management in redirect-on-write file system
US8856089B1 (en) Sub-containment concurrency for hierarchical data containers
CN106663047A (zh) 用于优化的签名比较和数据复制的系统和方法
CN104881466B (zh) 数据分片的处理以及垃圾文件的删除方法和装置
CN104933173B (zh) 一种用于异构多数据源的数据处理方法、装置和服务器
US10997124B2 (en) Query integration across databases and file systems
CN103678556A (zh) 列式数据库处理的方法和处理设备
CN109086388A (zh) 区块链数据存储方法、装置、设备及介质
CN111026727A (zh) 基于日志文件的表维度检索数据同步方法、系统及装置
CN105956166A (zh) 数据库读写方法和读写装置
CN109767274B (zh) 一种对海量发票数据进行关联存储的方法及系统
US8688666B1 (en) Multi-blob consistency for atomic data transactions
US10740316B2 (en) Cache optimization for data preparation
US9928259B2 (en) Deleted database record reuse
CN109815240A (zh) 用于管理索引的方法、装置、设备和存储介质
CN114127707A (zh) 用于处理写请求的系统、计算节点和方法
CN104508656B (zh) 在分布式计算系统中的自动化文档复制
CN108027835B (zh) 用于管理主数据库和副本数据库的存储的装置和方法
CN110109866A (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