CN101390094B - 针对复制数据库的分布式冲突解决 - Google Patents
针对复制数据库的分布式冲突解决 Download PDFInfo
- Publication number
- CN101390094B CN101390094B CN2007800061639A CN200780006163A CN101390094B CN 101390094 B CN101390094 B CN 101390094B CN 2007800061639 A CN2007800061639 A CN 2007800061639A CN 200780006163 A CN200780006163 A CN 200780006163A CN 101390094 B CN101390094 B CN 101390094B
- Authority
- CN
- China
- Prior art keywords
- conflict
- data object
- solution process
- local data
- local
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- 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/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Abstract
响应于对一个或多个同步冲突的检测而和每个复制品的同步过程并发运行一个或多个解决过程。每个解决过程用于解决有关数据对象的冲突而同步过程则继续处理其他同步更新。在冲突解决已被确定之后,针对本地复制品的当前条件测试冲突解决。如果冲突解决不陈旧,则将其应用于本地复制品并传递回同步过程以供传播至远程复制品。否则,如果冲突解决陈旧,则被丢弃。
Description
背景
一般而言,数据库是以系统性的方式记录在存储介质中以供计算系统访问的经组织的数据对象(例如,数据表、数据记录、文件等)集合。每个数据对象可以包括通常被组织为一组键标数据元素或值以便检索和排序的一个或多个数据记录。数据库一般由模式结构化地描述,而模式指定数据库中数据对象的类型和关系。诸如数据库管理系统(DBMS)之类的程序能够查询数据库以访问指定的数据对象。
复制允许将一个存储介质的单个数据库拷贝到第二存储介质,从而有效创建原始数据库的独立实例。第二存储介质上的数据库副本被称为“复制数据库”。原始数据库和复制品(统称为“复制品”)共享公用模式的全部或部分,包括公用数据对象、键值对以及其他标识符和结构,从而将相关复制品耦合在一起。共享模式允许同一查询用于复制品两者。此外,每个复制品能够被本地修改并在随后通过被称为“同步”的过程用其他相关复制品来更新。通过同步,一个复制品中数据对象的改变就被记录并作为同步更新传播到其他相关复制品,其中对相关复制品的相应数据对象执行相同的改变。
然而,当在各分开复制品中的相应数据对象被并发地修改时会出现冲突。一般而言,冲突表示在一个复制品A处对一数据对象进行修改,随后在A处的改变信息经通信链接传播至B之前就在另一复制品B处对相应的数据对象进行修改。例如,某产品的价格可以在一个复制品处被改变为$X,而几乎与此同时(例如,在与其他复制品同步每个改变之前),相同产品的价格可以在另一复制品处被改变为$Y,由此就在两个复制品之间对于该产品的价格产生了冲突。为了将复制品恢复到一致状态,冲突可被检测并在随后被解决。
存在不同的策略来检测冲突。例如,可以跟踪一复制品已被修改的时间,并在同步期间将其传播给其他复制品。一旦接收到同步更新,每个接收复制品就能够通过比较远程复制品处数据对象的改变时间和另一相应数据对象(无论本地或远程)的改变时间来检测冲突。
在检测到冲突之后,分布式数据库系统能够工作以解决冲突。同样存在不同的策略来解决这些冲突。例如,冲突可以在算法上解决,通过用户交互解决等。然而,由于复制数据库系统的分布式特性和同步的异步特性,因而会在不同复制品处同时检测到相应数据对象内的竞争冲突。竞争冲突的检测因此能够触发竞争冲突解决并将其传播至整个分布式数据库,藉此引入新的冲突。如此,现有的数据库服务器易于在冲突解决期间停止数据库处理,从而避免这一竞争冲突解决。此外,竞争冲突解决尤其需要挑战“非齐次(non-idempotent)”冲突(即,不同的复制品会不同地解决冲突的情况或者解决会激起遍布该分布式数据库的显著改变的时刻)。因此,如何在不停止其他数据库处理的情况下处理分布式数据库内不同复制品处的冲突解决的问题就变得相关。
概述
本文描述的并声明的各实现通过响应于对一个或多个同步冲突的检测而和每个复制品的同步过程并发地运行一个或多个解决过程来解决上述问题。每个解决过程用于解决有关数据对象的冲突而同步过程则继续处理其他同步更新。在冲突解决已被确定之后,针对本地复制品的当前条件测试冲突解决。如果冲突解决不陈旧(例如,在本地解决过程期间没有外部冲突解决被接收),则将其应用于本地复制品并传递回到同步过程以供传播至远程复制品。否则,如果冲突解决是陈旧的(例如,一个外部冲突解决已从另一复制品被接收),则本地冲突解决被丢弃。
在一些实现中,提供作为计算机程序产品的制品。计算机程序产品的一个实现提供可由计算机系统读取并编码计算机程序的计算机程序存储介质。由计算系统在载波内具体化并编码计算机程序的计算机数据信号可提供计算机程序产品的另一个实现。在此还描述和列举其它实现。
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识要求保护的主题的关键特征或本质特征,也不旨在用于帮助确定要求保护的主题的范围。
附图说明
图1示出了描述一示例性分布式冲突解决的分布式数据库系统。
图2示出了描述另一示例性分布式冲突解决的分布式数据库系统。
图3示出了用于分布式数据库系统的示例性同步和解决过程。
图4示出了可用于实现所描述技术的示例性系统。
具体实施方式
图1示出了描述示例性分布式冲突解决的分布式数据库系统100。分布式数据库系统100可以具有分布式相关数据库、文件系统、数据日志或其他经组织数据收集的形式。第一数据库服务器102、第二数据库服务器104和第三数据库服务器106经由诸如因特网或局域网(LAN)等的网络108通信连接。每个数据库服务器都可以访问分布式数据库的各别复制品。每个复制品与分布式数据库系统100中的其他复制品共享一完整或部分模式。此外,各复制品由同步框架耦合,在其中每个复制品经由同步更新将其改变传播至其他相关复制品,而后者随后可以用所传播的改变更新其自身的数据对象。
同步指的是用另一复制品的改变的数据对象的数据来更新一个复制品的数据对象,使得第一数据对象反映出对该改变的数据对象所做出的改变。在一个实现中,例如本地复制品的同步作为背景线程或过程来执行。如果数据对象的远程副本已被改变并且数据对象的本地副本尚未被更新以反映该改变,则同步实行对数据对象本地副本的改变。此外,同步将本地改变作为同步更新持续传播至其他相关复制品,并且处理从远程复制品接收的同步更新以更新本地数据。使用这些特征,一个复制品中的改变就可以被同步到分布式数据库系统中的所有其他相关复制品内。
然而,如果并发地检测到两个不同复制品内相应数据对象的改变,则会导致冲突。例如,在图1中,与数据库服务器102相关联的复制品的数据对象110用新价格更新,得到更新的数据对象112(参见包含经改变价格的阴影单元格)。改变操作被传播至其他相关复制品(参见分支到复制品104和106的虚线箭头114)。然而,在来自与数据库服务器104相关联的复制品的改变进行传播的同时,与数据库服务器104相关联的复制品的相应数据对象116用新价格更新,得到更新的数据对象118(参见包含经改变价格的阴影单元格)。结果在数据库服务器102处,就会检测到与数据库服务器102和104相关联的复制品的相应数据对象之间的冲突。
可以使用不同的策略来检测这些冲突。在一个实现中,分布式数据库系统利用分布式时间戳机制并使用同步参数来检测冲突。同步参数可以显式地指代向量时间对、实时值、版本向量、或者可用于跟踪彼此相关的更新事件的其他值。
在一个实现中,每个复制品维持本地时间戳,后者只要在该复制品处的数据状态改变时就递增,而数据状态的改变或者由于本地更新或者由于与对等复制品的同步。对于每个数据对象,该复制品还维持两个同步参数:(1)修改参数m,(为每个本地已知的复制品R)指示R处数据对象最后改变的R处时间戳;以及(2)同步参数s,(为每个本地已知的复制品R)指示R处数据对象最后同步的R处时间戳(例如,由远程同步更新产生)。在一个实现中,参数m和s被表示为带有对应于每个已知复制品的同步参数的时间戳向量,虽然也可以利用其他参数类型。通俗地,修改参数m跟踪数据对象的本地版本,而同步时间参数s跟踪数据对象相对于其他复制品有多当前。同步过程比较修改时间参数mA和同步时间参数sA(与远程复制品A的数据对象的同步更新相关联)的组合与修改时间参数mB和同步时间参数sB(与本地复制品B的对应本地数据对象相关联)的组合,以确定是否更新本地数据对象。
例如,当考虑复制品B中的本地数据对象是否需要相对于复制品A被更新时,mA≤sB测试复制品B中的本地数据对象是否由复制品A的对应数据对象中的改变同步。因此,如果mA≤sB,复制品B无需被更新,因为复制品B已经与从复制品A获取的最近修改相同步。相反地,如果mA>sB,,则mB≤sA测试复制品A是否相对于来自复制品B的最后修改而被同步。因此,如果mA>sB且mB≤sA,则复制品A具有尚未与复制品B同步的更近修改,所以复制品B需要用来自复制品A的同步更新来更新。然而,如果mA>sB且mB>sA,则复制品A与B两者都已经用并发修改来修改并且存在冲突。应该理解也可以利用其他冲突检测模式。
在检测到冲突之后,数据库服务器通常会尝试使用各种冲突解决技术中的一种来解决冲突。在一个实现中,可以向用户呈现冲突并且向其询问以选择期望的结果,随后该结果可以传播遍及分布式数据库系统100。在其它实现中,冲突可在算法上被解决(例如,基于时间向量选择最近改变,选择最高改变值等)。也可以利用其他冲突解决技术。
数据库服务器102检测冲突并用于解决该冲突。在一个实现中,在数据库服务器102上执行的行进中的同步过程产生冲突解决线程并在随后继续与接收自其他复制品的其他同步更新相同步。这些更新可以包括针对已在远程复制品处生成的相应冲突的冲突解决。在确定了冲突解决之后,数据库服务器102就确定该解决是否陈旧。陈旧解决指的是因为来自远程复制品的介入冲突同步更新已经在本地复制品的冲突解决处理期间应用于相同数据对象而不再有效的冲突解决。因此在此情况下,冲突已由远程数据库服务器解决,或者数据对象已通过其他途径改变,并且由解决过程确定的本地冲突解决是陈旧的。如果数据库服务器102确定本地冲突解决不陈旧,则该解决就被本地应用并传播至分布式数据库系统中的其他相关复制品。
图2示出了描述另一示例性分布式冲突解决的分布式数据库系统200。第一数据库服务器202、第二数据库服务器204和第三数据库服务器206经由诸如因特网或局域网(LAN)等的网络208通信连接。每个数据库服务器都可以访问分布式数据库的各别复制品。每个复制品与分布式数据库系统200中的其他复制品共享一完整或部分模式。此外,各复制品由同步框架耦合,在其中每个复制品将其改变传播至其他相关复制品,而后者随后可以用传播的改变更新其自身数据。
如同图1的示例一样,会产生冲突。例如,在图2中,与数据库服务器202相关联的复制品的数据对象210用新价格更新,得到更新的数据对象212(参见包含经改变价格的阴影单元格)。改变操作被传播至其他相关复制品(参见将改变操作传播至复制品206的虚线箭头214,应该理解该改变操作也可传播至复制品204)。然而,在来自与数据库服务器204相关联的复制品的改变进行传播的同时,与数据库服务器204相关联的复制品的数据对象216用新价格更新,得到更新的数据对象218(参见包含经改变价格的阴影单元格)。改变操作被传播至其他相关复制品(参见将改变操作传播至复制品206的虚线箭头215,应该理解该改变操作也可传播至复制品202)。结果在数据库服务器206处,就会检测到与数据库服务器202和204相关联的复制品的相应数据对象之间的冲突。
数据库服务器206检测冲突并用于解决该冲突。在一个实现中,在数据库服务器206上执行的行进中的同步过程产生冲突解决线程并在随后继续与接收自其他复制品的其他更新相同步。在确定了冲突解决之后,数据库服务器206就确定该解决是否陈旧。陈旧解决指的是因为来自远程复制品或者本地修改的介入冲突同步更新已经在本地复制品的冲突解决处理期间应用于相同数据对象而不再有效的冲突解决。因此在此情况下,冲突已由远程数据库服务器解决,或者数据对象已通过其他途径改变,并且由解决过程确定的本地冲突解决是陈旧的。如果数据库服务器206确定本地冲突解决不陈旧,则该解决就被本地应用并传播至分布式数据库系统中的其他相关复制品。
图3示出了用于分布式数据库系统的示例性同步和解决过程300。同步过程通常在每台数据库服务器上执行,接收来自远程复制品的远程同步更新并将本地同步更新传播至那些远程复制品。每个同步更新包括同步参数,诸如版本向量、向量时间对或其他参数。例如,同步参数可以具有包含本地已知的有关在每个已知远程复制品处数据对象的同步或修改状态的信息的向量的形式。
接收操作302接收来自更新队列的同步更新。更新队列包括从远程复制品接收的同步更新以及要从本地复制品传播的同步更新(例如,本地冲突解决、本地同步或其他本地修改)。如果该同步更新由决定操作304判定为本地(例如,原始本地修改、本地确定的冲突解决、或者由远程同步更新产生的本地更新),则传播操作306将该同步更新发送至其他复制品并且处理返回到接收操作302以接收更新队列中的下一个同步更新。该同步更新由决定操作304判定为来自远程复制品(例如,远程同步更新或者远程确定的冲突解决),则锁定操作308锁定本地复制品中的数据对象以避免远程同步更新和本地冲突解决应用之间的竞争条件。审查操作309随后检查同步更新的同步参数以确定冲突是否存在,诸如使用前述修改参(m)数和同步参数(s)方法。如果未在检测操作310中检测到冲突,则更新操作312或者将来自同步更新的改变应用于本地复制品或者什么也不做(例如,如果本地复制品已经被同步)。
在一个实现中,可以应用来自更新的两类不同改变,虽然在可选实现中可以只应用一类或两类以上。在第一类改变中,更新导致本地复制品中一状态(例如,数据)改变。例如,同步更新可以指示本地复制品中数据对象的值。作为响应,更新操作312改变数据对象的值并更新与该数据对象相关联的同步参数。在第二类改变中,更新不导致本地复制品中的状态改变。例如,在同步更新中指示的值与本地数据对象中已有值相同。作为响应,更新操作312只需更新与该数据对象相关联的同步参数而同步更新的剩余部分(例如,值改变)可被丢弃。
在更新操作312之后,解锁操作313解除该数据对象的锁定,而排队操作315随后将同步更新作为本地更新传递给更新队列,该更新于是能够在同步过程的下一阶段被正常处理。作为替换,同步更新可以被直接传递给传播操作306。处理随后行进至传播操作306以在其返回到接收操作302来接收来自更新队列的另一同步更新之前通知改变的其他远程复制品。
如果检测操作310检测到冲突,则快照操作314就通过记录有关同步更新和冲突中本地数据对象的信息来捕捉该冲突的快照,上述信息诸如可以是本地复制品的当前时间戳、本地数据对象的状态(例如,值)、远程数据对象的状态、本地同步参数、以及远程同步参数。新的过程操作316初始(例如,产生)由该快照伴随的独立解决过程(例如,新线程)以确定该冲突的解决。解决过程与关联于该冲突的数据对象相关联,从而可以为不同的数据对象同时运行多个解决过程。在初始解决过程之后,同步过程执行解除数据对象锁定的解锁操作317,并在随后返回到接收操作302同时解决过程继续处理该冲突。当一个或多个过程并发操作时,每个过程能够与多任务或多线程环境中一个或多个处理器上的其他过程协同执行指令。这一并发处理允许同步过程用同步更新继续更新本地复制品并传播其他改变,同时解决过程处理该冲突。
在解决过程中,接收操作318接收来自同步过程的快照。解决操作320解决该冲突,诸如通过应用冲突解决算法或者要求用户从两个数据状态(本地或远程)中选择一个。在解决该冲突之后,锁定操作322锁定本地复制品中的数据对象以避免远程同步更新和本地冲突解决应用之间的竞争条件。
在向本地复制品应用经解决的更新之前,解决过程检测该冲突解决是否陈旧。陈旧暗示在该解决被处理期间,接收另一远程同步更新并将其应用于同一本地数据对象。因此,陈旧测试操作324记录解决操作320之后存在的条件并将从同步过程的快照中接收到的本地时间戳与关联于本地数据对象的当前同步参数(例如,在解决操作320之后捕捉的)相比较。如果同步参数比来自快照的时间戳更近,则本地冲突解决是陈旧的。因此,解锁操作326就解除复制品中数据对象的锁定,而删除操作328删除该解决。
相反地,如果陈旧测试操作324确定本地冲突解决不陈旧,更新操作330就把该冲突解决应用于本地复制品,包括更新本地数据对象的数据并更新本地数据对象的同步参数以反映该冲突解决的应用。其后,解锁操作332解除本地复制品中数据对象的锁定。排队操作334随后将冲突解决作为本地更新传递给更新队列,该更新能够在同步过程中被正常处理。作为替换,冲突解决可以被直接传递给传播操作306。
终止操作336终止该解决过程。如上所述,可以为由关联于本地复制品执行的单个同步过程初始的不同冲突并发执行多个解决过程。
还应理解当在同步过程中接收到针对一数据对象的介入同步更新并对其进行处理时,在对该同一数据对象执行解决过程期间,可以检测到新的潜在冲突。在此情况下,如果同步更新包括与当前本地状态相兼容(例如,相等)的远程数据状态(例如,表示无冲突),就更新本地数据对象,这包括更新同步参数,并且相关联的解决过程可以被中断并丢弃。相反地,如果同步更新包括与当前本地状态不兼容(例如,不相等)的远程数据状态(例如,表示冲突),就丢弃该同步更新以支持与该数据对象相关联的进行中的冲突解决。
用于实现本发明的图4的示例性硬件和操作环境包括具有游戏控制台或计算机20形式的通用计算设备,包括处理单元21、系统存储器22、将包括系统存储器在内的各种系统组件操作性地耦合至处理单元21的系统总线23。可以只存在一个或者存在一个以上处理单元21,使得计算机20的处理器包括单中央处理单元(CPU),或者多处理单元,通常称为并行处理环境。计算机20可以是常规计算机,分布式计算机,或者任何其他类型的计算机,本发明在此不受限制。
系统总线23可以是几种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、切换结构、点对点连接、以及使用各种总线体系结构中的任一种的局部总线。系统存储器可被简单称为存储器,并且包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统(BIOS)26存储在ROM 20中,包含帮助在诸如启动期间在计算机24内元件之间传递信息的基本例程。计算机20还包括用于对硬盘(未示出)进行读写的硬盘驱动器27、用于对可移动磁盘29进行读写的磁盘驱动器28以及用于对可移动光盘31,如CD-ROM或其它光介质进行读写的光盘驱动器30。
硬盘驱动器27、磁盘驱动器28和光盘驱动器30分别由硬盘驱动器接口32、磁盘驱动器接口33和光盘驱动器接口34连接到系统总线23。驱动器及其关联的计算机可读媒质为计算机20提供了计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。本领域的技术人员可以理解,在示例操作环境中也可使用可储存可由计算机访问的数据的任何类型的计算机可读媒质,如磁带盒、闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等等。
若干程序模块能存储在硬盘、磁盘29、光盘31、ROM 24或RAM 25中,包括操作系统35、一个或多个应用程序36、其它程序模块37和程序数据38。用户可通过诸如键盘40和定点设备42的输入设备向个人计算机20中输入命令和信息。其它输入设备(未示出)可以包括麦克风、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常通过耦合到系统总线的串行端口接口46连接到处理单元21,但也可通过其它接口连接,如并行端口、游戏端口和通用串行总线(USB)。监视器47或其它类型的显示设备也经由接口,诸如视频接口48连接至系统总线23。除监视器之外,计算机通常包括其它外围输出设备(未示出),如扬声器或打印机。
计算机20可使用至一个或多个远程计算机,诸如远程计算机49的逻辑连接在网络化环境中操作。这些逻辑连接由耦合至或者作为计算机20一部分的通信设备来实现,本发明不限于特定类型的通信设备。远程计算机49可以是另一计算机、服务器、路由器、网络PC、客户机、对等设备或其它公共网络节点,并且通常包括许多或所有以上相对于计算机20所描述的元件,尽管在图4中仅示出了存储器存储设备50。图4中画出的逻辑连接包括局域网(LAN)51和广域网(WAN)52。这样的网络环境常见于办公室网络、企业范围计算机网络、内联网和因特网,并且可以是所有类型的网络。
当在LAN网络环境中使用时,计算机20通过作为一种通信设备类型的网络接口或适配器53连接到局域网51。当在WAN联网环境中使用时,计算机20通常包括调制解调器54、网络适配器、一种类型的通信设备,或者用于经广域网52建立通信的任何其他类型的通信设备。或为内置或为外置的调制解调器54经由串行端口接口46连接到系统总线23。在网络化环境中,相对于个人计算机20所描述的程序模块或其部分可以存储在远程存储器存储设备中。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段和通信设备。
在示例性实现中,同步模块、解决模块以及其它模块可由存储在存储器22和/或存储设备29或31中并由处理单元21处理的指令来具体化。复制品、快照、冲突解决、同步更新和其他数据可以存储在存储器22内和/或作为永久性数据存储的存储设备29或31内。
此处所描述的技术在一个或多个系统中被实现为逻辑操作和/或模块。逻辑操作可被实现为在一个或多个计算机系统中执行的处理器实现的步骤的序列,以及在一个或多个计算机系统中的互连机器或电路模块。同样地,各组件模块的描述可以按照由模块执行或影响的操作来提供。所得的实现的选择取决于实现所描述的技术的下层系统的性能需求。从而,组成此处所述的技术的实施例的逻辑操作被不同地表示为操作、步骤、对象或模块。此外,应该理解,除非以其他方式明确地提出权利要求或权利要求语言固有地需要一特定的次序,否则逻辑操作可以任何次序来执行。
以上说明、示例和数据提供了对本发明的各示例性实施例的结构和使用的全面描述。尽管以上带着一定程度的特殊性或对一个或多个单独实施例的参考描述了本发明的各实施例,但是本领域的技术人员能够对所公开的实施例做出多种改变而不背离本发明的精神或范围。更具体地,应该理解,可以独立于个人计算机采用所描述的技术。因此可考虑其他实施例。其目的是以上描述中所包含以及在附图中所示出的所有一切应当解释为仅仅是例示特定实施例而非限制。可以对细节或结构做出更改而不背离如以下权利要求书中定义的本发明的基本元素。
虽然已经用具体到结构功能部件和/或方法技艺的语言对主题进行了描述,但是应该理解,在所附权利要求中定义的该主题不必限于上述具体的功能部件或动作。相反,上述具体特征和动作是作为实现权利要求主题的示例形式公开的。
Claims (19)
1.一种在分布式数据库的本地复制品同步中解决冲突的方法,所述方法包括:
执行从所述分布式数据库的一个或多个远程复制品接收同步更新的同步过程,如果在所述本地复制品的本地数据对象和同步更新之间检测到冲突,则所述同步过程初始与所述本地数据对象相关联的解决过程;以及
响应于由所述同步过程初始的所述解决过程,和所述同步过程并发执行所述解决过程,所述解决过程确定冲突解决而所述同步过程则处理其他同步更新,其中如果在所述本地数据对象和所述同步更新之间检测到冲突,所述同步过程还记录所述冲突的快照并将所述快照传递给所述解决过程,并且其中所述解决过程还通过将所述快照与所述冲突解决已被确定之后存在的条件相比较来确定所述冲突解决是否陈旧。
2.如权利要求1所述的方法,其特征在于,所述解决过程还用所述冲突解决更新所述本地数据对象,而所述同步过程则处理其他同步更新。
3.如权利要求1所述的方法,其特征在于,所述解决过程还确定所述冲突解决是否陈旧,并且如果所述冲突解决不陈旧则用所述冲突解决更新所述本地数据对象。
4.如权利要求1所述的方法,其特征在于,所述快照在所述冲突解决之前被捕捉并且包括本地时间戳、所述本地数据对象的状态、以及从所述同步更新接收的相应远程数据对象的状态。
5.如权利要求1所述的方法,其特征在于,所述解决过程还记录与所述本地数据对象相关联的同步参数并且如果来自所述快照的所述本地时间戳早于所述同步参数,则确定所述冲突解决是陈旧的。
6.如权利要求1所述的方法,其特征在于,所述解决过程还将所述冲突解决传递给所述同步过程用以传播至一个或多个远程复制品。
7.如权利要求1所述的方法,其特征在于,如果没有在所述本地数据对象和同步更新之间检测到冲突,则所述同步过程将所述同步更新应用于所述本地数据对象。
8.如权利要求1所述的方法,其特征在于,所述解决过程还在用所述冲突解决更新所述本地数据对象之前锁定所述本地数据对象。
9.如权利要求1所述的方法,其特征在于,所述解决过程还在测试所述冲突解决是否陈旧之前锁定所述本地数据对象。
10.如权利要求1所述的方法,其特征在于,如果所述冲突解决陈旧,则所述解决过程还删除所述冲突解决。
11.一种在分布式数据库的本地复制品同步中解决冲突的系统,所述系统包括:
用于执行从所述分布式数据库的一个或多个远程复制品接收同步更新的同步过程的装置,如果在所述本地复制品的本地数据对象和同步更新之间检测到冲突,则所述同步过程初始与所述本地数据对象相关联的解决过程;以及
用于,响应于由所述同步过程初始的所述解决过程,和所述同步过程并发执行所述解决过程的装置,所述解决过程确定冲突解决而所述同步过程则处理其他同步更新,其中如果在所述本地数据对象和所述同步更新之间检测到冲突,所述同步过程还记录所述冲突的快照并将所述快照传递给所述解决过程,并且其中所述解决过程还通过将所述快照与所述冲突解决已被确定之后存在的条件相比较来确定所述冲突解决是否陈旧。
12.一种在分布式数据库的本地复制品同步中解决冲突的方法,所述方法包括:
执行从所述分布式数据库的一个或多个远程复制品接收同步更新的同步过程,如果在所述本地复制品的本地数据对象和同步更新之间检测到冲突,则所述同步过程初始与所述本地数据对象相关联的解决过程;以及
响应于由所述同步过程初始的所述解决过程,和所述同步过程并发地执行所述解决过程,所述解决过程确定冲突解决并且如果所述本地数据对象自从所述解决过程初始起尚未被所述同步过程更新,则将所述冲突解决应用于所述本地数据对象。
13.如权利要求12所述的方法,其特征在于,所述解决过程还用所述冲突解决更新所述本地数据对象,而所述同步过程则处理其他同步更新。
14.如权利要求12所述的方法,其特征在于,所述解决过程还确定所述冲突解决是否陈旧,并且如果所述冲突解决不陈旧则用所述冲突解决更新所述本地数据对象。
15.一种在分布式数据库的本地复制品同步中解决冲突的系统,所述系统包括:
用于执行从所述分布式数据库的一个或多个远程复制品接收同步更新的同步过程的装置,如果在所述本地复制品的本地数据对象和同步更新之间检测到冲突,则所述同步过程初始与所述本地数据对象相关联的解决过程;以及
用于,响应于由所述同步过程初始的所述解决过程,和所述同步过程并发地执行所述解决过程的装置,所述解决过程确定冲突解决并且如果所述本地数据对象自从所述解决过程初始起尚未被所述同步过程更新,则将所述冲突解决应用于所述本地数据对象。
16.一种在分布式数据库的本地复制品同步中解决冲突的方法,所述方法包括:
执行从所述分布式数据库的一个或多个远程复制品接收同步更新的同步过程,如果在所述本地复制品的本地数据对象和同步更新之间检测到冲突,则所述同步过程在分开的线程中产生解决过程;以及
和所述同步过程同时执行所述分开线程中的所述解决过程,所述解决过程确定冲突解决同时所述同步过程处理其他同步更新。
17.如权利要求16所述的方法,其特征在于,所述解决过程还用所述冲突解决更新所述本地数据对象,而所述同步过程则处理其他同步更新。
18.如权利要求16所述的方法,其特征在于,所述解决过程还确定所述冲突解决是否陈旧,并且如果所述冲突解决不陈旧则用所述冲突解决更新所述本地数据对象。
19.一种在分布式数据库的本地复制品同步中解决冲突的系统,所述系统包括:
用于执行从所述分布式数据库的一个或多个远程复制品接收同步更新的同步过程的装置,如果在所述本地复制品的本地数据对象和同步更新之间检测到冲突,则所述同步过程在分开的线程中产生解决过程;以及
用于和所述同步过程同时执行所述分开线程中的所述解决过程的装置,所述解决过程确定冲突解决同时所述同步过程处理其他同步更新。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/359,107 | 2006-02-22 | ||
US11/359,107 US7606838B2 (en) | 2006-02-22 | 2006-02-22 | Distributed conflict resolution for replicated databases |
PCT/US2007/002186 WO2007106239A1 (en) | 2006-02-22 | 2007-01-26 | Distributed conflict resolution for replicated databases |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101390094A CN101390094A (zh) | 2009-03-18 |
CN101390094B true CN101390094B (zh) | 2011-04-13 |
Family
ID=38429639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800061639A Expired - Fee Related CN101390094B (zh) | 2006-02-22 | 2007-01-26 | 针对复制数据库的分布式冲突解决 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7606838B2 (zh) |
EP (1) | EP1997015A4 (zh) |
KR (1) | KR20080103967A (zh) |
CN (1) | CN101390094B (zh) |
WO (1) | WO2007106239A1 (zh) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100030802A1 (en) * | 2004-10-21 | 2010-02-04 | Access Co., Ltd. | System and method tha allows relational data to be modeled efficiently and synchronized without creating dangling references |
US20070039039A1 (en) | 2005-08-10 | 2007-02-15 | Microsoft Corporation | Authorization of device access to network services |
US20070143368A1 (en) * | 2005-12-15 | 2007-06-21 | Lundsgaard Soren K | Conflict resolution in highly available network element |
US7962378B2 (en) * | 2007-07-05 | 2011-06-14 | International Business Machines Corporation | Process and methodology to maintain consistency across disparate interfaced systems |
US9477727B2 (en) * | 2008-08-01 | 2016-10-25 | Sybase, Inc. | Abstracting data for use by a mobile device having occasional connectivity |
JP5453883B2 (ja) * | 2009-03-31 | 2014-03-26 | 富士通株式会社 | 運用管理システム、プロセス解析装置、プロセス解析プログラムおよびプロセス解析方法 |
EP2323047B1 (en) * | 2009-10-09 | 2020-02-19 | Software AG | Primary database system, replication database system and method for replicating data of a primary database system |
US9336291B2 (en) | 2009-12-30 | 2016-05-10 | Sybase, Inc. | Message based synchronization for mobile business objects |
US8909662B2 (en) * | 2009-12-30 | 2014-12-09 | Sybase, Inc. | Message based mobile object with native PIM integration |
US8788458B2 (en) | 2009-12-30 | 2014-07-22 | Sybase, Inc. | Data caching for mobile applications |
US8572022B2 (en) | 2010-03-02 | 2013-10-29 | Microsoft Corporation | Automatic synchronization conflict resolution |
US8266126B2 (en) * | 2010-03-24 | 2012-09-11 | Matrixx Software, Inc. | System with multiple conditional commit databases |
US20120136839A1 (en) * | 2010-11-30 | 2012-05-31 | Peter Eberlein | User-Driven Conflict Resolution Of Concurrent Updates In Snapshot Isolation |
US10102242B2 (en) | 2010-12-21 | 2018-10-16 | Sybase, Inc. | Bulk initial download of mobile databases |
CN103176862B (zh) * | 2011-12-20 | 2017-03-01 | 伊姆西公司 | 用于管理数据备份任务的设备和方法 |
US9471591B2 (en) * | 2012-05-02 | 2016-10-18 | Microsoft Technology Licensing, Llc | Iterative disk upload based on differencing disk format |
US8874682B2 (en) | 2012-05-23 | 2014-10-28 | Sybase, Inc. | Composite graph cache management |
US9110807B2 (en) | 2012-05-23 | 2015-08-18 | Sybase, Inc. | Cache conflict detection |
US9117021B2 (en) * | 2013-03-14 | 2015-08-25 | Intel Corporation | Methods and apparatus to manage concurrent predicate expressions |
US9317549B2 (en) * | 2013-06-25 | 2016-04-19 | Optumsoft, Inc. | Constraint-based consistency with snapshot isolation |
US10120868B2 (en) * | 2013-09-04 | 2018-11-06 | Red Hat, Inc. | Outcast index in a distributed file system |
US10026064B2 (en) | 2013-09-13 | 2018-07-17 | Microsoft Technology Licensing, Llc | Automatically recommending updates based on stored lifecycle information |
US9665359B2 (en) * | 2013-09-13 | 2017-05-30 | Microsoft Technology Licensing, Llc | Automatically resolving conflicts after installation of selected updates in a computer system |
US9626176B2 (en) | 2013-09-13 | 2017-04-18 | Microsoft Technology Licensing, Llc | Update installer with technical impact analysis |
US9830142B2 (en) | 2013-09-13 | 2017-11-28 | Microsoft Technology Licensing, Llc | Automatic installation of selected updates in multiple environments |
US9418124B2 (en) | 2013-12-16 | 2016-08-16 | International Business Machines Corporation | System and method of integrating time-aware data from multiple sources |
US20150346713A1 (en) * | 2014-06-03 | 2015-12-03 | Siemens Aktiengesellschaft | Method for Processing an Automation Project Using a Plurality of Processing Stations |
US10180954B2 (en) * | 2015-05-29 | 2019-01-15 | Nuodb, Inc. | Disconnected operation within distributed database systems |
EP3248118A4 (en) * | 2016-04-06 | 2018-03-28 | Huawei Technologies Co., Ltd. | System and method for multi-master synchronous replication optimization |
CN106096873A (zh) * | 2016-08-16 | 2016-11-09 | 杭州市质量技术监督检测院 | 产品安全风险监控系统和方法 |
CN106296230A (zh) * | 2016-08-16 | 2017-01-04 | 杭州市质量技术监督检测院 | 日用消费品质量安全监控系统和方法 |
CN106339793A (zh) * | 2016-08-16 | 2017-01-18 | 杭州市质量技术监督检测院 | 产品质量风险预警系统和方法 |
CN107977376B (zh) * | 2016-10-24 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 分布式数据库系统及事务处理方法 |
CN108108372B (zh) * | 2016-11-25 | 2023-05-23 | 中兴通讯股份有限公司 | 一种数据冲突自动校正处理方法及装置 |
US20190342380A1 (en) | 2018-05-07 | 2019-11-07 | Microsoft Technology Licensing, Llc | Adaptive resource-governed services for performance-compliant distributed workloads |
JP7056460B2 (ja) * | 2018-08-10 | 2022-04-19 | 横河電機株式会社 | 制御システム及び制御装置 |
CN110245148B (zh) * | 2019-06-25 | 2021-03-23 | 河南中原消费金融股份有限公司 | 一种数据存储方法、装置、系统及介质 |
CN111767332B (zh) * | 2020-06-12 | 2021-07-30 | 上海森亿医疗科技有限公司 | 异构数据源的数据集成方法、系统以及终端 |
CN112966047B (zh) * | 2021-03-05 | 2023-01-13 | 上海沄熹科技有限公司 | 一种基于分布式数据库的复制表功能实现方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1479223A (zh) * | 2003-07-09 | 2004-03-03 | 无敌科技(西安)有限公司 | 写作语意辅助提示系统及方法 |
CN1520562A (zh) * | 2001-06-30 | 2004-08-11 | 国际商业机器公司 | 用于中央同步服务器的缓存机构的系统和方法 |
CN1564989A (zh) * | 1999-12-20 | 2005-01-12 | 加林克半导体V·N·有限公司 | Mac地址高速搜索引擎 |
US6983293B2 (en) * | 2002-07-24 | 2006-01-03 | International Business Machines Corporation | Mid-tier-based conflict resolution method and system usable for message synchronization and replication |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5774717A (en) * | 1995-12-15 | 1998-06-30 | International Business Machines Corporation | Method and article of manufacture for resynchronizing client/server file systems and resolving file system conflicts |
US5787262A (en) * | 1996-06-26 | 1998-07-28 | Microsoft Corporation | System and method for distributed conflict resolution between data objects replicated across a computer network |
US5937414A (en) * | 1997-02-28 | 1999-08-10 | Oracle Corporation | Method and apparatus for providing database system replication in a mixed propagation environment |
US6058416A (en) * | 1998-05-22 | 2000-05-02 | International Business Machines Corportion | Flexible state sharing and consistency mechanism for interactive applications |
US6636873B1 (en) * | 2000-04-17 | 2003-10-21 | Oracle International Corporation | Methods and systems for synchronization of mobile devices with a remote database |
US6993522B2 (en) * | 2001-06-27 | 2006-01-31 | Microsoft Corporation | System and method for resolving conflicts detected during a synchronization session |
US7149759B2 (en) * | 2002-03-25 | 2006-12-12 | International Business Machines Corporation | Method and system for detecting conflicts in replicated data in a database network |
US7606881B2 (en) * | 2002-04-25 | 2009-10-20 | Oracle International Corporation | System and method for synchronization of version annotated objects |
US7386797B1 (en) * | 2002-05-22 | 2008-06-10 | Oracle Corporation | Framework to model and execute business processes within a collaborative environment |
US20030220966A1 (en) * | 2002-05-24 | 2003-11-27 | International Business Machines Corporation | System and method for dynamic content dependent conflict resolution |
KR100462839B1 (ko) * | 2002-12-24 | 2004-12-23 | 한국전자통신연구원 | 모바일 환경에서의 이동 클라이언트와 서버간의 데이터동기화 및 갱신 충돌 해결 방법 |
US7406499B2 (en) * | 2003-05-09 | 2008-07-29 | Microsoft Corporation | Architecture for partition computation and propagation of changes in data replication |
US7512638B2 (en) * | 2003-08-21 | 2009-03-31 | Microsoft Corporation | Systems and methods for providing conflict handling for peer-to-peer synchronization of units of information manageable by a hardware/software interface system |
US20050177617A1 (en) * | 2003-12-23 | 2005-08-11 | Intel Corporation | Conflict resolution during data synchronization |
-
2006
- 2006-02-22 US US11/359,107 patent/US7606838B2/en active Active
-
2007
- 2007-01-26 CN CN2007800061639A patent/CN101390094B/zh not_active Expired - Fee Related
- 2007-01-26 WO PCT/US2007/002186 patent/WO2007106239A1/en active Application Filing
- 2007-01-26 EP EP07749304A patent/EP1997015A4/en not_active Withdrawn
- 2007-01-26 KR KR1020087020384A patent/KR20080103967A/ko not_active Application Discontinuation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564989A (zh) * | 1999-12-20 | 2005-01-12 | 加林克半导体V·N·有限公司 | Mac地址高速搜索引擎 |
CN1520562A (zh) * | 2001-06-30 | 2004-08-11 | 国际商业机器公司 | 用于中央同步服务器的缓存机构的系统和方法 |
US6983293B2 (en) * | 2002-07-24 | 2006-01-03 | International Business Machines Corporation | Mid-tier-based conflict resolution method and system usable for message synchronization and replication |
CN1479223A (zh) * | 2003-07-09 | 2004-03-03 | 无敌科技(西安)有限公司 | 写作语意辅助提示系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2007106239A1 (en) | 2007-09-20 |
US7606838B2 (en) | 2009-10-20 |
US20070198599A1 (en) | 2007-08-23 |
KR20080103967A (ko) | 2008-11-28 |
EP1997015A4 (en) | 2012-08-01 |
EP1997015A2 (en) | 2008-12-03 |
CN101390094A (zh) | 2009-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101390094B (zh) | 针对复制数据库的分布式冲突解决 | |
US10180946B2 (en) | Consistent execution of partial queries in hybrid DBMS | |
EP3185142B1 (en) | Distributed database transaction protocol | |
EP3185143B1 (en) | Decentralized transaction commit protocol | |
US9460184B2 (en) | Application of a differential dataset to a data store using sequential change sets | |
CN111143389B (zh) | 事务执行方法、装置、计算机设备及存储介质 | |
JP2023546249A (ja) | トランザクション処理方法、装置、コンピュータ機器及びコンピュータプログラム | |
US8832022B2 (en) | Transaction processing device, transaction processing method and transaction processing program | |
Moniz et al. | Blotter: Low latency transactions for geo-replicated storage | |
JP6877435B2 (ja) | データベース動作方法及び装置 | |
Maiyya et al. | Unifying consensus and atomic commitment for effective cloud data management | |
EP3519987A1 (en) | Intents and locks with intent | |
WO2020119050A1 (en) | Write-write conflict detection for multi-master shared storage database | |
TWI774643B (zh) | 資料庫操作方法及裝置 | |
US7752399B2 (en) | Exclusion control method and information processing apparatus | |
JP4432087B2 (ja) | データベース更新管理システム、プログラムおよび方法 | |
EP3396542B1 (en) | Database operating method and device | |
JP2023546897A (ja) | オブジェクト処理方法、装置、及びコンピュータ機器 | |
US20220391291A1 (en) | History information in director-based database system for transactional consistency | |
CN116089359A (zh) | 数据库快照的生成方法、装置、电子设备和介质 | |
US20220391376A1 (en) | Director-based database system for transactional consistency | |
CN114556320A (zh) | 切换到最终一致的数据库副本 | |
CN110096389A (zh) | 一种数据库的启动方法、装置、设备和存储介质 | |
Shacham et al. | Taking omid to the clouds: Fast, scalable transactions for real-time cloud analytics | |
US20230229638A1 (en) | Delta clone-based database upgrades |
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: 20110413 Termination date: 20130126 |
|
CF01 | Termination of patent right due to non-payment of annual fee |