CN105493474A - 用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法 - Google Patents
用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法 Download PDFInfo
- Publication number
- CN105493474A CN105493474A CN201480047217.6A CN201480047217A CN105493474A CN 105493474 A CN105493474 A CN 105493474A CN 201480047217 A CN201480047217 A CN 201480047217A CN 105493474 A CN105493474 A CN 105493474A
- Authority
- CN
- China
- Prior art keywords
- cluster
- subregion
- data
- data variation
- source
- 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.)
- Granted
Links
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/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2033—Failover techniques switching over of hardware resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2097—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
Abstract
系统和方法可支持用于同步分布式数据网格中的集群之间的数据的分区级别日志。系统可关联日志缓存与本地集群中的一个或多个用户缓存,其中,所述一个或多个用户缓存被分成多个分区。并且,系统可捕获被施加到所述一个或多个用户缓存的不同分区的一个或多个数据变化,并且可在支持与远程集群的同步的日志缓存中存储所述一个或多个数据变化。
Description
(版权声明)
本专利文档的公开内容的一部分包含受版权保护的材料。专利权人不反对任何人按照专利文档或专利公开内容在专利商标局专利文件或记录中出现的样子影印再现专利文档或专利公开内容,但另外保留任何所有版权。
技术领域
本发明一般涉及计算机系统,特别涉及支持分布式数据网格中的联合缓存(federatedcaching)。
背景技术
当代的计算系统,特别是较大的组织和企业使用的那些计算机系统,在尺寸和复杂性上继续增加。特别地,在诸如因特网应用的领域中,期望数以百万计的用户应能够同时访问该应用,这种同时访问有效地导致用户产生和消费的内容以及包含该内容的交易的量指数增加。这种活动还导致对数据库和元数据储存库的交易呼叫的数量的相应增加,这些数据库和元数据库具有有限的容量来适应该需求。
这是本发明的实施例旨在解决的一般领域。
发明内容
这里描述能够支持用于同步分布式数据网格中的集群之间的数据的分区级别日志的系统和方法。系统可关联日志缓存与本地集群中的一个或多个用户缓存,其中所述一个或多个用户缓存被分成多个分区。并且,系统可捕获施加到所述一个或多个用户缓存的不同分区的一个或多个数据变化,并且能够在支持与远程集群的同步的日志缓存中存储所述一个或多个数据变化。
系统和方法可支持分布式数据网格中的自治集群之间的并行异步同步。系统可在分区级别上跟踪被施加于源集群中的一个或多个用户缓存上的一个或多个数据变化。并且,源集群中的一个或多个集群成员可向一个或多个目的地集群发送一个或多个复制消息,其中所述一个或多个复制消息包含该一个或多个数据变化。然后,该一个或多个目的地集群可以处理所接收的一个或多个数据变化。
系统和方法可支持分布式数据网格中的自治集群之间的同步期间的故障切换。当源集群中的另一集群成员变得不可用时,系统允许源集群中的集群成员作为源集群中的分区的所有者进行接管。然后,目的地集群中的集群成员可从源集群中的所述集群成员接收一个或多个复制消息,其中所述一个或多个复制消息包含一个或多个数据变化。并且,如果所述一个或多个复制消息已在目的地集群中被接收和成功处理,那么目的地集群中的集群成员可忽略所述一个或多个复制消息。
系统和方法可支持用于同步分布式数据网格中的集群之间的数据的可重置确认。系统可使用一个或多个唯一标识符(ID)来支持分布式数据网格中的不同集群之间的消息传递。第一集群可从第二集群接收第一复制消息,其中该复制消息指示该复制消息来自新的集群。然后,系统可重置第一集群以在处理在第一复制消息之后从第二集群接收的一个或多个复制消息时保留幂等性(idempotence)。
附图说明
图1是根据本发明的各种实施例的数据网格集群的示图。
图2表示根据本发明的实施例的捕获分布式数据网格中的数据变化的示图。
图3表示根据本发明的实施例的支持用于分布式数据网格中的同步的分区级别日志的示图。
图4表示根据本发明的实施例的支持分布式数据网格中的日志缓存的集群范围视图的示图。
图5表示根据本发明的实施例的执行用于支持分布式数据网格中的分区级别日志的单个交易的示图。
图6示出根据本发明的实施例的支持分布式数据网格中的同步的分区级别日志的示例性流程图。
图7表示根据本发明的实施例的支持分布式数据网格中的自治集群之间的并行异步同步的示图。
图8表示根据本发明的实施例的初始化分布式数据网格中的自治集群之间的异步同步的示图。
图9表示根据本发明的实施例的执行分布式数据网格中的自治集群之间的异步同步的示图。
图10表示根据本发明的实施例的进一步执行分布式数据网格中的自治集群之间的异步同步的示图。
图11示出根据本发明的实施例的用于支持分布式数据网格中的自治集群之间的并行异步同步的示例性流程图。
图12表示根据本发明的实施例的在分布式数据网格中的自治集群之间的同步期间源集群中的集群存储成员上的故障的示图。
图13表示根据本发明的实施例的在分布式数据网格中的自治集群之间的异步同步期间执行源集群中的故障切换的示图。
图14表示根据本发明的实施例的在源集群中的故障切换之后支持分布式数据网格中的自治集群之间的异步同步的示图。
图15示出根据本发明的实施例的支持用于分布式数据网格中的自治集群之间的并行异步同步的故障切换的示例性流程图。
图16表示根据本发明的实施例的支持跨分布式数据网格中的自治集群的可重置确认的示图。
图17示出根据本发明的实施例的支持跨分布式数据网格中的自治集群的可重置确认的示例性流程图。
图18表示根据本发明的实施例的使用有限状态机来用于控制分布式数据网格中的自治集群之间的同步的示图。
图19表示根据本发明的实施例的有限状态机中的各种状态的示图。
图20示出根据本发明的实施例的用于使用有限状态机来用于控制分布式数据网格中的自治集群之间的同步的示例性流程图。
具体实施方式
这里描述的是可支持分布式数据网格中的联合缓存的系统和方法。
分布式数据网格
根据实施例,这里被称为“数据网格集群”或“数据网格”的是包含在分布式或集群式的环境内一起工作以管理信息和诸如计算的有关动作的多个计算机服务器的系统。数据网格集群可被用于管理跨服务器共享的应用对象和数据。优选地,数据网格集群应具有低响应时间、高吞吐量、可预测的可扩展性、连续可用性和信息可靠性。作为这些能力的结果,数据网格集群很好地适用于计算密集、状态化的中间层应用中。数据网格集群的一些例子,例如OracleCoherence数据网格集群,可在存储器内存储信息以实现更高的性能,并且可在保持跨多个服务器同步的该信息的拷贝时采用冗余性,由此确保在服务器故障的情况下的系统的弹性和数据的可用性。例如,Coherence在可靠的、高度可扩展的对等(peer-to-peer)集群协议之上提供重复的和分布式(分区的)数据管理和缓存服务。
存储器内的数据网格可通过在一起工作的数个服务器上分布数据来提供数据存储和管理能力。数据网格可以是在同一层中作为应用服务器或者在应用服务器内运行的中间件。它可提供对数据的管理和处理,并且也可将处理推到数据在网格中所位于的地方。另外,当服务器变得不可操作或者从网络断开时,存储器内的数据网格可通过自动地和透明地进行故障切换和重新分布其集群的数据管理服务来消除单个故障点。当添加新的服务器时或者当重新开始故障的服务器时,它可自动地加入集群并且服务可被故障恢复切换到它,从而透明地重新分布集群负载。数据网格也可包含网络级别的错误容限特征和透明的软重启能力。
根据实施例,数据网格集群的功能基于使用不同的集群服务。集群服务可包含根集群服务、分区的缓存服务和代理服务。在数据网格集群内,各集群节点可参与数个集群服务,两者均关于提供和消耗集群服务。各集群服务具有唯一地识别数据网格集群内的服务的服务名称和服务类型,该服务类型限定集群服务可做什么。除了在数据网格集群中的各集群节点上运行的根集群服务之外,可存在各服务类型的多个命名实例。这些服务可由用户配置,或者作为缺省的一组服务由数据网格集群提供。
图1是根据本发明的各种实施例的数据网格集群的示图。如图1所示,数据网格集群100,例如OracleCoherence数据网格,包含具有在其上运行的各种集群服务111~116的多个集群成员(或服务器节点),诸如集群节点101~106。另外,缓存配置文件110可被用于配置数据网格集群100。
根据实施例,数据网格集群100可基于并行异步推复制技术来支持联合数据特征。联合数据特征使得能够同步数据网格集群(潜在地在不同的物理位置上)之间的数据,并且有益于支持灾难恢复、提供24×7的可用性以及减少对于区域用户的等待时间。
用于同步的分区级别日志
图2表示根据本发明的实施例的捕获分布式数据网格中的数据变化的示图。如图2所示,分布式数据网格200可支持一个或多个用户缓存201。另外,该一个或多个用户缓存201可被分成可遍及集群200均匀分布的多个分区,例如分区I~III211~213。
并且,可基于对缓存条目键执行散列来向分布式数据网格200中的分区分配用户数据。作为替代,可基于对与可经由用户实现的界面进行限定的缓存条目相关联的键执行散列来向分区分配用户数据。另外,可明确向分布式数据网格200中的分区分配用户数据。
根据本发明的实施例,分区的分布式集群200可按数据变化被做出的次序捕获对该一个或多个用户缓存201做出的数据变化。如图2所示,可以按从(K1,V1)到(K11,V11)的次序表示被施加于该一个或多个用户缓存201上的数据变化210。在这些数据变化中,(K1,V1)、(K4,V4)和(K5,V5)与分区I211有关,(K2,V2)、(K3,V3)、(K6,V6)、(K10,V10)和(K11,V11)与分区II212有关,(K7,V7)、(K7,V7)和(K8,V8)与分区III213有关。
图3表示根据本发明的实施例的支持用于分布式数据网格中的同步的分区级别日志的示图。如图3所示,分布式数据网格300支持可分成多个分区(例如,分区I-III311~313)的一个或多个用户缓存301。
分布式数据网格300可按数据变化被做出的次序捕获被施加到一个或多个用户缓存301的数据变化,例如(K1,V1)到(K11,V11)。另外,这些数据变化可被放在可用于与远程集群进行同步的日志缓存302中。
根据本发明的实施例,系统可对存储于日志缓存302中的各数据变化产生全局唯一标识符(ID)320。可包含多个部分(例如,使用整数)的全局唯一ID320可识别对其做出数据变化的源分区以及在源分区中做出这种数据变化的次序(也关于其它数据变化)。
例如,示例性全局唯一ID320可由格式(Pi,Rj)代表,这里Pi表示源分区,并且Rj表示源分区上的特定数据变化的次序。
如图3所示,与分区I311有关的数据变化(K1,V1)、(K4,V4)和(K5,V5)分别被分配全局唯一ID(P1,R1)、(P1,R2)和(P1,R3)。类似地,与分区II312有关的数据变化(K2,V2)、(K3,V3)、(K6,V6)、(K10,V10)和(K11,V11)分别被分配全局唯一ID(P2,R1)、(P2,R2)、(P2,R3)、(P2,R4)和(P2,R5)。另外,与分区III313有关的数据变化(K7,V7)、(K8,V8)和(K9,V9)分别被分配全局唯一ID(P3,R1)、(P3,R2)和(P3,R3)。
并且,全局唯一ID320中的每一个可被用作日志缓存302中的条目的键。因此,该多部分的键允许系统在没有集群300内的任何输入/输出(IO)和/或同步的情况下产生跨集群的唯一ID。
图4表示根据本发明的实施例的支持分布式数据网格中的日志缓存的集群范围视图的示图。如图4所示,分布式数据网格400可包含多个集群成员(例如,集群节点401~408)。
集群节点401~408中的每一个可以是一个或多个分区的所有者。例如,集群节点401是分区P1~P3的所有者,集群节点402是分区P4~P6的所有者,集群节点403是分区P7~P9的所有者,集群节点404是分区P10~P12的所有者,集群节点405是分区P13~P15的所有者,集群节点406是分区P16~P18的所有者,集群节点407是分区P19~P21的所有者,集群节点408是分区P22~P24的所有者。
根据本发明的实施例,例如通过利用包含用户缓存的分区,可基于分区的缓存实现日志缓存。并且,用户可以按与访问用户缓存类似的方式访问日志缓存。如图4所示,用户可从集群节点401~408中的任一个(即,经由用户缓存411~418和日志缓存421~428)访问用户缓存和日志缓存。
图5表示根据本发明的实施例的执行用于支持分布式数据网格中的分区级别日志的单个交易的示图。如图5所示,分布式数据网格500可包含用户缓存501和日志缓存502。
根据本发明的实施例,分布式数据网格500可捕获对用户缓存501做出的数据变化并且将这些数据变化放在可用于与远程集群的同步的日志缓存502中。
例如,用户缓存501可能已做出几个数据变化,诸如(K1,V1)、(K2,V2)、(K3,V3)和(K4,V4)。这些被捕获的数据变化可分别通过使用全局唯一ID(P1,R1)、(P2,R1)、(P2,R2)和(P1,R2)存储于日志缓存502中。这些全局唯一ID指示(K1,V1)是施加到分区P1上的第一数据变化、(K2,V2)是施加到分区P2上的第一数据变化、(K3,V3)是施加到分区P2上的第二数据变化且(K4,V4)是施加到分区P2上的第二数据变化。
另外,系统可利用保持不同分区的数据变化的总数的序列表503。如图5所示,序列表503指示分区P1和P2二者均做出了两个数据变化。
根据本发明的实施例,分布式数据网格500可使用序列表503来对分区中的任一个分区上的新捕获的数据变化迅速产生唯一ID。
如图5所示,用户可做出被施加到用户缓存501中的分区P1上的数据变化,例如“放入(K5,V5)”。系统可捕获该数据变化并且对最后的数据变化迅速产生唯一ID(P1,R3),因为该数据变化是施加于分区P1上的第三数据变化。
并且,在分布式数据网格500将该数据变化存储在日志缓存502之后,序列表503可被更新以指示分区P1已做出了三个数据变化。
图6示出根据本发明的实施例的支持用于分布式数据网格中的同步的分区级别日志的示例性流程图。如图6所示,在步骤601中,系统可关联日志缓存与本地集群中的一个或多个用户缓存,其中所述一个或多个用户缓存被分成多个分区。然后,在步骤602中,系统可捕获被施加到所述一个或多个用户缓存的不同分区的一个或多个数据。并且,在步骤603中,系统可将所述一个或多个数据变化存储在支持与一个或多个远程集群的同步的日志缓存中。
自治集群之间的并行异步同步
图7表示根据本发明的实施例的支持分布式数据网格中的自治集群之间的并行异步同步的示图。如图7所示,分布式数据网格700可同步自治集群之间(诸如从源集群701到目的地集群702)的数据变化。并且,系统可在分区级别上跟踪被施加到分区的源集群701中的各种用户缓存的数据变化。
根据本发明的实施例,源集群701中的不同集群成员可并行工作,以将不同分区上的数据变化同步到一个或多个目的地集群中的例如目的地集群702的集群成员。
在集群级别上,源集群701中的多个集群成员可将数据变化并行地同步到目的地集群702中的多个集群成员(即,多对多关系)。在分区级别上,数据变化的同步总是包含源和目的地(即,一对一关系)。
根据本发明的实施例,源集群701中的集群成员和目的地集群702中的集群成员可以是集群存储成员,这些集群存储成员可以是不同分区的所有者。作为替代,集群成员可以是与不同分区的所有者相关联的其它集群节点。
如图7所示,作为分区I731的所有者的集群存储成员711可用于处理分区I731的日志条目,并且向目的地集群702中的集群存储成员721发送信息。另外,作为分区II732的所有者的集群存储成员712可处理用于分区II732的日志条目,并且作为分区III733的所有者的集群存储成员713可处理用于分区III733的日志条目。集群存储成员712和集群存储成员713可向目的地集群702中的集群存储成员722发送同步信息。
根据本发明的实施例,从所包含的不同条目来看,同步处理是异步的。这些条目可包含产生在日志中被捕获的数据变化的客户端、向目的地集群702发送数据变化的源集群701和发送指示数据变化的接收和成功处理的确认的目的地集群702。
图8表示根据本发明的实施例的初始化分布式数据网格中的自治集群之间的异步同步的示图。如图8所示,拥有分布式数据网格800中的源集群801中的分区P1的集群存储成员803可处理日志记录805中的用于分区P1的日志条目,并且可向目的地集群802中的集群存储成员804发送一个或多个复制消息810。例如,复制消息810可包含对源集群801中的分区P1做出的数据变化(1~3)、(4~6)和(7~9)。
根据本发明的实施例,系统可使用唯一ID来用于在分布式数据网格800中的源集群801和目的地集群802之间传递复制消息810。例如,唯一ID可以是按照对源集群801中的特定分区(例如,分区P1)做出相应数据变化的次序单调递增的。因此,系统可保证同步操作是幂等的。
另外,目的地集群802可保持指示已对目的地集群802中的各分区接收和成功处理最后的数据变化的记录806。
如图8所示,具有用于分区“1”的条目“0”的记录806指示目的地集群804中的集群存储节点804还未对分区P1接收和成功处理任何数据变化。另外,记录806可保持更多的用于在其它分区上存储信息的条目。
图9表示根据本发明的实施例的执行分布式数据网格中的自治集群之间的异步同步的示图。如图9所示,拥有分布式数据网格900中的源集群901中的分区P1的集群存储成员903可处理日志记录905中的用于分区P1的日志条目,并且可向目的地集群902中的集群存储成员904发送一个或多个复制消息910。
在目的地集群902中的集群存储成员904已接收和成功处理数据变化(1~3)和(4~6)之后,集群存储成员904可将确认(ACK)920送回到源集群903。并且,系统可更新复制记录906以指示数据变化(6)是对源集群901中的分区P1已在目的地集群902中接收和成功处理的最后的数据变化。
另外,虽然目的地集群902正在处理数据变化(7~9),但集群存储成员903可向目的地集群902中的集群存储成员904发送附加的复制消息910。例如,复制消息910可包含数据变化(10~12)。
图10表示根据本发明的实施例的进一步执行分布式数据网格中的自治集群之间的异步同步的示图。如图10所示,拥有分布式数据网格1000中的源集群1001中的分区P1的集群存储成员1003可处理日志记录1005中的用于分区P1的日志条目,并且可向目的地集群1002中的集群存储成员1004发送一个或多个复制消息1010。
在源集群1001中的集群存储成员1003已接收指示目的地集群1002中的集群存储成员1004已接收和成功处理数据变化(1~3)和(4~6)的确认(ACK)1020之后,集群存储成员1003可在与这些数据变化相关联的资源上执行垃圾收集。
另一方面,在目的地集群1002中的集群存储成员1004已接收和成功处理数据变化(7~9)之后,集群存储成员1004可将确认(ACK)1020送回到源集群1001中的集群存储成员1003,并且可更新指示数据变化(9)是对源集群1001中的分区P1已在目的地集群1002中接收和成功处理的最后的数据变化。
同时,集群存储成员1004可继续处理数据变化(10~12),同时集群存储成员1003可向目的地集群1002中的集群存储成员1004发送附加的复制消息1010。例如,复制消息101可包含所捕获的数据变化(13~16)。
图11表示根据本发明的实施例的支持分布式数据网格中的自治集群之间的并行异步同步的示例性流程图。如图11所示,在步骤1101中,系统可在分区级别上跟踪被施加于源集群中的一个或多个用户缓存上的一个或多个数据变化。然后,在步骤1102中,源集群中的一个或多个集群成员可向一个或多个目的地集群发送一个或多个复制消息,其中所述一个或多个复制消息包含该一个或多个数据变化。并且,在步骤1103中,该一个或多个目的地集群可以处理所接收的一个或多个数据变化。
用于自治集群之间的异步同步的故障切换
图12表示根据本发明的实施例的在分布式数据网格中的自治集群之间的同步期间的源集群中的集群存储成员上的故障的示图。如图12所示,拥有源集群1201中的分区P1的集群存储成员1203可处理日志记录1205中的用于分区P1的日志条目,并且可向目的地集群1202中的集群存储成员1204发送一个或多个复制消息1210。
在目的地集群1202中的集群存储成员1204已接收和成功处理数据变化(10~12)之后,集群存储成员1204可将确认(ACK)1220送回到源集群1201中的集群存储成员1203。并且,集群存储成员1204可更新复制记录1206以指示数据变化(12)是对源集群1201中的分区P1的已在目的地集群1202中接收和成功处理的最后的数据变化。
如图12所示,源集群1201中的集群存储成员1203可经受故障,并且可能在接收确认(ACK)1220之前变得不可用。因此,源集群1201中的集群存储成员1203可能不知道目的地集群1202已接收和成功处理对源集群1201中的分区P1的数据变化(10~12)。
同时,目的地集群1202中的集群存储成员1204可继续处理所接收的数据变化(13~16),不需要处理源集群1201中的集群存储成员1203上的故障。
图13表示根据本发明的实施例的在分布式数据网格中的自治集群之间的异步同步期间执行源集群中的故障切换的示图。如图13所示,在集群存储成员1303发生故障之后,集群存储成员1305可作为分布式数据网格1300中的源集群1301中的分区P1的所有者进行接管。
拥有源集群1301中的分区P1的集群存储成员1305可处理日志记录1307中的用于分区P1的日志条目,并且可向目的地集群1302中的集群存储成员1304发送一个或多个复制消息1310。
由于集群存储成员1303的故障,源集群1301中的集群存储成员1305可能不知道目的地集群1302中的集群存储成员1304已接收和成功处理数据变化(7~12)和(17~20)。
如图13所示,源集群1301中的集群存储成员1305可向集群存储成员1304发送所有可用的消息。这些可用的复制消息可包含数据变化(7~16)和(17~20),用于这些数据变化的资源未在源集群1301中被垃圾收集。
另一方面,由于源集群1301中的集群存储成员1305知道目的地集群1302已接收和成功处理数据变化(1~6)并且用于数据变化(1~6)的资源已被垃圾收集,因此源集群1301中的集群存储成员1305将不向目的地集群1302发送包含数据变化(1~6)的旧的复制消息。
并且,在已成功处理数据变化(13~16)之后,集群存储成员1304可更新复制记录1306,以指示对源集群1301中的分区P1已接收和成功处理的最后的数据变化是数据变化(16)。另外,集群存储成员1304可选择不将确认(ACK)送回到源集群1303,因为集群存储成员1303是不可用的。
图14表示根据本发明的实施例的在源集群中的故障切换之后支持分布式数据网格中的自治集群之间的异步同步的示图。如图14所示,在分布式数据网格1400中的源集群1401中的集群存储成员1403发生故障之后,源集群1401中的集群存储成员1405可作为分区P1的所有者进行接管。集群存储成员1405可处理源集群1401中的日志记录1407中的用于分区P1的日志条目。
并且,目的地集群1402中的集群存储成员1404可从集群存储成员1405接收各种复制消息。例如,这些复制消息可包含数据变化(7~16)和(17~20)。
然后,集群存储成员1404可检查指示数据变化(16)是对源集群1401中的分区P1已接收和成功处理的最后的数据变化的复制记录1406。因此,集群存储成员1404可忽略数据变化(7~16)1410,因为集群存储成员1404已接收和成功处理这些数据变化。另外,集群存储成员1404可将确认(ACK)1420发送回到源集群1401中的集群存储成员1405,以指示目的地集群1402中的集群存储成员1404已接收和成功处理数据变化(7~16)。
并且,在目的地集群1402中的集群存储成员1404已接收和成功处理数据变化(17~20)之后,集群存储成员1404可将确认(ACK)1420发送回到源集群1401中的集群存储成员1405。并且,集群存储成员1404可更新复制记录1406,以指示数据变化(20)是对源集群1401中的分区P1已在目的地集群1402中接收和成功处理的最后的数据变化。
图15表示根据本发明的实施例的支持用于分布式数据网格中的自治集群之间的并行异步同步的故障切换的示例性流程图。如图15所示,在步骤1501中,当源集群中的另一集群成员变得不可用时,系统允许源集群中的集群成员(诸如集群存储成员)作为源集群中的分区的所有者进行接管。并且,在步骤1502中,目的地集群中的集群成员可从源集群中的所述集群成员接收一个或多个复制消息,其中所述一个或多个复制消息包含一个或多个数据变化。然后,在步骤1503中,如果所述一个或多个复制消息已在目的地集群中被接收和成功处理,那么目的地集群中的集群成员可忽略所述一个或多个复制消息。
跨自治集群的可重置确认
根据本发明的实施例,为了保证同步操作是幂等的,可使用唯一ID用于分布式数据网格中的集群之间的消息传递。例如,用于消息传递的唯一ID可以仅是单调递增的。
图16表示根据本发明的实施例的支持跨分布式数据网格中的自治集群的可重置确认的示图。如图16所示,在向目的地集群1602发送一个或多个数据变化之后,分布式数据网格1600中的源集群1601可被关闭。
例如,由目的地集群1602中的集群存储成员1604保持的复制记录1620可指示数据变化(20)是已被接收和成功处理的对分区P1的最后的数据变化。
如图3所示,新的源集群1603可加入和接管。作为替代,源集群1601可作为新的源集群1603重启和重新加入。在任何一种情况下,新的源集群1603中的集群存储成员1605可向目的地集群1602发送一个或多个复制消息1610,这指示源集群1603是新的集群。例如,复制消息1610中的第一消息可嵌入重置标记1611。
并且,在目的地集群1602从新的源集群1603接收复制消息1610(这指示它是新的集群)之后,目的地集群1602可刷新复制记录1620。如图16所示,为了指示对分区1不存在先前的数据变化,目的地集群1602可将(被高亮显示的)条目从(20)重置到(0)。
因此,系统可在集群重启期间使用可重置的确认以保留幂等性消息处理并且保留ID产生的瞬时本质。
另外,在一些实体可在短时间段内被重启而其它的实体会长时间运行的分布式系统中,可重置的确认可有益于避免ID的永久持续。
图17示出根据本发明的实施例的支持跨分布式数据网格中的自治集群的可重置确认的示例性流程图。如图17所示,在步骤1701中,系统可使用一个或多个唯一标识符(ID)以支持分布式数据网格中的不同集群之间的消息传递。然后,在步骤1702中,第一集群可从第二集群接收第一复制消息,其中第一复制消息指示第二集群是新的集群。并且,在步骤1703中,系统可重置第一集群以在处理在第一复制消息之后从第二集群接收的一个或多个复制消息时保留幂等性。
使用有限状态机的并行异步同步
根据本发明的实施例,系统可使用(非阻塞)有限状态机用于控制同步处理。有限状态机是在任意时间点上只能处于有限的一组特定离散状况(或状态)中的软件机器组件。例如,盒式播放器可被表示为具有诸如停止、播放、快进、后退和暂停状态的多个状态的有限状态机。
并且,系统可使用模型来表示有限状态机的定义。例如,该模型可包含一组已知的状态、一组可允许的转换和一组动作。
转换是从有限状态机中的一种状态变为另一状态的过程。有限状态机的转换可以被预先定义。例如,在有限状态机中可仅允许明确限定的转换。
动作表示待由有限状态机执行的算法和处理。动作可在诸如转换期间、进入状态(即,从前一状态转换)时、离开状态(即,转换到新状态)时的不同阶段处被执行。另外,在进入状态时执行的动作可导致发生进一步的转换。
有限状态机可以是当由系统向其提供各事件时执行转换的阻塞有限状态机或对向其提供事件的系统独立且同时执行转换的非阻塞有限状态机。
非阻塞有限状态机可内部处理事件,这些事件为了后来的评价和可能的执行进行排队。并且,非阻塞有限状态机可支持不同类型的事件,诸如转换到事件、延迟的转换事件、合并的事件和随后的事件。
转换到事件是请求转换到特定状态的简单事件。与其它的转换类似,只有状态机处于满足该请求的位置中时才可发生该转换。
延迟的转换到事件与转换到事件类似。另外,延迟的转换到事件允许可配置的延迟的执行。例如,延迟的转换到事件可限定在一些时间点上向已知状态的转换。
合并的事件是包围另一事件的封装器。例如,如果已在队列中存在同一事件,那么新的事件可与现有的事件合并。另外,合并的事件可采取不同的参数,诸如FIRST和MOST_RECENT。FIRST指示第一个被提交的事件被处理,并且,MOST_RECENT指示最后被提交的事件被处理。
如果在另一事件之前没有其它的事件被提交,则随后的事件封装将被执行的该另一事件。这些事件在定时的延迟上被提交给有限状态机,并且允许其它的事件抢先于该事件。
图18表示根据本发明的实施例的使用有限状态机用于控制分布式数据网格中的自治集群之间的同步的示图。如图18所示,分布式数据网格1800中的源集群1801可使用日志缓存1810用于存储各种用户数据变化,这些用户数据变化中的每一个可被分配唯一标识符(ID)。
根据本发明的实施例,分布式数据网格1800支持本地源集群1801与例如远程(目的地)集群A~B1802~1803的一个或多个目的地集群之间的用户数据变化的并行异步同步。
如图18所示,线程1804可从日志缓存1810读取用户数据变化,并且可负责将源集群1801中的被捕获的用户数据变化写入(或同步)到目的地集群A1802。
另外,线程1805可从日志缓存1810中读取用户数据变化,并且可负责将源集群1801中的被捕获的用户数据变化写入(或同步)到目的地集群B1803。
并且,垃圾收集(GC)线程1806可负责删除已被写入或同步到不同的目的地集群A~B1802~1803的用户数据变化。
如图18所示,线程1804可与有限状态机1814相关联,并且线程1805可与有限状态机1815相关联。有限状态机1814~1815中的每一个可以是控制同步处理的非阻塞有限状态机。
图19表示根据本发明的实施例的有限状态机中的各种状态的示图。如图19所示,有限状态机1900可包含多个状态,诸如初始状态1901、连接状态1902、空闲状态1903、停止状态1904、发送状态1905和错误状态1906。
如图19所示,有限状态机1900允许从初始状态1901转换到连接状态1902、从连接状态1902转换到空闲状态1903、从空闲状态转换到停止状态1904以及从停止状态1904转换回到连接状态1902。并且,有限状态机1900允许连接状态1902与错误状态1906之间的转换以及空闲状态1903与发送状态1905之间的转换。
此外,系统可以在有限状态机1900从停止状态1904或错误状态1906转换到连接状态1902之前执行状态登入动作1910。
图20示出根据本发明的实施例的使用有限状态机用于控制分布式数据网格中的自治集群之间的同步的示例性流程图。如图20所示,在步骤2001中,系统可捕获本地集群中的一个或多个用户缓存中的一个或多个数据变化,其中所捕获的数据变化被存储于本地集群中的日志缓存中。并且,在步骤2002中,系统可关联有限状态机与本地集群中的线程。然后,在步骤2003中,系统使用有限状态机以控制线程,其中线程动作操作以从日志缓存读取所述一个或多个数据变化并且将所述一个或多个数据变化写入到远程集群中。
根据实施例,存在一种用于支持同步分布式数据网格中的集群之间的数据的方法,该方法包括:在分区级别上跟踪施加于源集群中的一个或多个用户缓存上的一个或多个数据变化;经由源集群中的集群成员向一个或多个目的地集群发送一个或多个复制消息,其中所述一个或多个复制消息包含该一个或多个数据变化;以及经由该一个或多个目的地集群处理所接收的一个或多个数据变化。
根据实施例,存在一种方法,该方法还包括允许集群成员成为源集群中的该一个或多个用户缓存的分区的所有者。
根据实施例,存在一种方法,该方法还包括经由所述集群成员处理日志缓存中用于所述分区的一个或多个日志条目。
根据实施例,存在一种方法,该方法还包括允许源集群中的所述集群成员与源集群中的其它集群成员并行地工作,以支持与一个或多个目的地集群的同步。
根据实施例,存在一种方法,该方法还包括关联唯一标识符(ID)与从源集群发送到所述一个或多个目的地集群的各所述复制消息。
根据实施例,存在一种方法,该方法还包括从目的地集群接收确认,该确认指示目的地集群中的集群成员已接收和成功处理该一个或多个数据变化。
根据实施例,存在一种方法,该方法还包括在接收确认之后垃圾收集与该一个或多个数据变化相关联的资源。
根据实施例,存在一种方法,该方法还包括关联有限状态机与写入到目的地集群的源集群中的各线程。
根据实施例,存在一种方法,该方法还包括经由各所述目的地集群保持包含一个或多个条目的复制记录,其中各条目指示对所述目的地集群中的分区已接收和成功处理的最后的数据变化。
根据实施例,存在一种方法,该方法还包括基于被保持于目的地集群中的复制记录支持源集群中的故障切换。
根据实施例,存在一种用于支持分布式数据网格中的异步消息处理的系统,该系统包括:一个或多个微处理器;在该一个或多个微处理器上运行的具有多个服务器节点的分布式数据网格,其中该分布式数据网格操作以执行包括以下步骤的步骤:在分区级别上跟踪被施加于源集群中的一个或多个用户缓存上的一个或多个数据变化;经由源集群中的集群成员向一个或多个目的地集群发送一个或多个复制消息,其中所述一个或多个复制消息包含该一个或多个数据变化;以及经由该一个或多个目的地集群处理所接收的一个或多个数据变化。
根据实施例,存在一种系统,其中,所述集群成员是源集群中的该一个或多个用户缓存的分区的所有者。
根据实施例,存在一种系统,其中,所述集群成员操作以处理日志缓存中用于所述分区的一个或多个日志条目。
根据实施例,存在一种系统,源集群中的所述集群成员与源集群中的其它集群成员并行地工作,以支持与一个或多个目的地集群的同步。
根据实施例,存在一种系统,其中,从源集群发送到所述一个或多个目的地集群的各所述复制消息与唯一标识符(ID)相关联。
根据实施例,存在一种系统,其中,源集群中的所述一个或多个集群成员从目的地集群接收确认,该确认指示目的地集群中的集群成员已接收和成功处理该一个或多个数据变化。
根据实施例,存在一种系统,其中,源集群中的所述一个或多个集群成员在接收该确认之后垃圾收集与该一个或多个数据变化相关联的资源。
根据实施例,存在一种系统,其中,写入到目的地集群的源集群中的各线程与有限状态机相关联。
根据实施例,存在一种系统,其中,各所述目的地集群操作以保持包含一个或多个条目的复制记录,其中,各条目指示对所述目的地集群中的分区已接收和成功处理的最后的数据变化,以及基于被保持于目的地集群中的复制记录支持源集群中的故障切换。
根据实施例,存在一种其上存储了指令的非暂态机器可读存储介质,这些指令当被执行时导致系统执行包括以下步骤的步骤:在分区级别上跟踪被施加于源集群中的一个或多个用户缓存上的一个或多个数据变化;经由源集群中的集群成员向一个或多个目的地集群发送一个或多个复制消息,其中所述一个或多个复制消息包含该一个或多个数据变化;以及经由该一个或多个目的地集群处理所接收的一个或多个数据变化。
根据实施例,存在用于支持分布式数据网格中的联合数据的方法,该方法包括:当源集群中的另一集群成员变得不可用时,允许源集群中的集群成员作为源集群中的分区的所有者进行接管;经由目的地集群中的集群成员从源集群中的所述集群成员接收一个或多个复制消息,其中所述一个或多个复制消息包含一个或多个数据变化;以及如果所述一个或多个复制消息已在目的地集群中被接收和成功处理,则经由目的地集群中的集群成员忽略所述一个或多个复制消息。
根据实施例,存在一种方法,其中,在丢失所述另一集群成员之前,允许源集群中的所述另一集群成员成为分区的所有者。
根据实施例,存在一种方法,其中,经由所述集群成员处理日志缓存中用于所述分区的一个或多个日志条目。
根据实施例,存在一种方法,其中,关联唯一标识符(ID)与从源集群发送到目的地集群的各所述复制消息。
根据实施例,存在一种方法,其中,经由源集群中的所述集群成员向目的地集群中的集群成员发送可用的复制消息。
根据实施例,存在一种方法,其中,允许所述可用复制消息包含一个或多个数据变化,用于这些数据变化的资源未在源集群中被垃圾收集。
根据实施例,存在一种方法,其中,经由目的地集群保持包含一个或多个条目的复制记录,其中,各条目指示对目的地集群中的分区已接收和成功处理的最后的数据变化。
根据实施例,存在一种方法,其中,基于复制记录确定是否已在目的地集群中接收和成功处理一个或多个复制消息。
根据实施例,存在一种方法,其中,经由目的地集群中的集群成员向源集群中的集群成员发送确认,该确认指示目的地集群中的集群成员已接收和成功处理该一个或多个数据变化。
根据实施例,存在一种方法,其中,允许源集群中的所述集群成员与源集群中的其它集群成员并行地工作,以支持与一个或多个目的地集群的同步。
根据实施例,存在一种用于支持分布式数据网格中的异步消息处理的系统,该系统包括:一个或多个微处理器;在该一个或多个微处理器上运行的具有多个服务器节点的分布式数据网格,其中分布式数据网格操作以执行包括以下步骤的步骤:当源集群中的另一集群成员变得不可用时,允许源集群中的集群成员作为源集群中的分区的所有者进行接管;经由目的地集群中的集群成员从源集群中的所述集群成员接收一个或多个复制消息,其中所述一个或多个复制消息包含一个或多个数据变化;以及如果所述一个或多个复制消息已在目的地集群中被接收和成功处理,则经由目的地集群中的集群成员忽略所述一个或多个复制消息。
根据实施例,存在一种系统,其中,在丢失所述另一集群成员之前,源集群中的所述另一集群成员是分区的所有者。
根据实施例,存在一种方法,其中,源集群中的所述集群成员操作以处理日志缓存中的用于所述分区的一个或多个日志条目。
根据实施例,存在一种系统,其中,从源集群发送到所述一个或多个目的地集群的各所述复制消息与唯一标识符(ID)相关联。
根据实施例,存在一种系统,其中,源集群中的所述集群成员操作以向目的地集群中的集群成员发送可用的复制消息。
根据实施例,存在一种系统,其中,所述可用复制消息包含一个或多个数据变化,用于这些数据变化的资源未在源集群中被垃圾收集。
根据实施例,存在一种系统,其中,目的地集群操作以保持包含一个或多个条目的复制记录,其中,各条目指示对目的地集群中的分区已接收和成功处理的最后的数据变化。
根据实施例,存在一种系统,其中,目的地集群操作以基于复制记录确定是否已在目的地集群中接收和成功处理一个或多个复制消息。
根据实施例,存在一种系统,其中,目的地集群中的集群成员操作以向源集群中的集群成员发送确认,该确认指示目的地集群中的集群成员已接收和成功处理该一个或多个数据变化。
根据实施例,存在一种其上存储了指令的非暂态机器可读存储介质,这些指令当被执行时导致系统执行包括以下步骤的步骤:当源集群中的另一集群成员变得不可用时,允许源集群中的集群成员作为源集群中的分区的所有者进行接管;经由目的地集群中的集群成员从源集群中的所述集群成员接收一个或多个复制消息,其中,所述一个或多个复制消息包含一个或多个数据变化;以及如果所述一个或多个复制消息已在目的地集群中被接收和成功处理,则经由目的地集群中的集群成员忽略所述一个或多个复制消息。
根据实施例,存在一种用于支持同步分布式数据网格中的集群之间的数据的方法,该方法包括:使用一个或多个唯一标识符(ID)以支持分布式数据网格中的不同集群之间的消息传递;经由第一集群从第二集群接收第一复制消息,其中,第一复制消息指示第二集群是新的集群;以及重置第一集群以在处理在第一复制消息之后从第二集群接收的一个或多个复制消息时保留幂等性。
根据实施例,存在一种方法,该方法还包括允许第二集群与日志缓存相关,其中,该日志缓存存储按照在数据变化被做出时的次序被保持的一个或多个数据变化。
根据实施例,存在一种方法,该方法还包括在各复制消息中包含所述数据变化。
根据实施例,存在一种方法,该方法还包括允许该一个或多个唯一ID仅单调递增。
根据实施例,存在一种方法,该方法还包括允许第一复制消息包含重置标记。
根据实施例,存在一种方法,该方法还包括允许第二集群在被关闭之前向第一集群发送一个或多个数据变化。
根据实施例,存在一种方法,该方法还包括以下二者之一:第二集群中重启和允许新集群加入和接管该第二集群。
根据实施例,存在一种方法,该方法还包括在第一集群处保持记录,其中,记录指示从第二集群接收的最后的消息的唯一ID。
根据实施例,存在一种方法,还包括在接收第一复制消息之后刷新被保持在第一集群处的记录。
根据实施例,存在一种方法,该方法还包括处理第一复制消息和在第一复制消息之后的所述一个或多个复制消息。
根据实施例,存在一种用于支持分布式数据网格中的异步消息处理的系统,该系统包括:一个或多个微处理器;在该一个或多个微处理器上运行的具有多个服务器节点的分布式数据网格,其中,分布式数据网格操作以执行包括以下步骤的步骤:使用一个或多个唯一标识符(ID)以支持分布式数据网格中的不同集群之间的消息传递;经由第一集群从第二集群接收第一复制消息,其中,第一复制消息指示第二集群是新的集群;以及重置第一集群以在处理在第一复制消息之后从第二集群接收的一个或多个复制消息时保留幂等性。
根据实施例,存在一种系统,其中,第二集群中的日志缓存存储按照数据变化被做出的次序被保持的一个或多个数据变化。
根据实施例,存在一种系统,其中,各复制消息包含所述数据变化。
根据实施例,存在一种系统,其中,该一个或多个唯一ID仅单调递增。
根据实施例,存在一种系统,其中,第一复制消息包含重置标记。
根据实施例,存在一种系统,其中,第二集群操作以在被关闭之前向第一集群发送一个或多个数据变化。
根据实施例,存在一种系统,其中,分布式数据网格允许以下二者之一:第二集群中重启和新集群加入和接管第二集群。
根据实施例,存在一种系统,其中,第一集群操作以保持记录,其中,该记录指示从第二集群接收的最后的消息的唯一ID。
根据实施例,存在一种系统,其中,第一集群操作以在接收第一复制消息之后刷新该记录以及处理第一复制消息和在第一复制消息之后的所述一个或多个复制消息。
根据实施例,存在一种其上存储了指令的非暂态机器可读存储介质,这些指令当被执行时导致系统执行包括以下步骤的步骤:使用一个或多个唯一标识符(ID)以支持分布式数据网格中的不同集群之间的消息传递;经由第一集群从第二集群接收第一复制消息,其中,第一复制消息指示第二集群是新的集群;以及重置第一集群以在处理在第一复制消息之后从第二集群接收的一个或多个复制消息时保留幂等性。
可通过使用一个或多个常规的通用或专用数字计算机、计算装置、机器或微处理器,包含根据本公开内容的教导编程的一个或多个处理器、存储器和/或计算机可读存储介质,来方便地实现本发明。将对软件领域的技术人员而言明显的是,基于本公开内容的教导,熟练的编程人员可很容易地准备适当的软件编码。
在一些实施例中,本发明包括计算机程序产品,该计算机程序产品是具有存储于其上面/其中的指令的存储介质或计算机可读介质(多个介质),这些指令可被用于将计算机编程以执行本发明的处理中的任一个。存储介质可包括但不限于包含软盘、光盘、DVD、CD-ROM、微驱动和磁光盘的任意类型的盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存存储器装置、磁卡或光卡、纳米系统(包含分子存储器IC)或适于存储指令和/或数据的任意类型的介质或装置。
为了解释和描述,提供了本发明的以上的描述。它不是旨在穷举,或者也不是要将本发明限于公开的确切形式。对本领域技术人员来说,许多修改和变化是明显的。这些修改和变化包括所公开的特征的任何相关组合。为了最佳地解释本发明的原理及其实际应用,选择和描述了实施例,由此使得本领域技术人员能够理解本发明的各种实施例和适于所构想的特定用途的各种修改。本发明的范围要由以下的权利要求和它们的等同进行限定。
Claims (22)
1.一种用于支持分布式数据网格中的集群之间的数据同步的方法,包括:
关联日志缓存与本地集群中的一个或多个用户缓存,其中,所述一个或多个用户缓存被分成多个分区;
捕获被施加到所述一个或多个用户缓存的不同分区的一个或多个数据变化;以及
在支持与一个或多个远程集群的同步的日志缓存中存储所述一个或多个数据变化。
2.根据权利要求1所述的方法,还包括:
基于以下中的至少一个向所述多个分区中的分区分配用户数据:
对缓存条目键的散列;
对与缓存条目相关联的键的散列;以及
显式分配。
3.根据权利要求1或2所述的方法,还包括:
按照数据变化被做出的次序保持存储于日志缓存中的所述一个或多个数据变化。
4.根据任一前述权利要求所述的方法,其中,日志缓存基于分区的缓存,并且其中,日志缓存被分成多个分区。
5.根据权利要求4所述的方法,其中,日志缓存的各分区具有一个或多个备份拷贝。
6.根据任一前述权利要求所述的方法,还包括:
为各被捕获的数据变化产生全局唯一标识符(ID)。
7.根据权利要求6所述的方法,其中,所述全局唯一ID包含多个部分。
8.根据权利要求7所述的方法,其中,所述全局唯一ID的一个部分是指示对其做出所述一个或多个数据变化的源分区的整数,并且,所述全局唯一ID的另一部分是指示按照其对所述源分区做出所述一个或多个数据变化的次序的长整数。
9.根据任一前述权利要求所述的方法,还包括:
提供保持一个或多个条目的序列表,其中,各条目指示已对所述多个分区中的分区做出的数据变化的总数。
10.根据权利要求9所述的方法,还包括:
基于序列表为对所述分区做出的新的数据变化产生全局唯一ID。
11.一种包括机器可读形式的程序指令的计算机程序,该计算机程序当被计算机系统执行时导致所述计算机系统执行任一前述权利要求所述的方法。
12.一种其上存储了如权利要求11所述的计算机程序的非暂态机器可读存储介质。
13.一种用于支持分布式数据网格中的集群之间的数据同步的系统,包括:
一个或多个微处理器;
在所述一个或多个微处理器上运行的具有多个服务器节点的分布式数据网格,其中,所述分布式数据网格操作以执行包括以下步骤的步骤:
关联日志缓存与本地集群中的一个或多个用户缓存,其中,所述一个或多个用户缓存被分成多个分区;
捕获被施加到所述一个或多个用户缓存的不同分区的一个或多个数据变化;以及
在支持与一个或多个远程集群的同步的日志缓存中存储所述一个或多个数据变化。
14.根据权利要求13所述的系统,其中,
分布式数据网格基于以下中的至少一个向所述多个分区中的分区分配用户数据:
对缓存条目键的散列;
对与缓存条目相关联的键的散列;以及
显式分配。
15.根据权利要求13或14所述的系统,其中,
按照数据变化被做出的次序保持存储于日志缓存中的所述一个或多个数据变化。
16.根据权利要求13~15中的任一所述的系统,其中,
日志缓存基于分区的缓存,并且其中,日志缓存被分成多个分区。
17.根据权利要求16所述的系统,其中,
日志缓存的各分区具有一个或多个备份拷贝。
18.根据权利要求13~17中的任一所述的系统,其中,
分布式数据网格操作以为各被捕获的数据变化产生全局唯一标识符(ID)。
19.根据权利要求18所述的系统,其中,
所述全局唯一ID包含多个部分。
20.根据权利要求19所述的系统,其中,
所述全局唯一ID的一个部分是指示对其做出所述一个或多个数据变化的源分区的整数,并且,所述全局唯一ID的另一部分是指示按照其对所述源分区做出所述一个或多个数据变化的次序的长整数。
21.根据权利要求13~20中的任一所述的系统,其中,
分布式数据网格操作以完成以下步骤:
提供保持一个或多个条目的序列表,其中,各条目指示已对所述多个分区中的分区做出的数据变化的总数;以及
基于所述序列表为对所述分区做出的新的数据变化产生全局唯一ID。
22.一种其上存储了指令的非暂态机器可读存储介质,这些指令当被执行时导致系统执行包括以下步骤的步骤:
关联日志缓存与本地集群中的一个或多个用户缓存,其中,所述一个或多个用户缓存被分成多个分区;
捕获被施加到所述一个或多个用户缓存的不同分区的一个或多个数据变化;以及
在支持与一个或多个远程集群的同步的日志缓存中存储所述一个或多个数据变化。
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361871708P | 2013-08-29 | 2013-08-29 | |
US61/871,708 | 2013-08-29 | ||
US14/467,308 US9703853B2 (en) | 2013-08-29 | 2014-08-25 | System and method for supporting partition level journaling for synchronizing data in a distributed data grid |
US14/467,311 | 2014-08-25 | ||
US14/467,315 US10423643B2 (en) | 2013-08-29 | 2014-08-25 | System and method for supporting resettable acknowledgements for synchronizing data in a distributed data grid |
US14/467,311 US9659078B2 (en) | 2013-08-29 | 2014-08-25 | System and method for supporting failover during synchronization between clusters in a distributed data grid |
US14/467,310 | 2014-08-25 | ||
US14/467,308 | 2014-08-25 | ||
US14/467,315 | 2014-08-25 | ||
US14/467,310 US9652520B2 (en) | 2013-08-29 | 2014-08-25 | System and method for supporting parallel asynchronous synchronization between clusters in a distributed data grid |
PCT/US2014/052733 WO2015031378A1 (en) | 2013-08-29 | 2014-08-26 | System and method for supporting partition level journaling for synchronizing data in a distributed data grid |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105493474A true CN105493474A (zh) | 2016-04-13 |
CN105493474B CN105493474B (zh) | 2020-11-20 |
Family
ID=52584665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480047217.6A Active CN105493474B (zh) | 2013-08-29 | 2014-08-26 | 用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法 |
Country Status (5)
Country | Link |
---|---|
US (4) | US9652520B2 (zh) |
EP (1) | EP3039844B1 (zh) |
JP (1) | JP6225262B2 (zh) |
CN (1) | CN105493474B (zh) |
WO (1) | WO2015031378A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106778305A (zh) * | 2016-12-15 | 2017-05-31 | 深圳市中科鼎创科技股份有限公司 | 一种对单机数据进行持续数据保护的装置及方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10021186B2 (en) * | 2014-12-19 | 2018-07-10 | Microsoft Technology Licensing, Llc | Guaranteed delivery of replication message |
US9864791B2 (en) | 2014-12-19 | 2018-01-09 | Microsoft Technology Licensing, Llc | Flow for multi-master replication in distributed storage |
US10021181B2 (en) * | 2014-12-22 | 2018-07-10 | Dropbox, Inc. | System and method for discovering a LAN synchronization candidate for a synchronized content management system |
CN106557364A (zh) * | 2015-09-24 | 2017-04-05 | 阿里巴巴集团控股有限公司 | 一种数据同步方法和系统 |
US10915455B2 (en) * | 2018-12-04 | 2021-02-09 | Netflix, Inc. | Cache warming: agility for a stateful service |
US11086840B2 (en) | 2018-12-07 | 2021-08-10 | Snowflake Inc. | Transactional streaming of change tracking data |
US11520640B2 (en) * | 2020-01-30 | 2022-12-06 | Alibaba Group Holding Limited | Efficient and more advanced implementation of ring-AllReduce algorithm for distributed parallel deep learning |
CN112134887B (zh) * | 2020-09-23 | 2022-08-09 | 哈尔滨海能达科技有限公司 | 一种分布式集群中节点的数据同步方法及装置 |
CN112307121B (zh) * | 2020-10-30 | 2023-10-31 | 中国平安人寿保险股份有限公司 | 基于Oracle的数据同步方法、装置及计算机设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000181634A (ja) * | 1998-12-18 | 2000-06-30 | Nec Corp | ミラーリング装置 |
EP1591900A2 (en) * | 2004-04-28 | 2005-11-02 | Hitachi Ltd. | Data processing system |
US20090182970A1 (en) * | 2008-01-16 | 2009-07-16 | Battista Robert J | Data Transmission for Partition Migration |
US20120166723A1 (en) * | 2010-12-27 | 2012-06-28 | Hitachi, Ltd. | Storage system and management method of control information therein |
CN102652423A (zh) * | 2009-12-11 | 2012-08-29 | 国际商业机器公司 | 用于集群选择和协作复制的集群族 |
US8341115B1 (en) * | 2009-12-26 | 2012-12-25 | Emc Corporation | Dynamically switching between synchronous and asynchronous replication |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08314779A (ja) * | 1995-05-16 | 1996-11-29 | Hitachi Ltd | サーバーシステム |
JP2002251313A (ja) | 2001-02-23 | 2002-09-06 | Fujitsu Ltd | キャッシュサーバ及び分散キャッシュサーバシステム |
US6952766B2 (en) | 2001-03-15 | 2005-10-04 | International Business Machines Corporation | Automated node restart in clustered computer system |
US7137040B2 (en) | 2003-02-12 | 2006-11-14 | International Business Machines Corporation | Scalable method of continuous monitoring the remotely accessible resources against the node failures for very large clusters |
US20050022213A1 (en) * | 2003-07-25 | 2005-01-27 | Hitachi, Ltd. | Method and apparatus for synchronizing applications for data recovery using storage based journaling |
US8234517B2 (en) | 2003-08-01 | 2012-07-31 | Oracle International Corporation | Parallel recovery by non-failed nodes |
US7478263B1 (en) | 2004-06-01 | 2009-01-13 | Network Appliance, Inc. | System and method for establishing bi-directional failover in a two node cluster |
US20070174290A1 (en) | 2006-01-19 | 2007-07-26 | International Business Machines Corporation | System and architecture for enterprise-scale, parallel data mining |
US20080270704A1 (en) | 2007-04-30 | 2008-10-30 | He Dingshan | Cache arrangement for improving raid i/o operations |
JP2009104488A (ja) * | 2007-10-24 | 2009-05-14 | Hitachi Ltd | ストレージ装置及びその制御方法並びにストレージシステム |
US20100179874A1 (en) | 2009-01-13 | 2010-07-15 | Yahoo! Inc. | Media object metadata engine configured to determine relationships between persons and brands |
US20110040617A1 (en) | 2009-08-11 | 2011-02-17 | Google Inc. | Management of publisher yield |
US20110196825A1 (en) * | 2009-09-29 | 2011-08-11 | Hitachi, Ltd. | Storage system and data duplication method in the same |
US8386431B2 (en) | 2010-06-14 | 2013-02-26 | Sap Ag | Method and system for determining database object associated with tenant-independent or tenant-specific data, configured to store data partition, current version of the respective convertor |
US8751863B2 (en) * | 2011-05-23 | 2014-06-10 | Microsoft Corporation | Implementing failover processes between storage stamps |
US9116862B1 (en) * | 2012-01-17 | 2015-08-25 | Amazon Technologies, Inc. | System and method for data replication using a single master failover protocol |
JP6090681B2 (ja) | 2012-04-13 | 2017-03-08 | ゴールドマン,サックス アンド カンパニー | スケーラブルな構造化データ配布のためのシステム及び方法 |
WO2013171868A1 (ja) | 2012-05-16 | 2013-11-21 | 富士通株式会社 | ノード装置および通信方法 |
US9229829B2 (en) | 2012-07-25 | 2016-01-05 | GlobalFoundries, Inc. | Synchronous mode replication to multiple clusters |
US9497234B2 (en) | 2012-12-27 | 2016-11-15 | Facebook, Inc. | Implicit social graph connections |
-
2014
- 2014-08-25 US US14/467,310 patent/US9652520B2/en active Active
- 2014-08-25 US US14/467,308 patent/US9703853B2/en active Active
- 2014-08-25 US US14/467,311 patent/US9659078B2/en active Active
- 2014-08-25 US US14/467,315 patent/US10423643B2/en active Active
- 2014-08-26 EP EP14766277.9A patent/EP3039844B1/en active Active
- 2014-08-26 JP JP2016537774A patent/JP6225262B2/ja active Active
- 2014-08-26 WO PCT/US2014/052733 patent/WO2015031378A1/en active Application Filing
- 2014-08-26 CN CN201480047217.6A patent/CN105493474B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000181634A (ja) * | 1998-12-18 | 2000-06-30 | Nec Corp | ミラーリング装置 |
EP1591900A2 (en) * | 2004-04-28 | 2005-11-02 | Hitachi Ltd. | Data processing system |
US20090182970A1 (en) * | 2008-01-16 | 2009-07-16 | Battista Robert J | Data Transmission for Partition Migration |
CN102652423A (zh) * | 2009-12-11 | 2012-08-29 | 国际商业机器公司 | 用于集群选择和协作复制的集群族 |
US8341115B1 (en) * | 2009-12-26 | 2012-12-25 | Emc Corporation | Dynamically switching between synchronous and asynchronous replication |
US20120166723A1 (en) * | 2010-12-27 | 2012-06-28 | Hitachi, Ltd. | Storage system and management method of control information therein |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106778305A (zh) * | 2016-12-15 | 2017-05-31 | 深圳市中科鼎创科技股份有限公司 | 一种对单机数据进行持续数据保护的装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
US10423643B2 (en) | 2019-09-24 |
US20150066849A1 (en) | 2015-03-05 |
US9659078B2 (en) | 2017-05-23 |
US9703853B2 (en) | 2017-07-11 |
JP6225262B2 (ja) | 2017-11-01 |
EP3039844B1 (en) | 2019-05-08 |
US20150066850A1 (en) | 2015-03-05 |
EP3039844A1 (en) | 2016-07-06 |
US20150066848A1 (en) | 2015-03-05 |
CN105493474B (zh) | 2020-11-20 |
JP2016529629A (ja) | 2016-09-23 |
WO2015031378A1 (en) | 2015-03-05 |
US9652520B2 (en) | 2017-05-16 |
US20150066843A1 (en) | 2015-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853263B2 (en) | Geographically-distributed file system using coordinated namespace replication over a wide area network | |
CN105493474A (zh) | 用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法 | |
US10817478B2 (en) | System and method for supporting persistent store versioning and integrity in a distributed data grid | |
US8930316B2 (en) | System and method for providing partition persistent state consistency in a distributed data grid | |
JP5714571B2 (ja) | キャッシュクラスタを構成可能モードで用いるキャッシュデータ処理 | |
US8886796B2 (en) | Load balancing when replicating account data | |
WO2016070375A1 (zh) | 一种分布式存储复制系统和方法 | |
JP2019036353A (ja) | 索引更新パイプライン | |
US20150278244A1 (en) | Geographically-distributed file system using coordinated namespace replication over a wide area network | |
US11550820B2 (en) | System and method for partition-scoped snapshot creation in a distributed data computing environment | |
CN113010496B (zh) | 一种数据迁移方法、装置、设备和存储介质 | |
WO2015196692A1 (zh) | 一种云计算系统以及云计算系统的处理方法和装置 | |
CN117354141A (zh) | 应用服务管理方法、设备和计算机可读存储介质 | |
Ehsan ul Haque | Persistence and Node FailureRecovery in Strongly Consistent Key-Value Datastore |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |