针对复制数据库的分布式冲突解决的制作方法

文档序号:6453886阅读:180来源:国知局
专利名称:针对复制数据库的分布式冲突解决的制作方法
针对复制数据库的分布式冲突解决
祖旦 冃足
一般而言,数据库是以系统性的方式记录在存储介质中以供计算系统访问 的经组织的数据对象(例如,数据表、数据记录、文件等)集合。每个数据对 象可以包括通常被组织为一组键标数据元素或值以便检索和排序的一个或多 个数据记录。数据库一般由模式结构化地描述,而模式指定数据库中数据对象
的类型和关系。诸如数据库管理系统(DBMS)之类的程序能够査询数据库以 访问指定的数据对象。
复制允许将一个存储介质的单个数据库拷贝到第二存储介质,从而有效创 建原始数据库的独立实例。第二存储介质上的数据库副本被称为"复制数据 库"。原始数据库和复制品(统称为"复制品")共享公用模式的全部或部分, 包括公用数据对象、键值对以及其他标识符和结构,从而将相关复制品耦合在 一起。共享模式允许同一査询用于复制品两者。此外,每个复制品能够被本地 修改并在随后通过被称为"同步"的过程用其他相关复制品来更新。通过同步, 一个复制品中数据对象的改变就被记录并作为同步更新传播到其他相关复制 品,其中对相关复制品的相应数据对象执行相同的改变。
然而,当在各分开复制品中的相应数据对象被并发地修改时会出现冲突。 一般而言,冲突表示在一个复制品A处对一数据对象进行修改,随后在A处的 改变信息经通信链接传播至B之前就在另一复制品B处对相应的数据对象进行 修改。例如,某产品的价格可以在一个复制品处被改变为SX,而几乎与此同时 (例如,在与其他复制品同步每个改变之前),相同产品的价格可以在另一复 制品处被改变为SY,由此就在两个复制品之间对于该产品的价格产生了冲突。 为了将复制品恢复到一致状态,冲突可被检测并在随后被解决。
存在不同的策略来检测冲突。例如,可以跟踪一复制品已被修改的时间, 并在同步期间将其传播给其他复制品。 一旦接收到同步更新,每个接收复制品 就能够通过比较远程复制品处数据对象的改变时间和另一相应数据对象(无论
本地或远程)的改变时间来检测冲突。
在检测到冲突之后,分布式数据库系统能够工作以解决冲突。同样存在不 同的策略来解决这些冲突。例如,冲突可以在算法上解决,通过用户交互解决 等。然而,由于复制数据库系统的分布式特性和同步的异步特性,因而会在不 同复制品处同时检测到相应数据对象内的竞争冲突。竞争冲突的检测因此能够 触发竞争冲突解决并将其传播至整个分布式数据库,藉此引入新的冲突。如 此,现有的数据库服务器易于在冲突解决期间停止数据库处理,从而避免这一
竞争冲突解决。此夕卜,竞争冲突解决尤其需要挑战"非齐次(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,(为每个本地已知的复制品i )指示i 处数据对象最后改变的i 处时间 戳;以及(2)同步参数s,(为每个本地已知的复制品iO指示7 处数据对象最 后同步的i 处时间戳(例如,由远程同步更新产生)。在一个实现中,参数m 和s被表示为带有对应于每个已知复制品的同步参数的时间戳向量,虽然也可 以利用其他参数类型。通俗地,修改参数w跟踪数据对象的本地版本,而同步 时间参数s跟踪数据对象相对于其他复制品有多当前。同步过程比较修改时间 参数m^和同步时间参数^ (与远程复制品」的数据对象的同步更新相关联) 的组合与修改时间参数ms和同步时间参数& (与本地复制品S的对应本地数 据对象相关联)的组合,以确定是否更新本地数据对象。
例如,当考虑复制品S中的本地数据对象是否需要相对于复制品^被 更新时,w力^&测试复制品5中的本地数据对象是否由复制品J的对应数 据对象中的改变同步。因此,如果/^^&,复制品S无需被更新,因为复 制品B已经与从复制品j获取的最近修改相同步。相反地,如果附^>&,, 则wsS^测试复制品」是否相对于来自复制品S的最后修改而被同步。因 此,如果m」〉^且msS^,则复制品J具有尚未与复制品S同步的更近修 改,所以复制品5需要用来自复制品」的同步更新来更新。然而,如果m」〉 ^且ms > ^,则复制品与万两者都已经用并发修改来修改并且存在冲突。 应该理解也可以利用其他冲突检测模式。
在检测到冲突之后,数据库服务器通常会尝试使用各种冲突解决技术中的
一种来解决冲突。在一个实现中,可以向用户呈现冲突并且向其询问以选择期 望的结果,随后该结果可以传播遍及分布式数据库系统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)数和同步参数(力方法。如果未在检测操作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存储在ROM20中,包含帮助在诸如启动期间在计算机24内元件之间传递 信息的基本例程。计算机20还包括用于对硬盘(未示出)进行读写的硬盘驱 动器27、用于对可移动磁盘29进行读写的磁盘驱动器28以及用于对可移动光 盘31,如CD-ROM或其它光介质进行读写的光盘驱动器30。
硬盘驱动器27、磁盘驱动器28和光盘驱动器30分别由硬盘驱动器接口 32、磁盘驱动器接口 33和光盘驱动器接口 34连接到系统总线23。驱动器及其 关联的计算机可读媒质为计算机20提供了计算机可读指令、数据结构、程序 模块和其它数据的非易失性存储。本领域的技术人员可以理解,在示例操作环 境中也可使用可储存可由计算机访问的数据的任何类型的计算机可读媒质,如 磁带盒、闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM) 等等。
若干程序模块能存储在硬盘、磁盘29、光盘31、 ROM24或RAM25中, 包括操作系统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内。
此处所描述的技术在一个或多个系统中被实现为逻辑操作和/或模块。逻 辑操作可被实现为在一个或多个计算机系统中执行的处理器实现的步骤的序 列,以及在一个或多个计算机系统中的互连机器或电路模块。同样地,各组件 模块的描述可以按照由模块执行或影响的操作来提供。所得的实现的选择取决 于实现所描述的技术的下层系统的性能需求。从而,组成此处所述的技术的实 施例的逻辑操作被不同地表示为操作、步骤、对象或模块。此外,应该理解, 除非以其他方式明确地提出权利要求或权利要求语言固有地需要一特定的次 序,否则逻辑操作可以任何次序来执行。
以上说明、示例和数据提供了对本发明的各示例性实施例的结构和使用的 全面描述。尽管以上带着一定程度的特殊性或对一个或多个单独实施例的参考 描述了本发明的各实施例,但是本领域的技术人员能够对所公开的实施例做出 多种改变而不背离本发明的精神或范围。更具体地,应该理解,可以独立于个 人计算机采用所描述的技术。因此可考虑其他实施例。其目的是以上描述中所 包含以及在附图中所示出的所有一切应当解释为仅仅是例示特定实施例而非 限制。可以对细节或结构做出更改而不背离如以下权利要求书中定义的本发明
的基本元素。
虽然已经用具体到结构功能部件和/或方法技艺的语言对主题进行了描 述,但是应该理解,在所附权利要求中定义的该主题不必限于上述具体的功能 部件或动作。相反,上述具体特征和动作是作为实现权利要求主题的示例形式 公开的。
权利要求
1. 一种在本地复制品同步中解决冲突的方法,所述方法包括执行从一个或多个远程复制品接收同步更新的同步过程,如果在所述本地复制品的本地数据对象和同步更新之间检测到冲突,则所述同步过程初始与所述本地数据对象相关联的解决过程;以及响应于由所述同步过程初始的所述解决过程,和所述同步过程并发执行所述解决过程,所述解决过程确定冲突解决而所述同步过程则处理其他同步更新。
2. 如权利要求1所述的方法,其特征在于,所述解决过程还用所述冲突 解决更新所述本地数据对象,而所述同步过程则处理其他同步更新。
3. 如权利要求1所述的方法,其特征在于,所述解决过程还确定所述冲 突解决是否陈旧,并且如果所述冲突解决不陈旧则用所述冲突解决更新所述本 地数据对象。
4. 如权利要求1所述的方法,其特征在于,如果在所述本地数据对象和 所述同步更新之间检测到冲突,所述同步过程还记录所述冲突的快照并将所述 快照传递给所述解决过程,并且其中所述解决过程还通过将所述快照与所述冲 突解决已被确定之后存在的条件相比较来确定所述冲突解决是否陈旧。
5. 如权利要求4所述的方法,其特征在于,所述快照在所述冲突解决之 前被捕捉并且包括本地时间戳、所述本地数据对象的状态、以及从所述同步更 新接收的相应远程数据对象的状态。
6. 如权利要求4所述的方法,其特征在于,所述解决过程还记录与所述 本地数据对象相关联的同步参数并且如果来自所述快照的所述本地时间戳早 于所述同步参数,则确定所述冲突解决是陈旧的。
7. 如权利要求1所述的方法,其特征在于,所述解决过程还将所述冲突 解决传递给所述同步过程用以传播至一个或多个远程复制品。
8. 如权利要求1所述的方法,其特征在于,如果没有在所述本地数据对 象和同步更新之间检测到冲突,则所述同步过程将所述同步更新应用于所述本 地数据对象。
9. 如权利要求1所述的方法,其特征在于,所述解决过程还在用所述冲 突解决更新所述本地数据对象之前锁定所述本地数据对象。
10. 如权利要求1所述的方法,其特征在于,所述解决过程还在测试所述冲突解决是否陈旧之前锁定所述本地数据对象。
11. 如权利要求l所述的方法,其特征在于,如果所述冲突解决陈旧,则 所述解决过程还删除所述冲突解决。
12. —种具有用于执行实现权利要求1所述操作的计算机过程的计算机可 执行指令的计算机可读介质。
13. —种在本地复制品同步中解决冲突的方法,所述方法包括执行从一个或多个远程复制品接收同步更新的同步过程,如果在所述本地 复制品的本地数据对象和同步更新之间检测到冲突,则所述同步过程初始与所述本地数据对象相关联的解决过程;以及响应于由所述同步过程初始的所述解决过程,和所述同步过程并发地执行 所述解决过程,所述解决过程确定冲突解决并且如果所述本地数据对象自从所 述解决过程初始起尚未被所述同步过程更新,则将所述冲突解决应用于所述本 地数据对象。
14. 如权利要求13所述的方法,其特征在于,所述解决过程还用所述冲突解决更新所述本地数据对象,而所述同步过程则处理其他同步更新。
15. 如权利要求13所述的方法,其特征在于,所述解决过程还确定所述冲突解决是否陈旧,并且如果所述冲突解决不陈旧则用所述冲突解决更新所述 本地数据对象。
16. —种具有用于执行实现权利要求13所述操作的计算机过程的计算机 可执行指令的计算机可读介质。
17. —种在本地复制品同步中解决冲突的方法,所述方法包括执行从一个或多个远程复制品接收同步更新的同步过程,如果在所述本地 数据对象和同步更新之间检测到冲突,则所述同步过程在分开的线程中产生解决过程;以及和所述同步过程同时执行所述分开线程中的所述解决过程,所述解决过程 确定冲突解决同时所述同步过程处理其他同步更新。
18. 如权利要求17所述的方法,其特征在于,所述解决过程还用所述冲 突解决更新所述本地数据对象,而所述同步过程则处理其他同步更新。
19. 如权利要求17所述的方法,其特征在于,所述解决过程还确定所述 冲突解决是否陈旧,并且如果所述冲突解决不陈旧则用所述冲突解决更新所述 本地数据对象。
20. —种具有用于执行实现权利要求17所述操作的计算机过程的计算机 可执行指令的计算机可读介质。
全文摘要
响应于对一个或多个同步冲突的检测而和每个复制品的同步过程并发运行一个或多个解决过程。每个解决过程用于解决有关数据对象的冲突而同步过程则继续处理其他同步更新。在冲突解决已被确定之后,针对本地复制品的当前条件测试冲突解决。如果冲突解决不陈旧,则将其应用于本地复制品并传递回同步过程以供传播至远程复制品。否则,如果冲突解决陈旧,则被丢弃。
文档编号G06F15/16GK101390094SQ200780006163
公开日2009年3月18日 申请日期2007年1月26日 优先权日2006年2月22日
发明者S·托比斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1