CN100485669C - 加强项目收敛(即数据收敛)的冲突判决传播系统和方法 - Google Patents
加强项目收敛(即数据收敛)的冲突判决传播系统和方法 Download PDFInfo
- Publication number
- CN100485669C CN100485669C CNB2005100529694A CN200510052969A CN100485669C CN 100485669 C CN100485669 C CN 100485669C CN B2005100529694 A CNB2005100529694 A CN B2005100529694A CN 200510052969 A CN200510052969 A CN 200510052969A CN 100485669 C CN100485669 C CN 100485669C
- Authority
- CN
- China
- Prior art keywords
- change unit
- unit data
- conflict
- computer system
- peer computer
- 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
- 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
- G06F16/273—Asynchronous replication or reconciliation
-
- A—HUMAN NECESSITIES
- A01—AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
- A01G—HORTICULTURE; CULTIVATION OF VEGETABLES, FLOWERS, RICE, FRUIT, VINES, HOPS OR SEAWEED; FORESTRY; WATERING
- A01G31/00—Soilless cultivation, e.g. hydroponics
- A01G31/02—Special apparatus therefor
-
- A—HUMAN NECESSITIES
- A01—AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
- A01G—HORTICULTURE; CULTIVATION OF VEGETABLES, FLOWERS, RICE, FRUIT, VINES, HOPS OR SEAWEED; FORESTRY; WATERING
- A01G31/00—Soilless cultivation, e.g. hydroponics
-
- 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P60/00—Technologies relating to agriculture, livestock or agroalimentary industries
- Y02P60/20—Reduction of greenhouse gas [GHG] emissions in agriculture, e.g. CO2
- Y02P60/21—Dinitrogen oxide [N2O], e.g. using aquaponics, hydroponics or efficiency measures
-
- 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/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
-
- 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
-
- 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/99954—Version management
Abstract
本发明的各种实施例针对用于在手动和自动冲突判决操作期间检测冲突和应用冲突判决的系统和方法。几个实施例针对防止以下两点:(a)冲突判决的不收敛,其中,合伙者可以结束于发散的稳定状态(即,在缺少显著冲突的情况下具有不同的数据);以及(b)合伙者之间的冲突判决的往复转换(会发生于某些无效率的解决方案,这些解决方案连续不断地更新每个冲突判决的元数据,无休无止)。本发明的某些特殊实施例针对一种用于维护知识的方法,即使当不同的合伙者应用不同的冲突判决时,它也保证数据的收敛。
Description
对相关申请的参照
本申请要求2004年4月1日提交的标题为《加强项目收敛(即数据收敛)的冲突判决传播系统和方法(SYSTEMS AND METHODS FOR PROPOGATION OFCONFILICT RESOLUTION TO ENFORCE ITEM CONVERGENCE(I.E.,DATACONVERGENCE))》的第60/558,338号美国临时申请(委托摘要号:MSFT-3931/308659.01)的优先权,该美国临时申请的全部内容被包括于此,用作参考。
本申请在主题方面涉及以下共同转让的申请中所揭示的各种发明,这些申请的内容被整体并入本申请,用作参考:2003年8月21日提交的标题为《用于使应用程序与基于项目的存储平台接口的系统和方法(SYSTEMS AND METHODSFOR INTERFACING APPLICATION PROGRAMS WITH AN ITEM-BASEDSTORAGE PLATFORM)》的第10/646,575号美国专利申请(委托摘要号:MSFT-2733);2003年8月21日提交的标题为《用于组织、搜索和共享数据的存储平台(STORAGE PLATFORM FOR ORGANIZING,SEARCHING,ANDSHARING DATA)》的第10/646,646号美国专利申请(委托摘要号:MSFT-2734/305604.01);2003年10月24日提交的标题为《用于为可由硬件/软件接口系统管理的信息单元提供同步服务的系统和方法(SYSTEMS AND METHODSFOR PROVIDING SYNCHRONIZATION SERVICES FOR UNITS OFINFORMATION MANAGEABLE BY A HARDWARE/SOFTWARE INTERFACESYSTEM)》的第10/692,515号美国专利申请(委托摘要号:MSFT-2844/306723.01);2003年10月24日提交的标题为《用于为可由硬件/软件接口系统管理的信息单元提供关系和分层同步服务的系统和方法(SYSTEM AND METHODS FORPROVIDING RELATIONAL AND HIERARCHICAL SYNCHRONIZATIONSERVICES FOR UNITS OF INFORMATION MANAGEABLE BY AHARDWARE/SOFTWARE INTERFACE SYSTEM)》的第10/692,508号美国专利申请(委托摘要号:MSFT-2845/306724.01);2003年10月24日提交的标题为《用于可由硬件/软件接口系统管理的信息单元的同步模式的实现的系统和方法(SYSTEMS AND METHODS FOR THE IMPLEMENTATION OFSYNCHRONIZATION SCHEMAS FOR UNITS OF INFORMATIONMANAGEABLE BY A HARDWARE/SOFTWARE INTERFACE SYSTEM)》的第10/693,362号美国专利申请(委托摘要号:MSFT-2846/306722.01);以及,2004年6月30日提交的标题为《用于向可由硬件/软件接口系统管理的信息单元的对等同步提供冲突处理的系统和方法(SYSTEMS AND METHODS FOR PROVIDINGCONFLICT FOR PEER-TO-PEER SYNCHRONIZATION OF UNITS OFINFORMATION MANAGEABLE BY A HARDWARE/SOFTWARE INTERFACESYSTEM)》的第10/883,621号美国专利申请(委托摘要号:MSFT-2854/306955.01)(在下文中被共同称作“基础专利申请”)。
技术领域
本发明一般涉及跨越计算机系统的数据同步,尤其涉及判决对等同步系统中的冲突,并且按确保项目收敛(即数据收敛)的方式来传播冲突判决(亦即,基于用于同步的变化单元的数据收敛)。
背景技术
对等同步环境中的不同的同步合伙者可以用不同的方法来判决出现在同步期间的冲突。这里先前所述的“基础专利申请”中详细地揭示了一个这样的对等同步环境及其基础硬件/软件接口系统。总之,这些“基础专利申请”描述了一种硬件/软件接口系统(例如但不局限于,操作系统),其中,其它可存储信息(项目)的自主单元包括构成用于同步的基本数据变化元素的几个组件变化单元(CU)。每个CU具有关联的元数据,该元数据允许该同步系统跟踪需要在对等计算机系统上更新什么变化,以及应该应用从其它对等计算机系统接收的什么变化。
通常按照存在于两个对等计算机系统上的项目的单个变化单元,来描述使用变化单元和同步元数据(或类似的结构)的系统的一种示例性基本同步形式。关于该单个变化单元,第一对等体—合伙者A(或更简单地说是“A”)通过向第二对等体—合伙者B(或更简单地说是“B”)发送涉及该变化单元的其复制品(CUa)的当前元数据(Ma),来向B请求变化。一接收到Ma(对应于CUa),合伙者B就将该元数据与关于同一变化单元的其复制品(CUb)的其自己的元数据(Mb)进行比较。然后,如果Mb反映在Ma中没有得到反映的、对CUb的任何更改,那么,B将CUb和Mb都发送给A;否则,B只将其Mb发送给A(或者,作为替代,将“无更新”指示符发送给A),因为CUa已反映对CUb作出的所有更新,从而将CUb从B复制到A是不必要的。
根据B对其同步请求的响应,如果A只从B接收回Mb(或者,作为替代,是“无更新”指示符),而不是CUb,那么,A知道CUa要么与CUb相同,要么比CUb更新。但是,如果A从B接收回Mb和CUb,那么,A随后必须通过Ma和Mb的比较来确定CUb是否比CUa更新,或者,CUa和CUb是否具有冲突的变化。如果CUb比CUa更新,那么,A用CUb来更新CUa,A也用Mb来更新Ma。另一方面,如果CUa和CUb具有冲突的变化,那么,A根据其本地冲突判决程序来判决那个冲突。例如,如果A在此情况中的冲突判决程序是选择本地解决方案优于远程解决判决方案,那么,A将会继续保留CUa(拒绝CUb的变化),并更新Ma,以包括所有更新反映Ma和Mb(Ma和Mb的并集)。其后,当B随后使用该相同的程序(并且假定没有介入的额外的变化)来与A同步时,它将推断出CUa比CUb更新,并用CUa来更新CUb。
这个基本的“变化单元和元数据(CUAM)”的同步方法对于二对等体同步团体而言简单、有效。但是,如果有三个或更多的对等体,这个简单的方法会导致该数据发散,以致两个系统可能会获得不同的冲突判决解决方案,但具有相同的元数据,这样,在该对等团体中既无法辨认该逻辑不一致性,也无法对其进行适当的纠正。(这里稍后提供该现象的详细的例子。)
为了迫使所有对等体上的数据收敛,在本技术领域中需要一种用于各种类型的同步系统的同步方法,以便正确地识别和传播同步团体中的各个对等体之间的特殊冲突判决,并在同一冲突的不同判决之间进行仲裁,以确保一致地收敛到跨越所有相关对等体的冲突的单一判决上。
发明内容
本发明的各种实施例针对用于在手动和自动冲突判决操作期间检测冲突和应用冲突判决的系统和方法。几个实施例针对防止以下两点:(a)冲突判决的不收敛,其中,合伙者可以结束于发散的稳定状态(即,当缺少显著的冲突时,具有不同的数据);(b)合伙者之间的冲突判决的无尽往复转换(会发生于某些无效率的解决方案,这些解决方案连续不断地更新每个冲突判决的元数据,无休无止)。本发明的某些具体实施例针对一种用于维护知识的方法,即使当不同的合伙者应用不同的冲突判决时,它也保证数据的收敛。
附图说明
通过结合附图来进行阅读,会更好理解前面的概述以及较佳实施例的以下详细说明。出于展示本发明的目的,这些附图中示出了本发明的示例性结构;但是,本发明不局限于所揭示的这些具体的方法和手段。在这些附图中:
图1是表示了其中可以结合本发明的各个方面的计算机系统的框图;
图2是基于表格的时间流程图,示出了最终导致冲突判决的不收敛的三对等体同步操作(其中,合伙者可以结束于发散的稳定状态);
图3是示出了本发明的几个实施例所利用的改进的同步过程;
图4是基于表格的时间流程图,示出了最终导致冲突判决的收敛的三对等体同步操作;以及,
图5是表格,示出了关于从图4所示出的过程中产生的某些结束状态的特殊处理和冲突处理的结果元数据,以及涉及新的本地变化的元数据(出于比较的目的,因为新的本地变化不直接是同步操作的一部分)。
具体实施方式
以细节描述了本发明,以符合法定要求。但是,该说明本身并不意在限制本专利的范围。相反,发明人构想所要求保护的本发明也可用其它方法来加以具体表现,以便结合其它目前的或将来的技术,来包括类似于本文档中所描述的步骤的不同的步骤或步骤组合。而且,虽然这里可以使用术语“步骤”来意味着所使用的方法的不同元素,但是,该术语不应该被解释为暗示这里所揭示的各种步骤之中或之间的任何特定顺序,除非和除了当明确地描述单独的步骤的顺序时以外。
计算机环境
本发明的众多实施例可以在计算机上执行。图1和下文意在简要、概括地描述其中可以执行本发明的合适的计算环境。虽然未作要求,但是,将在由计算机执行的计算机可执行指令(例如,程序模块)的一般上下文中描述本发明。通常,程序模块包括执行特殊任务或实现特殊的抽象数据类型的例程、程序、对象、组件、数据结构等。而且,本领域的技术人员将会理解,本发明可以利用其它计算机系统配置(包括手持设备、多处理器系统、基于微处理器的或可编程的消费者电子设备、网络PC、小型计算机、大型计算机等)来加以实践。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于本地和远程记忆存储设备中。
如图1所示,示例性通用计算系统包括常规个人计算机20或类似物,它包括处理单元21、系统存储器22和系统总线23,系统总线23将包括系统存储器的各种系统组件耦合到处理单元21。系统总线23可以是几种类型的总线结构中的任何总线结构,包括存储总线或存储控制器、外围总线和使用各种总线构造中的任何总线构造的局部总线。系统存储器包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统26(BIOS)被存储在ROM24中,该基本输入/输出系统包含有助于在个人计算机20内的各个元件之间传送信息(例如,在启动期间)的基本例程。个人计算机20还可以包括从硬盘(未示出)读取并对其写入的硬盘驱动器27、从可移动磁盘29读取或对其写入的磁盘驱动器28、以及从可移动光盘31(例如,CD ROM或其它光学介质)读取或对其写入的光盘驱动器30。硬盘驱动器27、磁盘驱动器28和光盘驱动器30分别通过硬盘驱动器接口32、磁盘驱动器接口33和光驱接口34而被连接到系统总线23。这些驱动器及其关联的计算机可读介质为个人计算机20提供计算机可读指令、数据结构、程序模块和其它数据的非易失存储。虽然这里所描述的示例性环境使用硬盘、可移动磁盘29和可移动光盘31,但是,本领域的技术人员应该理解,也可以在示例性操作环境中使用可以存储可由计算机存取的数据的其它类型的计算机可读介质,例如,盒式磁带、闪存卡、数字视频盘、伯努里式(Bernoulli)磁带匣、随机存取存储器(RAMs)、只读存储器(ROMs)等。
许多程序模块可以被存储在硬盘、磁盘29、光盘31、ROM24或RAM25上,它们包括操作系统35、一个或多个应用程序36、其它程序模块37和程序数据38。用户可以通过输入设备(例如,键盘40和定点设备42),来将命令和信息输入个人计算机20中。其它输入设备(未示出)可以包括话筒、操纵杆、游戏垫、圆盘式卫星电视天线、扫描仪或类似的输入设备。这些和其它的输入设备经常通过被耦合到系统总线的串行端口接口46而被连接到处理单元21,但也可以由其它接口(例如,并行端口、游戏端口或通用串行总线(USB))来加以连接。监视器47或其它类型的显示设备也经由接口(例如,视频适配器48)而被连接到系统总线23。除监视器47以外,个人计算机还通常包括诸如扬声器和打印机等其它外围输出设备(未示出)。图1中的示例性系统也包括主机适配器55、小型计算机系统接口(SCSI)总线56、以及被连接到SCSI总线56的外部存储设备62。
个人计算机20可以使用与一台或多台远程计算机(例如,远程计算机49)的逻辑连接而在联网环境中进行操作。远程计算机49可以是另一台个人计算机、服务器、路由器、网络PC、对等设备或其它公用网络节点,它通常包括以上相对于个人计算机20而描述的许多或所有元件,尽管图1中只示出了记忆存储设备50。图1中所描绘的这些逻辑连接包括局域网(LAN)51和广域网(WAN)52。这类联网环境在办公室、企业范围的计算机网络、内联网和因特网中很普遍。
当被用于LAN联网环境中时,个人计算机20通过网络接口或适配器53而被连接到LAN51。当被用于WAN联网环境中时,个人计算机20通常包括调制解调器54或用于通过广域网52(例如,因特网)建立通信的其它装置。调制解调器54(可能是内置的,也可能是外置的)经由串行端口接口46而被连接到系统总线23。在联网环境中,相对于个人计算机20或其各个部分而描绘的程序模块可以被存储在该远程记忆存储设备中。将会理解,所示的这些网络连接起示例性作用,可以使用在这些计算机之间建立通信链路的其它装置。
尽管可以预想本发明的众多实施例特别适合计算机化系统,但本文档中没有任何内容意在将本发明局限于这类实施例。相反,如这里所使用的术语“计算机系统”意在包含能够存储和处理信息和/或能够使用被存储的信息来控制设备本身的行为或执行的任何和所有的设备,而不管这类设备本质上是电子的、机械的、逻辑的还是虚拟的。
基本同步模式和项目发散
对于本发明的某些实施例,例如对于基于项目的系统,“变化单元”本质上是始终作为单元而加以同步化的属性集。例如,“联系人项目”的“名字”属性和“姓”属性可以共同包括单个变化单元。此外,“版本”与每个变化单元关联,以表示对那个变化单元以及对应于何时执行更新的时标(timestamp)进行特定更改的最后的合伙者。这样,如这里所使用的,为简化符号表示法起见,用字母来表示合伙者,并且通过递增整数来表示时标,以便只通过使合伙者(例如,“A”)和时标(例如,“1”)配对,每个变化单元与唯一的标识号相关联,从而反映每个合伙者在特定时间进行的最近的更改——例如,“A1”。
对于基本同步模式,例如,这里先前所描述的同步模式(它可能会导致数据的不收敛),每个变化单元的元数据包括两个分量:变化版本(cv),它指出该变化单元的当前“更新”状态;以及认识(awareness)矢量(av)(被称为“版本数组”),它对应于对等团体中的每个合伙者的变化单元已发生的更新(或至少已作出任何更改的那些合伙者)。变化单元元数据的典型格式是<变化版本,认识矢量>,或更简单地为<cv,[av]>。可以共同使用该信息来容易地确定,例如,具有<A13,[A13,B11]>的元数据(Ma)的合伙者A上的变化单元(CUa)比具有<B11,[A12,B11]>的元数据(Mb)的合伙者B上的变化单元(CUb)更新,这是因为,假定每个版本号的时标分量随时间的推移而递增,Ma包括在Mb中没有被反映的变化(即A13)。
图2是基于表格的时间流程图,示出了最终导致冲突判决的不收敛的三对等体同步操作(对于三合伙者同步团体),(其中,合伙者可以结束于发散的稳定状态)。表格“T”中的第一列对应于事件的相对时间线(timeline),而第二、第三和第四列对应于同步团体中的三个合伙者系统A、B和C中的每个合伙者系统上的活动。为方便起见,如图所示,每个合伙者A、B和C上的变化单元复制品的时间0处的初始状态始于每个合伙者A、B和C的变化单元复制品的充分同步化(fully-synchronized)的状态(每个复制品由每个对应的列的数据单独表示)。
在时间1,通过用新的值(A11)递增cv,并更新av来反映该更新状态,A可更新变化单元(在下文中被称作“CUa”)的其复制品中的数据并反映那个更新。在时间2,B也独立地更新变化单元(在下文中被称作“CUb”)的其复制品中的数据,并适当地更新cv和av。
在时间3,第一同步操作发生于与B同步的C。在操作中,通过使用这里先前讨论的逻辑,C将其元数据(Mc)发送给B,作为响应,B将其变化单元(CUb)的副本和其关联的元数据(Mb)发送给C,用于进一步处理。一接收到CUb和Mb,C就确定CUb和Mb比CUc和Mc更新,这是因为B的认识矢量(AVb)中的“B11”版本没有在C的认识矢量(AVc)中得到反映,而所有的AVc都在AVb中得到反映,从而意味着对于CUc,CUb被“最后更新”(更新近)。结果,C利用来自CUb的数据来更新CUc,并且利用来自Mb的元数据来进一步更新关联的元数据Mc。
在时间4,B随后与合伙者A同步,并且,在接收A的变化单元(CUa)和元数据(Ma)(按照为方便起见而在下文中省略的逻辑讨论)之后,B确定有冲突,因为B和A已独立地对其各自的变化单元复制品CUb和CUa进行更改。随后,B使用其冲突判决过程(在这个例子中,为“选择远程”,即,选择远程版本优于其本地版本),来选择CUa优于CUb(将CUa的数据复制到CUb),并且,在元数据中反映这个判决,从而将其当前版本(CVb)更改成A11,并将B和A的认识矢量(AVb和AVa)合并在一起。
在时间5,C随后与合伙者A同步,并且,在接收A的变化单元(CUa)和元数据(Ma)之后,C也确定存在冲突,因为C和A已独立地对其各自的变化单元复制品CUc和CUa进行更改(虽然事实上CUc的变化确实是C先前在时间3与B同步的结果,尽管这个区别并不重要)。由于该冲突,C随后使用其冲突判决过程(在这个例子中,为“选择本地”,,即选择其本地版本优于远程版本),来选择CUc优于CUa(其中,变化单元数据的额外复制不是必要的),并且通过将其当前版本(CVc)保留为B11而在元数据中反映这个判决,并将C和A的认识矢量(AVc和AVa)合并在一起。
在时间6,A随后与B同步,并且,基于被交换的元数据(A将Ma发送给B,然后,B将Mb连同CUa一起返回给A),A认识到CUb和Mb比CUa和Ma更新(因为MB反映所有的Ma,Mb也反映版本B11,而Ma却不是这样);因此,A将CUb和Mb应用于其CUa和Ma(虽然应该注意,在此情况下,CUb和CUa实际上相同,A11,并且因此在替换实施例中,B可能会认识到这个事实,而不会发送CUb,或者,A可能不会将CUb复制到CUa)。
最后,在时间7,A随后与C同步,但是,因为Ma与Mc相同,所以,C不会将CUc发送给A,这样,分别在A和C上的CUa和CUc的数据已发生发散,这是现有同步系统无法辨认且必定较不和谐的状态。
冲突判决传播
本发明的几个实施例针对用于在手动和自动冲突判决操作期间检测冲突和应用冲突判决的系统和方法,因为不同的对等体(“合伙者”)可以用不同的方法来解决相同的冲突,例如,在此情况中:版本A1与B2之间有冲突,该冲突由赞同A1的合伙者X来解决,并由赞同B2的合伙者Y来解决。
本发明的各种实施例使用防止冲突判决的不收敛(其中,例如通过在缺少显著冲突的情况中具有不同的数据,合伙者可以结束于发散的稳定状态)、以及合伙者之间的冲突判决的无尽往复转换的一种或多种方法。
对于本发明的几个实施例,除了包括变化版本(cv)和认识矢量(av)以外,关于同步的元数据还包括冲突判决版本(crv),用于明确地跟踪可能会导致发散状态的冲突判决。基于为变化单元的元数据添加crv,该同步过程被加以修改,以利用如这里所描述的元数据中的这个新元素。为方便起见,可以用对每个变化单元复制品用<cv,crv,[av]>的形式(例如,<A10,B12,[A11,B12,C10]>)来表示包括cv、crv和av的所述同步元数据。
图3是处理流程图,示出了基于为该元数据添加crv的、本发明的几个实施例所利用的改进的同步过程,以及用于修改如这里所描述的元数据的其它过程。在该图中,该过程开始于步骤312,其中第一合伙者P1(寻求与另一个对等体同步的合伙者)通过向P2发送关于其本地变化单元复制品(CU1)的其认识矢量(AV1)来启动与第二合伙者P2的同步操作。在P2从P1那里接收AV1之后,在步骤316中,P2首先确定AV1是否包含关于其自己本地的、但对应的变化单元复制品(CU2)的变化版本(CV2);如果是,那么,在步骤318中,P2也确定AV1是否也包含CU2(如果有的话)的冲突判决版本(CRV2)。如果AV1满足这两个条件,那么,在步骤320中,P2立即向P1发送CU2的其元数据(M2)(包括CV2、CRV2和AV2),而不会发送CU2本身;否则,在步骤322中,P2向P1发送CU2,并在步骤320中发送M2。
返回到P1,在步骤324中,P1首先确定它是否从P2那里接收过CU2。如果否,那么,P1可以推断出其变化单元复制品(CU1)反映如P1与P2之间的最新近的更新;所以,在步骤326中,P1只是用AV2来更新AV1(如果必要的话),以便AV1反映AV2中的所有更新版本(如果它还没有这么做),并且,该同步过程结束。
相反,如果P1在步骤324中确实从P2那里接收CU2,那么,在步骤328中,P1必须首先确定AV1是否包含CV2所反映的版本;并且,如果是,则在步骤330中确定AV1是否也包含CRV2所反映的版本。如果是,那么,P1再次进行到步骤326,以更新AV1(如果必要的话),并且,该同步过程结束。另一方面,如果在步骤328中P1确定AV1的确包含CV2所反映的版本,但在步骤330中P1确定AV1不包含CRV2所反映的版本;那么,在步骤322中,P1确定AV2是否包含CV1所反映的这些版本中的至少一些版本—“一些”这个词预期:关于某些选择性实施例,CV1可能是多个cv值的集合,但在单一cv值的情况中(例如,在这个例子中),这等同于包含在争论中的cv值(因此是对单一cv集合的步骤334的某种重复),从而应该在单一cv情况中自动进行到步骤334,这是普遍使用的情况—并且,如果否,那么,在步骤326中,P1再次用AV2来更新AV1(如果必要的话),并且,该同步过程结束。
对比而言,如果相反在步骤328中AV1不包含CV2,或者如果在步骤332中AV2确实包含某个CV1,那么,在步骤334中,P1接下来确定AV2是否包含CV1。如果否,那么,在步骤336中,P1确定AV1是否包含CV2所反映的这些版本中的至少一些版本;并且,如果否,那么,在步骤338中,P1将CU2应用于CU1(或将来自CU2的数据复制到CU1),并将该对应的元数据M1(包括CV1、CRV1、AV1)设置为<CV2,CRV2,AV1+AV2>的各个值(其中,AV1+AV2是来自每个认识矢量的最近的版本的并集,例如,如果AV1=[A11,B10,C10]并且AV2=[A10,B11,C12],那么,AV1+AV2=[A11,B11,C12]),并且,该同步过程结束。但如果在步骤336中P1相反确定AV1确实包含某个CV2,那么,在步骤340中,P1也确定AV2是否包含CRV1;并且,如果是,那么,P1再次进行到步骤338,以应用如先前所描述的CU2,并且,该同步过程结束。
作为选择,如果在步骤334中P1相反确定AV2不包含CV1,或者如果在步骤340中P1相反确定AV2不包含CRV1,那么,在这两种情况中的任何一种情况中,P1在步骤342中确定AV1是否包含CV2;并且,如果是,那么,在步骤344中,P1使用“特殊处理”来选择解决方案(因为没有冲突),其后结束该同步过程;或者,如果否,那么,在步骤346中,P1启动“冲突处理”(或冲突判决处理)来判决该冲突,并在这两个数据集之间选择优胜者,并且结束该同步过程。
高级同步模式和项目收敛(即数据收敛)
通过使用如图3中所示出的前述方法,可避免这种情况:具有不同的变化单元值、但具有相同的元数据的两个变化单元复制品(如同该基本同步模式的情况)没有被辨认出来并仍然处于发散状态;通过应用与图2中所示出的情形相类似的情形、但应用图3中所示出的本发明的方法,图4示出了这个要点。
更具体地说,图4是基于表格的时间流程图,示出了最终导致冲突判决的收敛的三对等体同步操作。此外,图5是表格,示出了关于从图3所示的过程中产生的某些结束状态的特殊处理和冲突处理的合成元数据、以及涉及新的本地变化的元数据(出于比较的目的,因为新的本地变化不直接是同步操作的一部分,而是对元数据如何在时间1和时间2为本地更新(例如,如这里所描述的本地更新)而变化的理解)。
再次参考图4,表格“T”中的第一列再一次对应于事件的相对时间线,而第二、第三和第四列对应于同步团体中的三个合伙者系统A、B和C中的每个合伙者系统上的活动。为方便起见,如图所示,每个合伙者A、B和C上的变化单元复制品在时间0处的初始状态始于每个合伙者A、B和C的变化单元复制品的充分同步化的状态(每个复制品由每个对应的列的数据来单独表示)。
在时间1,通过用新的值(A11)递增其变化版本(cv),并更新该认识矢量(av)来反映该更新状态,A可更新其变化单元(在下文中被称作“CUa”)的复制品中的数据并反映那个更新,并且,不对冲突判决版本(crv)进行更新(因为没有判决过冲突)。在时间2,B也独立地更新其变化单元(在下文中被称作“CUb”)的复制品中的数据,并如所示的那样适当地更新其对应的元数据(Mb)分量。(在下文中,为方便起见,在每一合伙者的基础上表示每个合伙者cv、crv和av,例如对等体A的元数据分量的CVa、CRVa和AVa、以及合伙者B和C上的对应的元数据的类似的命名法。这同样应用于集体元数据,例如,系统A的Ma,以及变化单元,例如,系统A的CUa等。)
在时间3,第一同步操作发生于与B同步的C。通过使用图3中的流程图所示的方法,C将AVc发送给B,并且,B将CUb和Mb都返回给C。通过分析Mb和Mc,C能够确定CUb比CUc更新,并且最终应用CUb(即,将CUb复制到CUc),并将其元数据Mc分量CVc、CRVc和AVc更新为等于<CVb,CRVb,AVc+AVb>(其中,AVc+AVb是如这里先前所描述的AVc和AVb的并集)的值。更具体地说,对于图3所示的过程,该逻辑处理按顺序遍历以下步骤:312、316、322、320、324、328、334、336、340和338。(注意,该结果类似于将会从这里先前所描述的该基本同步系统中预期的结果。)
再次参考图4,在时间4,B随后与合伙者A同步,并且,在接收A的变化单元(CUa)和元数据(Ma)(再次根据图3中的流程图所展示的方法)之后,B确定存在冲突,因为B和A都已独立地对其各自的变化单元复制品CUb和CUa进行更改,并使用其冲突判决过程。更具体地,关于图3所展示的过程,该逻辑处理有序地遍历以下步骤:312、316、322、320、324、328、334、342和346。为了判决该冲突,根据其冲突判决程序,B选择远程更新优于本地更新,并且,如图5中所展示的,关于Mb的最后得到的元数据值是<CVa,CRVnew,AVa+AVb+CRVnew>—其中,CRVnew的“new(新)”是合伙者B的下一个递增的更新版本(例如,在这个例子中,该最后的更新版本是时间2处的变化的B11,所以,目前的冲突判决的下一个递增的更新版本是B12),并且,CRVb和AVb(但不是CVb)都反映时间4处的Mb的结束状态的、如图4所示的这个新的值。
在时间5,C随后与合伙者A同步,并且,在接收A的变化单元(CUa)和元数据(Ma)之后,C也确定(经由图3中的过程,该过程有序地遍历312、316、322、320、324、328、334、342和346)存在冲突,因为C和A已独立地对其各自的变化单元复制品CUc和CUa进行更改(虽然事实上CUc的变化确实是C先前在时间3与B同步的结果,尽管这个区别并不重要)。由于该冲突,C随后使用其冲突判决过程(在这个例子中,将要选择本地更新优于远程更新),来选择越过CUc优于CUa;并且,如图5中所展示的,这个选择在元数据中得到反映,为<CVc,CRVnew,AVa+AVc+CRVnew>—其中,CRVnew又是合伙者C的下一个递增的更新版本(例如,在这个例子中是C11),并且由时间5处的Mc的结束状态的、如图4所示的所得的CRVc和所得AVc(但不是CVc)来反映。
在时间6,A随后与B同步,并且,基于被交换的元数据(A将Ma发送给B,然后,B将Mb连同CUa一起返回给A),A认识到:CUb和Mb比CUa和Ma更新(因为MB反映所有的Ma,Mb也反映版本B11,而Ma却不是这样);因此,A将CUb和Mb值如所示的应用于其CUa和Ma(虽然应该注意:在此情况下,CUb和CUa实际上相同;但是,A11和(因此在选择性实施例中B)可能会认识到这个事实,而不会发送CUb,或者,A可能不会将CUb复制到CUa)。关于图3,该同步的特殊遍历按顺序是:312、316、318、322、320、324、328、334、336、340和338。
再次返回到图4,在时间7,A随后与C同步,但由于当发生冲突时如这里先前所描述的冲突判决版本(crv)的利用以及其逻辑并入认识版本(av),Ma不再与Mc相同(这是使用标准同步模式的情况),所以,C确实将CUc和Mc发送给A,用于进一步处理(根据图3所描述的过程),并且,A最终采用特殊处理(经由有序地遍历以下步骤的图3中的过程:312、316、318、322、320、324、328、330、332、334、336、340、342和344)。明确地意在加强项目收敛(即数据收敛)的该特殊处理随后使用一种方法来获得确定性解决方案,该解决方案确保在该同步团体中通用地选择一个更新优于另一个更新(例如,在这个例子中,是具有最低的更新号码的那个更新,该最低的更新号码又是该唯一的计算机系统标识符和所述更新的时标的组合)。然后,这个解决方案与如图5所示的<Cvdet,CRVdet,AV1+AV2>的被更新的元数据耦合,或者,在目前的情况中—其中,“A11”的对应的值小于“B11”的对应的值,因此,A11是被确定的解决方案,元数据Ma在时间7变成具有图4所示的这些值的<CVa,CRVa,AVa+AVc>。
在图4中的时间8和时间9,随后会容易明白:时间7处的这个特殊处理解决方案如何传播通过该同步团体,并最终导致项目收敛(即数据收敛)(其中,每个系统上的变化单元再次是相同的)。在时间6,方法的逻辑过程遍历(经由图3中所展示的过程的步骤312、316、318、320、324和326)导致Mb的AVb的更新。在时间7,该方法的逻辑过程遍历(经由图3中所展示的过程的步骤312、316、318、322、320、324、328、330、332、334、336、340和338)导致将CUb和Mb应用于CUc和Mc—其中,所得的元数据Mc包括等同于<CUb,CRVb,AVb+AVc>的值。
用于项目收敛(即数据收敛)的替换方法
在本发明的选择性实施例中,通过在冲突的时间使用所有冲突判决的特殊处理确定性方法,也可确保项目收敛(即数据收敛)。但是,尽管该方法甚至会允许该基本同步模式确保项目收敛(即数据收敛),但它也引入对可能不一定会发生发散的冲突的任意判决,从而不如这里先前所描述的高级同步方法那样具有健壮性。
结论
这里所描述的各种系统、方法和技术可以利用硬件或软件、或(如果适当的话)利用两者的组合来加以执行。这样,本发明的这些方法和装置、或其某些方面或部分可以采取在有形介质(例如,软盘、CD-ROM、硬盘、或任何其它的机器可读存储介质)中包含的程序代码的形式,其中,当该程序代码被载入机器(例如,计算机)并由该机器来执行时,该机器成为用于实践本发明的装置。在可编程计算机上的程序代码执行的情况中,该计算机将通常包括处理器、处理器可读的存储介质(包括易失和非易失存储器和/或存储元件)、至少一个输入设备和至少一个输出设备。一个或多个程序较佳地用高级的过程语言或面向对象的编程语言来实现,以便与计算机系统进行通信。但是,该程序可以用汇编语言或机器语言来实现(如果需要的话)。无论如何,语言都可以是被编译或被解释的语言,并可以与硬件实现结合。
本发明的这些方法和装置也可以采取通过某种传输介质(例如,通过电线或电缆线路、通过光纤、或经由任何其它形式的传输)传送的程序代码的形式来实施,其中,当该程序代码被机器(例如,EPROM、门阵列、可编程逻辑设备(PLD)、客户机计算机、录像机或类似的机器)接收、被载入该机器并由该机器来执行时,该机器成为用于实践本发明的装置。当在通用处理器上实现时,该程序代码与处理器结合,以提供一种独特的装置,该装置进行操作,以执行本发明的索引功能。
已结合各附图的这些较佳实施例来描述本发明,但将要理解:可以使用其它类似的实施例,或者可以对这里所描述的实施例实行修改和添加,用于执行本发明的相同功能,而不偏离本发明。例如,尽管在模仿个人计算机的功能性的数字设备的环境中描述本发明的示范实施例,但本领域的技术人员将会认识到:本发明不局限于如本申请中所描述的这类数字设备,它可以应用于任何数量的现存的或将来的计算设备或环境(例如,游戏控制台、手持计算机、便携式计算机等,不管是有线的还是无线的),并可以应用于经由通信网络而被连接,并跨越该网络而相互作用的任何数量的这类计算设备。另外,应该强调:尤其是当无线联网设备的数量继续激增时,这里预期了各种计算机平台(包括手持设备操作系统和其它专用硬件/软件接口系统)。所以,本发明不应该局限于任何单一实施例,而是应该根据所附权利要求书来在宽度和范围方面加以解释。
Claims (6)
1.一种用于使同步团体中的至少两个对等计算机系统之间的变化单元数据同步的方法,所述方法包括:
使所述至少两个对等计算机系统之间的所述变化单元数据同步;
提供对应于所述变化单元数据的元数据分量,所述元数据分量包括一冲突判决版本分量,当一冲突被判决时,所述冲突判决版本分量在至少一个所述对等计算机系统上更新;
通过所述冲突判决分量标识所述对等计算机系统中所述变化单元数据中的发散状态;
纠正所述变化单元数据中的所述发散状态;以及
在整个所述同步团体中传播被纠正的变化单元数据。
2.如权利要求1所述的方法,其特征在于,还包括自动判决至少两个对等计算机系统的变化单元数据之间的冲突的步骤。
3.一种用于使同步团体中的至少两个对等计算机系统之间的变化单元数据同步的系统,所述系统包括处理器、存储器以及至少一个子系统,所述至少一个子系统用于:
使所述至少两个对等计算机系统之间的所述变化单元数据同步;
提供对应于所述变化单元数据的元数据分量,所述元数据分量包括一冲突判决版本分量,当一冲突被判决时,所述冲突判决版本分量在至少一个所述对等计算机系统上更新;
通过所述冲突判决分量标识所述对等计算机系统之中所述变化单元数据中的发散状态;
纠正所述变化单元数据中的所述发散状态;以及
在整个所述同步团体中传播被纠正的变化单元数据。
4.如权利要求3所述的系统,其特征在于,还包括用于自动判决至少两个对等计算机系统的变化单元数据之间的冲突的至少一个子系统。
5.一种硬件控制设备,用于使同步团体中的至少两个对等计算机系统之间的变化单元数据同步,所述硬件控制设备包括:
用于使所述至少两个对等计算机系统之间的所述变化单元数据同步的装置;
用于提供对应于所述变化单元数据的元数据分量的装置,所述元数据分量包括一冲突判决版本分量,当一冲突被判决时,所述冲突判决版本分量在至少一个所述对等计算机系统上更新;
用于通过所述冲突判决分量标识所述对等计算机系统中所述变化单元数据的发散状态的装置;
用于纠正所述变化单元数据中的所述发散状态的装置;以及
用于在整个所述同步团体中传播被纠正的变化单元数据的装置。
6.如权利要求5所述的硬件控制设备,其特征在于,还包括用于自动判决至少两个对等计算机系统的变化单元数据之间的冲突的装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US55838804P | 2004-04-01 | 2004-04-01 | |
US60/558,388 | 2004-04-01 | ||
US10/932,474 | 2004-09-01 | ||
US10/932,474 US7533134B2 (en) | 2004-04-01 | 2004-09-01 | Systems and methods for the propagation of conflict resolution to enforce item convergence (i.e., data convergence) |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1677392A CN1677392A (zh) | 2005-10-05 |
CN100485669C true CN100485669C (zh) | 2009-05-06 |
Family
ID=34890593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100529694A Expired - Fee Related CN100485669C (zh) | 2004-04-01 | 2005-03-01 | 加强项目收敛(即数据收敛)的冲突判决传播系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7533134B2 (zh) |
EP (1) | EP1582983A1 (zh) |
JP (1) | JP4690076B2 (zh) |
KR (1) | KR101109219B1 (zh) |
CN (1) | CN100485669C (zh) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7917646B2 (en) | 2002-12-19 | 2011-03-29 | Intel Corporation | Speculative distributed conflict resolution for a cache coherency protocol |
US7822929B2 (en) * | 2004-04-27 | 2010-10-26 | Intel Corporation | Two-hop cache coherency protocol |
US7580867B2 (en) * | 2004-05-04 | 2009-08-25 | Paul Nykamp | Methods for interactively displaying product information and for collaborative product design |
US7574456B2 (en) * | 2004-12-16 | 2009-08-11 | Sap Ag | Bidirectional update of client-server objects |
US7523146B2 (en) | 2005-06-21 | 2009-04-21 | Apple Inc. | Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment |
US8495015B2 (en) * | 2005-06-21 | 2013-07-23 | Apple Inc. | Peer-to-peer syncing in a decentralized environment |
JP5092234B2 (ja) * | 2005-12-14 | 2012-12-05 | 日本電気株式会社 | 情報処理装置、分散同期型情報システム、情報同期方法、及び、プログラム |
DE102006005840B4 (de) * | 2006-02-08 | 2007-10-31 | Combots Product Gmbh & Co. Kg | Verfahren zum gemeinsamen Bearbeiten einer Datenmenge sowie ein Netzwerksystem und ein Kommunikationssystem zur Durchführung des Verfahrens |
US9710508B2 (en) | 2006-03-09 | 2017-07-18 | Quickbase, Inc. | Method and system for managing data in a workflow process |
US8359297B2 (en) | 2006-06-29 | 2013-01-22 | International Business Machines Corporation | Multiple source data management using a conflict rule |
US20090030952A1 (en) * | 2006-07-12 | 2009-01-29 | Donahue Michael J | Global asset management |
CN101145152B (zh) * | 2006-09-14 | 2010-08-11 | 国际商业机器公司 | 在特定上下文内自动精细化本体的系统和方法 |
US7778282B2 (en) * | 2006-12-18 | 2010-08-17 | Microsoft Corporation | Propagation of conflict knowledge |
US8527660B2 (en) * | 2006-12-22 | 2013-09-03 | Palm, Inc. | Data synchronization by communication of modifications |
US7657769B2 (en) * | 2007-01-08 | 2010-02-02 | Marcy M Scott | N-way synchronization of data |
US20080294701A1 (en) * | 2007-05-21 | 2008-11-27 | Microsoft Corporation | Item-set knowledge for partial replica synchronization |
US8505065B2 (en) * | 2007-06-20 | 2013-08-06 | Microsoft Corporation | Access control policy in a weakly-coherent distributed collection |
US20090006489A1 (en) * | 2007-06-29 | 2009-01-01 | Microsoft Corporation | Hierarchical synchronization of replicas |
US9401957B2 (en) * | 2007-09-14 | 2016-07-26 | International Business Machines Corporation | System and method for synchronization between servers |
US7836053B2 (en) * | 2007-12-28 | 2010-11-16 | Group Logic, Inc. | Apparatus and methods of identifying potentially similar content for data reduction |
US20090234872A1 (en) * | 2008-03-11 | 2009-09-17 | Microsoft Corporation | Synchronization of disconnected/offline data processing/entry |
US8473543B2 (en) | 2009-07-06 | 2013-06-25 | Microsoft Corporation | Automatic conflict resolution when synchronizing data objects between two or more devices |
US8572022B2 (en) * | 2010-03-02 | 2013-10-29 | Microsoft Corporation | Automatic synchronization conflict resolution |
US9053165B2 (en) * | 2013-07-08 | 2015-06-09 | Dropbox, Inc. | Structured content item synchronization |
US9830142B2 (en) | 2013-09-13 | 2017-11-28 | Microsoft Technology Licensing, Llc | Automatic installation of selected updates in multiple environments |
US10026064B2 (en) | 2013-09-13 | 2018-07-17 | Microsoft Technology Licensing, Llc | Automatically recommending updates based on stored lifecycle information |
US9626176B2 (en) | 2013-09-13 | 2017-04-18 | Microsoft Technology Licensing, Llc | Update installer with technical impact analysis |
US9665359B2 (en) * | 2013-09-13 | 2017-05-30 | Microsoft Technology Licensing, Llc | Automatically resolving conflicts after installation of selected updates in a computer system |
US10091287B2 (en) | 2014-04-08 | 2018-10-02 | Dropbox, Inc. | Determining presence in an application accessing shared and synchronized content |
US9998555B2 (en) | 2014-04-08 | 2018-06-12 | Dropbox, Inc. | Displaying presence in an application accessing shared and synchronized content |
US10270871B2 (en) | 2014-04-08 | 2019-04-23 | Dropbox, Inc. | Browser display of native application presence and interaction data |
US10171579B2 (en) | 2014-04-08 | 2019-01-01 | Dropbox, Inc. | Managing presence among devices accessing shared and synchronized content |
JP2016126690A (ja) * | 2015-01-08 | 2016-07-11 | キヤノン株式会社 | 管理装置、管理装置の制御方法、及びプログラム |
US9846528B2 (en) | 2015-03-02 | 2017-12-19 | Dropbox, Inc. | Native application collaboration |
US11372889B2 (en) * | 2015-04-22 | 2022-06-28 | The Bank Of New York Mellon | Multi-modal-based generation of data synchronization instructions |
CN106470230B (zh) * | 2015-08-19 | 2019-08-20 | 互联网域名系统北京市工程研究中心有限公司 | 分布式dns节点数据一致性同步方法和装置 |
US10248933B2 (en) | 2015-12-29 | 2019-04-02 | Dropbox, Inc. | Content item activity feed for presenting events associated with content items |
US10620811B2 (en) | 2015-12-30 | 2020-04-14 | Dropbox, Inc. | Native application collaboration |
US10382502B2 (en) | 2016-04-04 | 2019-08-13 | Dropbox, Inc. | Change comments for synchronized content items |
US11934378B2 (en) * | 2021-03-11 | 2024-03-19 | International Business Machines Corporation | Recording changes to records whilst preserving record immutability |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5900870A (en) * | 1989-06-30 | 1999-05-04 | Massachusetts Institute Of Technology | Object-oriented computer user interface |
US5710922A (en) * | 1993-06-02 | 1998-01-20 | Apple Computer, Inc. | Method for synchronizing and archiving information between computer systems |
US6078925A (en) * | 1995-05-01 | 2000-06-20 | International Business Machines Corporation | Computer program product for database relational extenders |
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 |
US5806074A (en) * | 1996-03-19 | 1998-09-08 | Oracle Corporation | Configurable conflict resolution in a computer implemented distributed database |
US6112024A (en) * | 1996-10-02 | 2000-08-29 | Sybase, Inc. | Development system providing methods for managing different versions of objects with a meta model |
US6708221B1 (en) * | 1996-12-13 | 2004-03-16 | Visto Corporation | System and method for globally and securely accessing unified information in a computer network |
US6240414B1 (en) * | 1997-09-28 | 2001-05-29 | Eisolutions, Inc. | Method of resolving data conflicts in a shared data environment |
US6108004A (en) * | 1997-10-21 | 2000-08-22 | International Business Machines Corporation | GUI guide for data mining |
US6052735A (en) * | 1997-10-24 | 2000-04-18 | Microsoft Corporation | Electronic mail object synchronization between a desktop computer and mobile device |
US6263342B1 (en) * | 1998-04-01 | 2001-07-17 | International Business Machines Corp. | Federated searching of heterogeneous datastores using a federated datastore object |
FR2780178B1 (fr) * | 1998-06-18 | 2001-08-10 | Inst Nat Rech Inf Automat | Procede de transformation et d'acheminement de donnees entre des serveurs d'agents presents sur des machines et un serveur d'agent central present sur une autre machine |
US6317754B1 (en) * | 1998-07-03 | 2001-11-13 | Mitsubishi Electric Research Laboratories, Inc | System for user control of version /Synchronization in mobile computing |
US6519597B1 (en) * | 1998-10-08 | 2003-02-11 | International Business Machines Corporation | Method and apparatus for indexing structured documents with rich data types |
US6338056B1 (en) * | 1998-12-14 | 2002-01-08 | International Business Machines Corporation | Relational database extender that supports user-defined index types and user-defined search |
US6757896B1 (en) * | 1999-01-29 | 2004-06-29 | International Business Machines Corporation | Method and apparatus for enabling partial replication of object stores |
KR100382851B1 (ko) * | 1999-03-31 | 2003-05-09 | 인터내셔널 비지네스 머신즈 코포레이션 | 분산형 데이터 처리 시스템에서 클라이언트 컴퓨터를관리하기 위한 방법 및 장치 |
US6199195B1 (en) * | 1999-07-08 | 2001-03-06 | Science Application International Corporation | Automatically generated objects within extensible object frameworks and links to enterprise resources |
US6370541B1 (en) * | 1999-09-21 | 2002-04-09 | International Business Machines Corporation | Design and implementation of a client/server framework for federated multi-search and update across heterogeneous datastores |
US6556983B1 (en) * | 2000-01-12 | 2003-04-29 | Microsoft Corporation | Methods and apparatus for finding semantic information, such as usage logs, similar to a query using a pattern lattice data space |
US6671757B1 (en) * | 2000-01-26 | 2003-12-30 | Fusionone, Inc. | Data transfer and synchronization system |
US6694336B1 (en) * | 2000-01-25 | 2004-02-17 | Fusionone, Inc. | Data transfer and synchronization system |
US6820088B1 (en) * | 2000-04-10 | 2004-11-16 | Research In Motion Limited | System and method for synchronizing data records between multiple databases |
CN1300677C (zh) * | 2000-06-22 | 2007-02-14 | 微软公司 | 分布式计算服务平台 |
JP2002149464A (ja) * | 2000-08-17 | 2002-05-24 | Fusionone Inc | データ転送および同期システム用のベースローリングエンジン |
US6999956B2 (en) * | 2000-11-16 | 2006-02-14 | Ward Mullins | Dynamic object-driven database manipulation and mapping system |
US7178100B2 (en) * | 2000-12-15 | 2007-02-13 | Call Charles G | Methods and apparatus for storing and manipulating variable length and fixed length data elements as a sequence of fixed length integers |
US6877111B2 (en) * | 2001-03-26 | 2005-04-05 | Sun Microsystems, Inc. | Method and apparatus for managing replicated and migration capable session state for a Java platform |
US6961723B2 (en) * | 2001-05-04 | 2005-11-01 | Sun Microsystems, Inc. | System and method for determining relevancy of query responses in a distributed network search mechanism |
US6697818B2 (en) * | 2001-06-14 | 2004-02-24 | International Business Machines Corporation | Methods and apparatus for constructing and implementing a universal extension module for processing objects in a database |
US6772178B2 (en) * | 2001-07-27 | 2004-08-03 | Sun Microsystems, Inc. | Method and apparatus for managing remote data replication in a distributed computer system |
WO2003044698A1 (en) * | 2001-11-15 | 2003-05-30 | Visto Corporation | System and methods for asychronous synchronization |
US7721216B2 (en) * | 2002-06-18 | 2010-05-18 | Microsoft Corporation | Visual group interface for group connectivity |
US7177865B2 (en) * | 2003-06-30 | 2007-02-13 | Sap Ag | Data synchronization method and system |
-
2004
- 2004-09-01 US US10/932,474 patent/US7533134B2/en not_active Expired - Fee Related
-
2005
- 2005-02-14 KR KR1020050011819A patent/KR101109219B1/ko not_active IP Right Cessation
- 2005-03-01 JP JP2005056021A patent/JP4690076B2/ja not_active Expired - Fee Related
- 2005-03-01 CN CNB2005100529694A patent/CN100485669C/zh not_active Expired - Fee Related
- 2005-03-24 EP EP05102381A patent/EP1582983A1/en not_active Withdrawn
Non-Patent Citations (2)
Title |
---|
Footloose: a case for physical eventual consistency andselective conflict resolution. PALUSKA J M ET AL.MOBILE COMPUTING SYSTEMS AND APPLICATIONS. 2003 |
Footloose: a case for physical eventual consistency andselective conflict resolution. PALUSKA J M ET AL.MOBILE COMPUTING SYSTEMS AND APPLICATIONS. 2003 * |
Also Published As
Publication number | Publication date |
---|---|
US20050223117A1 (en) | 2005-10-06 |
US7533134B2 (en) | 2009-05-12 |
CN1677392A (zh) | 2005-10-05 |
EP1582983A1 (en) | 2005-10-05 |
JP2005293560A (ja) | 2005-10-20 |
JP4690076B2 (ja) | 2011-06-01 |
KR101109219B1 (ko) | 2012-01-30 |
KR20060041906A (ko) | 2006-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100485669C (zh) | 加强项目收敛(即数据收敛)的冲突判决传播系统和方法 | |
CN1794227A (zh) | 不用快照的项同步系统和方法 | |
CN109726174A (zh) | 数据归档方法、系统、设备以及存储介质 | |
CN101809561B (zh) | 同步数据和元数据的交换 | |
KR100515910B1 (ko) | 데이터구조 관리장치, 데이터구조 관리시스템, 데이터구조관리방법 및 데이터구조 관리프로그램을 격납하는 기록매체 | |
CN111143039B (zh) | 一种虚拟机的调度方法、装置及计算机存储介质 | |
US20090077262A1 (en) | System and method for synchronization between servers | |
JP2021197153A (ja) | ワードスロットを識別するための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム | |
CN104216731A (zh) | 实时更新 | |
CN100489777C (zh) | 智能平台管理接口韧体架构及其建立方法 | |
CN116820535A (zh) | 任务处理方法、装置、计算机可读存储介质和电子装置 | |
US10872063B2 (en) | Local terminal and synchronization system including the same | |
CN111274192A (zh) | 一种多bmc管理系统及刀片服务器 | |
US10621163B2 (en) | Tracking and reusing function results | |
US11593098B2 (en) | Synchronization of source code under development in multiple concurrent instances of an integrated development environment | |
CN109981798A (zh) | 一种数据写入方法、系统及电子设备和存储介质 | |
CN109388716A (zh) | 关系图更新方法及设备 | |
KR102135719B1 (ko) | 부품 관리 장치 및 이의 동작 방법 | |
US11281991B2 (en) | Efficient decision tree evaluation | |
US9489246B2 (en) | Method and device for determining parallelism of tasks of a program | |
CN110851411A (zh) | 一种基于文件同步的dns动态变更系统及方法 | |
KR102406242B1 (ko) | 특허 중개 과정에서의 특허 명세서 관리용 블록체인 기반 패치 관리 장치 | |
JP7284791B2 (ja) | 分散トランザクションシステム及び分散トランザクションシステムにおける分散トランザクション処理方法 | |
US20140298236A1 (en) | System and method for providing violation bar in a supply chain management environment | |
CN117472523A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090506 Termination date: 20140301 |