CN101562543B - 一种缓存数据的处理方法、处理系统和装置 - Google Patents

一种缓存数据的处理方法、处理系统和装置 Download PDF

Info

Publication number
CN101562543B
CN101562543B CN2009101437363A CN200910143736A CN101562543B CN 101562543 B CN101562543 B CN 101562543B CN 2009101437363 A CN2009101437363 A CN 2009101437363A CN 200910143736 A CN200910143736 A CN 200910143736A CN 101562543 B CN101562543 B CN 101562543B
Authority
CN
China
Prior art keywords
buffer memory
service node
memory service
cache client
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2009101437363A
Other languages
English (en)
Other versions
CN101562543A (zh
Inventor
岑文初
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Taobao China Software Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN2009101437363A priority Critical patent/CN101562543B/zh
Publication of CN101562543A publication Critical patent/CN101562543A/zh
Priority to HK10102826.4A priority patent/HK1134727A1/xx
Priority to US12/800,691 priority patent/US8972773B2/en
Priority to EP10780917.0A priority patent/EP2435916B1/en
Priority to PCT/US2010/001502 priority patent/WO2010138168A1/en
Priority to JP2012513037A priority patent/JP5714571B2/ja
Application granted granted Critical
Publication of CN101562543B publication Critical patent/CN101562543B/zh
Priority to US14/578,049 priority patent/US9317384B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2094Redundant storage or storage space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • G06F2212/284Plural cache memories being distributed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/288Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level

Abstract

本申请公开了一种缓存数据的处理方法、处理系统和缓存客户端,应用于集群中多个缓存服务节点的网络中,该方法包括:缓存客户端在需要对缓存数据进行操作时,向主用缓存服务节点发送操作请求;所述缓存客户端接收所述主用缓存服务节点对所述操作请求的操作结果;所述缓存客户端在所述主用缓存服务节点执行操作失败时,选择一备用缓存服务节点并向所述备用缓存服务节点发送操作请求。本申请通过采用群配置模式,当主缓存服务节点失效时选择备用缓存服务节点来执行操作,从而解决缓存服务节点失效引起的数据丢失和缓存服务节点不可用的问题,提高了系统的可靠性和可用性。

Description

一种缓存数据的处理方法、处理系统和装置
技术领域
本申请涉及网络技术领域,特别是涉及一种缓存数据的处理方法、处理系统和装置。
背景技术
分布式缓存(Distributed Cache),即缓存在分布式系统内存中的缓存数据,将需要缓存的内容分散到物理上隔离的缓存服务节点中保存,可以为事件驱动型第三方应用程序提供高可用性、高性能和可伸缩性。其中,高可用性是指事件处理第三方应用程序可以将输出事件发布到一个重复式的分布式缓存,从而保证其计算结果具有高可用性;高性能和可伸缩性是指许多事件驱动型第三方应用程序都需要结合使用流数据和外部数据,例如从持久性存储器中检索出来的数据。缓存可用于提高访问非流式数据的速度,从而动态地提高第三方应用程序的性能,被广泛应用于互联网第三方应用以及大型网站架构设计中。
当前分布式缓存主要有服务端分布式和客户端分布式两类。
服务端分布式的分布式缓存结构示意图如图1所示,由Cache Client(缓存客户端)、Cache Node A(缓存服务节点A)、Cache Node B(缓存服务节点B)和Cache Node C(缓存服务节点C)组成。其特点是分布式操作由服务端来完成,通常采用JGroup的多播通信作为手段,通过三阶段事务协议执行操作和同步数据。该类型的主要代表是:JBoss Cache和EhCache。这种模式最大的问题就是效率问题,由于多播通信本身的不可靠性及三阶段事务的策略复杂性,导致这类缓存的效率不高,无法应用于操作频繁,高并发请求的系统架构。
客户端分布式的分布式缓存结构示意图如图2所示,由Cache Client、Cache Node A、Cache Node B和Cache Node C组成。其特点是缓存服务端本身是集中式的缓存,服务端不负责分发数据和同步数据,但是通过客户端的算法设置,将不同Key的数据分发到不同的服务端,就形成了可扩展的客户端分布式缓存系统。该类型的主要代表:Memcached Cache。这种模式可扩展性强,效率很高,但是缺少容错机制,当其中某一数据缓存服务节点不可用时,系统将丢失部分数据,影响业务系统正常使用。新浪的开源MemcachedDB,将数据固化到内存数据库或者本地硬盘来保证数据的完整性,但是这并不能够在高并发下起到集群容错和均衡负载的效果。
现有技术存在如下问题:
缓存服务节点失效导致数据丢失无法恢复。数据被客户端通过固定算法分发到某一缓存服务节点,缓存服务节点的异常,将使得这个缓存服务节点上的所有数据丢失。而且,缓存服务节点失效导致无法继续正常服务。数据被客户端通过固定算法分发到某一缓存服务节点,缓存服务节点的异常,将使得被分发到这个缓存服务节点上的请求都将不再被接收处理。
发明内容
本申请提供一种缓存数据的处理方法、处理系统和装置,应用于集群中多个缓存服务节点的网络中,用于解决缓存服务节点失效引起的数据丢失和缓存服务节点不可用的问题,提高系统可靠性和可用性。
本申请提供一种缓存数据的处理方法,应用于包括多个缓存服务节点的集群中,包括:
缓存客户端在需要对缓存数据进行操作时,向主用缓存服务节点发送操作请求;
所述缓存客户端接收所述主用缓存服务节点对所述操作请求的操作结果;
所述缓存客户端在所述主用缓存服务节点执行操作失败时,选择一备用缓存服务节点并向所述备用缓存服务节点发送操作请求。
所述选择一备用缓存服务节点并向所述备用缓存服务节点发送操作请求之前,还包括:
当所述主用缓存服务节点执行操作失败时,所述缓存客户端累计其失败次数;
所述缓存客户端将所述失败次数与阀值进行比较,当所述失败次数超过阀值时,将主用缓存服务节点标示为失效。
所述将主用缓存服务节点标示为失效之后,还包括:
设定所述主用缓存服务节点的失效有效期。
所述选择一备用缓存服务节点包括:
所述缓存客户端根据获取到的标示为失效的缓存服务节点,获取网络中可用的缓存服务节点;
所述缓存客户端在所述可用的缓存服务节点中,根据算法选择一缓存服务节点作为备用缓存服务节点。
所述算法包括:
动态负载分配选择算法和哈希算法或一致性哈希算法。
所述向所述备用缓存服务节点发送操作请求之后,还包括:
所述缓存客户端接收所述备用缓存服务节点对所述操作请求的操作结果并根据操作结果进行处理。
所述缓存客户端向主用缓存服务节点发送操作请求前,还包括:
所述缓存客户端根据获取到的标示为失效的缓存服务节点,获取网络中可用的缓存服务节点;
所述缓存客户端在所述可用的缓存服务节点中,根据算法选择一缓存服务节点作为主用缓存服务节点。
所述根据操作结果进行处理包括:
所述缓存客户端根据所述操作结果判断所述操作是否成功;
当所述操作成功时,所述缓存客户端对所述主用缓存服务节点进行异步处理;
当所述操作失败时,所述缓存客户端将所述备用缓存服务节点标示失效,并重新选择备用缓存服务节点。
所述缓存客户端对所述主用缓存服务节点进行异步处理具体包括:
当所述操作成功且为获取操作时,所述缓存客户端将所述操作结果缓存到所述缓存客户端,并将所述操作和操作结果保存到集群操作任务队列并由任务执行线程池将所述操作和操作内容恢复到集群中除去进行该操作的其它缓存服务节点;
当所述操作成功且为更新操作时,所述缓存客户端将所述操作和操作结果保存到集群操作任务队列并由任务执行线程池将所述操作和操作内容复制到集群中除去进行该操作的其它缓存服务节点。
所述缓存客户端向主用缓存服务节点发送操作请求前,还包括:
所述缓存客户端在需要对缓存数据进行操作时,获取预先指定的所述主用缓存服务节点。
所述根据操作结果进行处理包括:
所述缓存客户端根据所述操作结果判断所述操作是否成功;
当所述操作成功时,所述备用缓存服务节点对所述主用缓存服务节点进行数据同步;
当所述操作失败时,所述缓存客户端将重新选择备用缓存服务节点并向所述备用缓存服务节点发送操作请求。
还包括:
所述缓存客户端对所述主用缓存服务节点和所述备用缓存服务节点进行心跳检测;
所述缓存客户端根据心跳检测的结果更新所述主用缓存服务节点和/或备用缓存服务节点的失效状态。
还包括:
当所述集群中缓存服务节点能力不够时,可以进行单节点动态扩容。
本申请提供一种缓存数据的处理系统,包括多个缓存服务节点,包括:
缓存客户端,用于向主用缓存服务节点发送操作请求,并接收所述主用缓存服务节点对所述操作请求的操作结果;当根据接收的所述主用缓存服务节点对所述操作请求的操作结果判断该操作失败时,选择一备用缓存服务节点并向所述备用缓存服务节点发送操作缓存数据请求;
主用缓存服务节点,用于接收所述缓存客户端发送的操作缓存数据请求,并向所述缓存客户端返回操作结果;
备用缓存服务节点,当所述主用缓存服务节点失效时,接收所述缓存客户端发送的操作缓存数据请求。
所述集群中多个缓存服务节点为Active集群配置模式时,所述集群中多个缓存服务节点都处于工作状态,当某一缓存服务节点失效时,其他缓存服务节点分担请求;
所述集群中多个缓存服务节点为Standby集群配置模式时,所述集群中多个缓存服务节点中只有一个缓存服务节点作为主缓存服务节点处于工作状态,其他缓存服务节点都处于备用状态,当所述主用缓存服务节点失效时,其他缓存服务节点中的一个缓存服务节点作为备用缓存服务节点接替所述主用缓存服务节点,接收请求。
当所述集群中多个缓存服务节点能力不够时,可以进行单节点动态扩容。
本申请提供一种缓存客户端,应用于包括多个缓存服务节点的集群中,包括:
请求发送单元,用于在需要对缓存数据进行操作时,向主用缓存服务节点发送操作请求;
结果接收单元,用于接收所述主用缓存服务节点对所述请求发送单元发送的操作请求的操作结果;
缓存服务节点选择单元,用于当根据所述结果接收单元接收的操作结果判断所述主用缓存服务节点执行操作失败时,选择一备用缓存服务节点并由所述请求发送单元向所述备用缓存服务节点发送操作请求。
还包括:
失效标示单元,用于当根据所述结果接收单元接收的操作结果判断所述主用缓存服务节点执行操作失败时,将所述主用缓存服务节点标示为失效。
所述失效标示单元具体包括:
次数累计子单元,用于当所述主用缓存服务节点执行操作失败时,所述缓存客户端累计其失败次数;
失效标示子单元,用于将所述次数累计子单元累计的失败次数与阀值进行比较,当所述失败次数超过所述阀值时,将所述主用缓存服务节点标示为失效;
失效有效期设定子单元,用于在所述失效标示子单元将所述主用缓存服务节点标示为失效后,设定所述主用缓存服务节点的失效有效期。
所述缓存服务节点选择单元具体包括:
可用缓存服务节点获取子单元,用于根据所述失效标示子单元标示为失效的缓存服务节点,获取网络中可用的缓存服务节点;
缓存服务节点选择子单元,用于在所述可用缓存服务节点获取子单元获取的可用的缓存服务节点中,根据算法选择一缓存服务节点作为备用缓存服务节点,,所述算法包括动态负载分配选择算法和哈希算法或一致性哈希算法。
所述结果接收单元还用于接收所述备用缓存服务节点对所述请求发送单元发送的操作请求的操作结果;
所述缓存客户端还包括:操作结果处理单元,用于根据所述结果接收单元接收的所述备用缓存服务节点对所述操作请求的操作结果进行处理。
所述集群中多个缓存服务节点为Active集群配置模式时,所述缓存服务节点选择子单元还用于在所述可用的缓存服务节点获取子单元获取的可用的缓存服务节点中,根据算法选择一缓存服务节点作为主用缓存服务节点。
所述操作结果处理单元还包括:
异步处理子单元,用于当根据所述缓存客户端的结果接收单元接收的操作结果判断所述操作成功时,对所述主用缓存服务节点进行异步处理;具体的:当所述操作成功且为获取操作时,将所述操作结果缓存到所述缓存客户端,并将所述操作和操作结果保存到集群操作任务队列并由任务执行线程池将所述操作和操作内容恢复到集群中除去进行该操作的其它缓存服务节点;当所述操作成功且为更新操作时,将所述操作和操作结果保存到集群操作任务队列并由任务执行线程池将所述操作和操作内容复制到集群中除去进行该操作的其它缓存服务节点。
所述失效标示单元还用于当根据所述结果接收单元接收的操作结果判断所述操作失败时,将所述备用缓存服务节点标示为失效。
所述集群中多个缓存服务节点为Standby集群配置模式时,所述操作结果处理单元还包括:
数据同步子单元,用于当根据所述缓存客户端的结果接收单元接收的操作结果判断所述操作成功时,对所述备用缓存服务节点进行数据同步。
还包括:
心跳检测单元,用于对所述主用缓存服务节点和备用缓存服务节点进行心跳检测,并根据心跳检测结果更新所述主用缓存服务节点和/或备用缓存服务节点的失效状态。
本申请包括以下优点,因为采用了集群配置模式,当主缓存服务节点失效时选择备用缓存服务节点来执行操作,从而解决缓存服务节点失效引起的数据丢失和缓存服务节点不可用的问题,提高系统可靠性和可用性。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对本申请或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中的一种服务端分布式的分布式缓存结构示意图;
图2为现有技术中的一种客户端分布式的分布式缓存结构示意图;
图3为本申请实施例中的一种缓存数据方法流程图;
图4为本申请实施例中的一种Active集群配置模式下的缓存数据处理方法流程图;
图5为本申请实施例中的一种动态负载分配选择算法的流程图;
图6为本申请实施例中的一种Standby集群配置模式下的缓存数据处理方法流程图;
图7为本申请实施例中的一种Active集群配置模式下的缓存数据处理方法流程图;
图8为本申请实施例中的一种Active集群配置模式下的异步处理的方法流程图;
图9为本申请实施例中的一种Standby集群配置模式下的缓存数据方法流程图;
图10为本申请实施例中的一种Standby集群配置模式下的心跳检测方法流程图;
图11为本申请实施例中的一种Standby集群配置模式下的心跳检测方法流程图;
图12为本申请实施例中的一种缓存数据处理系统的结构示意图;
图13为本申请实施例中的一种缓存客户端的结构示意图;
图14为本申请实施例中的一种Active集群配置模式下的缓存客户端的结构示意图;
图15为本申请实施例中的一种Standby集群配置模式下的缓存客户端的结构示意图;
图16为本申请实施例中的一种集群结构示意图;
具体实施方式
本申请的主要思想包括,当主用缓存服务节点执行操作缓存数据失败时,缓存客户端将主用缓存服务节点标示为失效,选择一备用缓存服务节点并向所述备用缓存服务节点发送操作请求,从而解决缓存服务节点失效引起的数据丢失和缓存服务节点不可用的问题,达到了提高系统可靠性和可用性的效果。
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中提供一种缓存数据的处理方法,采用集群配置模式用于集群中多个缓存服务节点的网络中,解决缓存服务节点失效引起的数据丢失和缓存服务节点不可用的问题,如图3所示,其中包括缓存客户端,用于接收第三方应用的缓存操作请求和选择缓存服务节点;缓存服务节点,相当于逻辑上的缓存服务器,用于缓存数据库中的数据,具体包括以下步骤:
步骤s301,缓存客户端在需要对缓存数据进行操作时,向主用缓存服务节点发送操作请求。
步骤s302,缓存客户端接收主用缓存服务节点对该操作请求的操作结果。
步骤s303,缓存客户端在主用缓存服务节点执行操作失败时,选择一备用缓存服务节点并向该备用缓存服务节点发送操作请求。
其中,所述集群配置模式包括:Active集群配置模式和Standby集群配置模式。
Active集群配置模式是指集群中多个缓存服务节点都处于工作状态,当某一缓存服务节点失效时,其它缓存服务节点分担请求,并在操作结束时,进行集群中各个节点的数据同步。
Standby集群配置模式是指集群中多个缓存服务节点中只有一个缓存服务节点作为主缓存服务节点处于工作状态,其它缓存服务节点都处于备用状态,当主用缓存服务节点失效时,其他缓存服务节点中的一个缓存服务节点作为备用缓存服务节点替换主用缓存服务节点,接收请求,并定时对集群中各个节点的数据进行同步。
上述Active和Standby两种集群配置模式实际上是为整个网络系统提供了一种故障自动恢复能力,保证在不需要进行人工干预的情况下使客户不间断的对数据进行访问。
当集群中多个缓存服务节点为Active集群配置模式时,如图4所示,该缓存数据的处理方法的具体步骤为:
步骤s401,缓存客户端在需要对缓存数据进行操作时,在集群中多个缓存服务节点中通过算法选择一主用缓存服务节点并向该主用缓存服务节点发送操作请求。
具体的,集群中的缓存服务节点如果处于失效状态,则会保存有失效标示,缓存客户端根据从本地存储中或在其他位置的存储中,获取标示为失效的缓存服务节点,进而获取网络中可用的缓存服务节点;缓存客户端在可用的缓存服务节点中,根据算法选择一缓存服务节点作为主用缓存服务节点,该算法包括动态负载分配选择算法、哈希算法或一致性哈希算法。
步骤s402,缓存客户端接收主用缓存服务节点对该操作请求的操作结果。
缓存客户端在可用的缓存服务节点中,根据算法选择一缓存服务节点作为主用缓存服务节点之后,向主用缓存服务节点发送操作缓存数据的请求,主用缓存服务节点执行操作缓存数据的请求后,将该操作结果发送给缓存客户端。
步骤s403,缓存客户端在主用缓存服务节点执行操作失败时,将主用缓存服务节点标示为失效,选择一备用缓存服务节点并向该备用缓存服务节点发送操作请求。
具体的,当主用缓存服务节点执行操作失败时,缓存客户端累计操作失败次数;缓存客户端将失败次数与阀值进行比较,当失败次数超过阀值时,将主用缓存服务节点标示为失效,并设定失效有效期。
此时,缓存客户端根据获取到的标示为失效的缓存服务节点,获取网络中可用的缓存服务节点;缓存客户端在可用的缓存服务节点中,根据算法选择一备用缓存服务节点并向该备用缓存服务节点发送操作请求。备用缓存服务节点执行该操作缓存数据请求并向缓存客户端发送该操作结果。
当根据该操作结果判断该操作成功时,缓存客户端对主用缓存服务节点进行异步处理;
其中,异步处理具体包括:当该操作成功且为获取操作时,缓存客户端将该操作结果缓存到缓存客户端,并将该操作和操作结果保存到集群操作任务队列。由任务执行线程池将该操作和操作内容恢复到集群中除去进行该操作的其它缓存服务节点;当该操作成功且为更新操作时,缓存客户端将该操作和操作结果保存到集群操作任务队列并由任务执行线程池将该操作和操作内容复制到集群中除去进行该操作的其它缓存服务节点。
在Active集群配置模式下,当主用缓存服务节点失效时,备用缓存服务节点接替主用缓存服务节点;当主用缓存服务节点恢复时,集群操作任务队列将备用缓存服务节点进行的操作及操作结果恢复或复制到主用缓存服务节点,此时主用缓存服务节点将重新处于工作状态,备用缓存服务节点将不接替主用缓存服务节点接收请求。
上述异步处理还用于当主用缓存服务节点未失效时,将所述主用缓存服务节点进行的操作更新到集群中所有其它的缓存服务节点。也就是说,在Active集群配置模式下,无论是主用缓存服务节点还是备用缓存服务节点,只要进行了操作,都将该操作及操作结果保存到集群操作任务队列,在队列中等待对集群中所有其它的缓存服务节点进行数据的异步处理,以保证集群中的所有缓存服务节点数据的一致性。
当根据该操作结果判断该操作失败时,缓存客户端将备用缓存服务节点标示失效,并重新选择备用缓存服务节点。
上述步骤s401中所述的动态负载分配选择算法如图5所示,其具体步骤为:
步骤s501,Cache Client通过后台的线程定时从各个可用的缓存服务节点获取可用缓存服务节点的参数,包括缓存服务节点处理能力指数W[i],缓存服务节点当前缓存数据总量C[i]、缓存服务节点请求响应时间R[i]。
步骤s502,Cache Client对获取到的可用缓存服务节点的各个参数进行升序或降序排列。
例如:F(K[i],{K[1]..K[N]},ASC)表示先对数组{K[1]...K[N]}作升序排列,然后返回K[i]所在位置的下标。
F(K[i],{K[1]..K[N]},DESC)表示先对数组{K[1]...K[N]}作降序排列,然后返回K[i]所在位置的下标。
步骤s503,Cache Client将各个参数按照选择缓存服务节点公式进行计算。
具体的,选择缓存服务节点公式为:
Max(F(W[i],{W[1]...W[N]},ASC)*25%+F(C[i],{C[1]...C[N]},DESC)*25%+F(R[i],{R[1]...R[N]},DESC)*50%)。具体含义就是处理能力占25%权重(处理能力越大越好),存储内容总量占25%权重(存储内容越少越好),响应时间占50%权重(响应时间越短越好)。
步骤s504,Cache Client根据选择缓存服务节点公式的计算结果,选择主用缓存服务节点,获取最后统计出来的值最大的缓存服务节点作为所选择的缓存服务节点。
当集群中多个缓存服务节点为Standby集群配置模式时,如图6所示,该缓存数据的处理方法的具体步骤为:
步骤s601,缓存客户端在需要对缓存数据进行操作时,向集群中指定的主用缓存服务节点发送操作请求,其中主用缓存服务节点的确定为以缓存服务节点进入集群的先后顺序为序,即集群中的缓存服务节点按照进入集群的先后顺序排列,排在第一位的即为集群中的主用缓存服务节点;当该主用缓存服务节点失效时,进入集群时间排在第二的缓存服务节点变为主用缓存服务节点;当失效的原主缓存服务节点恢复时,将重新排列在集群中缓存服务节点的最后。
步骤s602,缓存客户端接收主用缓存服务节点对该操作请求的操作结果。
当缓存客户端向主用缓存服务节点发送操作缓存数据的请求,主用缓存服务节点执行操作缓存数据的请求后,将操作结果发送给缓存客户端。
步骤s603,缓存客户端在主用缓存服务节点执行操作失败时,将主用缓存服务节点标示为失效,选择一备用缓存服务节点并向该备用缓存服务节点发送操作请求。
具体的,当主用缓存服务节点执行操作失败时,缓存客户端累计操作失败次数;缓存客户端将失败次数与阀值进行比较,当失败次数超过阀值时,将主用缓存服务节点标示为失效,并设定失效有效期。
缓存客户端根据获取到的标示为失效的缓存服务节点,获取网络中可用的缓存服务节点;缓存客户端在可用的缓存服务节点中,根据哈希算法或一致性哈希算法选择一缓存服务节点作为备用缓存服务节点。备用缓存服务节点执行该操作缓存数据请求并向缓存客户端发送该操作结果。
当根据该操作结果判断该操作失败时,缓存客户端将该备用缓存服务节点标示失效,并重新选择备用缓存服务节点。
在Standby集群配置模式下,当主用缓存服务节点失效,备用缓存服务节点接替主用缓存服务节点时,备用缓存服务节点将永久替换原主用缓存服务节点作为主用缓存服务节点;当原主用缓存服务节点恢复时,则作为当前主用缓存服务节点的备用缓存服务节点。并且,集群中的备用缓存服务节点会定时地向当前的主用缓存服务节点请求数据集,进行数据异步同步,以保证集群中的所有缓存服务节点数据的一致性。
本申请的实施例中,为本申请中的方法采用Active集群配置模式应用于对数据安全性要求高,读写比例均衡高发的系统。该网络中包括Application(第三方应用)、Cache Client、Cache Node A和Cache Node B。当需要使用缓存机制的第三方,即第三方应用发送读取或者操作缓存数据请求,Cache Client根据动态负载分配算法所选择的执行操作缓存数据的Cache Node A发生故障操作失败时,Cache Client重新根据动态负载分配算法选择Cache Node B执行操作缓存数据,并当Cache Node B操作成功时进行异步处理。
具体的,如图7所示,该缓存数据的处理方法包括以下步骤:
步骤s701,第三方应用向Cache Client发送读取或者操作缓存数据请求。
步骤s702,Cache Client接收第三方应用发送的请求,确定可用的缓存服务节点。
集群中的缓存服务节点如果处于失效状态,会保存有失效标示。CacheClient检查所有缓存服务节点的状态,根据是否标有失效标示来判断缓存服务节点是否可用,将没有失效标示的缓存服务节点确定为可用的缓存服务节点。当Cache Client没有检查到可用的缓存服务节点时,Cache Client向第三方应用发送出错信息;当Cache Client检查到可用的缓存服务节点时,则转到步骤s703。
步骤s703,Cache Client选择主用缓存服务节点。
具体的,该步骤同步骤s401中的“根据算法选择一缓存服务节点作为主用缓存服务节点”相同。
本流程中以Cache Client选择了Cache Node A为例进行说明。
步骤s704,当Cache Client选择了Cache Node A时,则向Cache Node A发送操作缓存数据请求。
步骤s705,Cache Node A接收Cache Client发送的操作请求,操作缓存数据。
步骤s706,当Cache Node A完成该操作请求时,返回操作结果给CacheClient。
步骤s707,Cache Client根据返回的操作结果判断该操作是否成功。
步骤s708,Cache Client根据该操作是否成功进行处理。
本流程中以该操作失败为例进行说明。
具体的,当该操作失败时,由于可能存在其它原因(例如,网络连接故障)致使本次操作失败,所以不直接标示Cache Node A失效,而是累加失败次数到Cache Node A的失败计数器,得到失败次数n。失败计数器设定有阀值N,当该失败次数n大于阀值N时,该Cache Client将标示Cache Node A的状态为失效。
步骤s709,Cache Client接收第三方应用发送的请求,确定可用的备用缓存服务节点。
集群中的缓存服务节点如果处于失效状态,会保存有失效标示。CacheClient根据获取到的标示为失效的缓存服务节点,获取网络中可用的缓存服务节点。当Cache Client没有检查到可用的缓存服务节点时,Cache Client向第三方应用发送出错信息;当Cache Client检查到可用的缓存服务节点时,则转到步骤s710。
步骤s710,Cache Client从可用的缓存服务节点中根据算法选择一缓存服务节点作为备用缓存服务节点,该算法包括动态负载分配选择算法和哈希算法或一致性哈希算法。
本流程中以Cache Client选择了Cache Node B为例进行说明。
步骤s711,Cache Client向Cache Node B发送操作缓存数据请求。
步骤s712,Cache Node B接收Cache Client发送的操作请求,操作缓存数据。
步骤s713,当Cache Node B完成该操作请求时,返回操作结果给CacheClient。
步骤s714,Cache Client根据接收的操作结果判断该操作是否成功。
当该操作失败时,则转到步骤s709;
当该操作成功时,则转到步骤s715;
步骤s715,Cache Client根据该操作结果进行处理。
具体包括以下两种情况的任一种:
(a)当该操作成功且为获取操作时,如果需要缓存,缓存数据到CacheClient,并设定有效期,提高命中数据的访问速度,并将该操作和操作结果保存到集群操作任务队列。
(b)当该操作成功且为更新操作时,Cache Client将该操作和操作结果保存到集群操作任务队列。
步骤s716,Cache Client返回操作结果给第三方应用。
上述步骤s715中将该操作及操作结果保存到集群操作任务队列后,采用异步模式和队列结合线程池的方式完成异步处理的工作,包括异步数据恢复和复制。
具体的,如图8所示,该异步处理的方法包括以下步骤:
步骤s801,Cache Client记录缓存服务节点执行的获取或更新操作到集群操作任务队列。
步骤s802,任务消费者向集群操作任务队列发送轮询检查,查看是否有新的任务在队列中。当查询到有新的任务在队列中,则转到步骤s803。
步骤s803,任务消费者向任务执行线程池发送该任务。
步骤s804,集群操作任务队列将该任务删除。
步骤s805,任务执行线程池根据任务命令、任务目标和任务内容分析该任务,并根据分析结果创建任务执行线程。
步骤s806,任务执行线程池执行缓存服务节点异步处理任务。
当该操作为获取操作时,将该操作和操作内容恢复到集群中除去进行该操作的其它缓存服务节点;
当该操作为更新操作时,将该操作和操作内容复制到集群中除去进行该操作的其它缓存服务节点;
步骤s807,集群缓存服务节点发送操作结果给任务执行线程池。
步骤s808,任务执行线程池根据该操作结果判断该任务是否执行成功并根据该判断结果进行处理。
当该任务执行成功时,该任务结束;
当该任务执行失败时,对失败任务进行处理,具体为以下任一种:
(a)简单丢弃。
(b)有限次重试。
(c)任务固化到本地缓存。
本申请的实施例中,为本申请中的方法采用Standby集群配置模式应用于读操作比例高,对数据同步要求不高,但可靠性要求高的系统。该网络中包括Application、Cache Client、Cache Node A和Cache Node A’。当主用缓存服务节点Cache Node A未失效但执行操作失败或主用缓存服务节点Cache NodeA失效时,Cache Client向备用缓存服务节点Cache Node A’发出请求,CacheNode A’执行操作并自行同步数据。
具体的,如图9所示,该缓存数据的处理方法包括以下步骤:
步骤s901,第三方应用向发送Cache Client读取或者操作缓存数据请求。
步骤s902,Cache Client接收第三方应用发送的请求,检查本地缓存中主用缓存服务节点Cache Node A的状态,如果失效状态已经超出时效,将失效标示清除。
当主用缓存服务节点未失效时,转到步骤s903;
当主用缓存服务节点失效时,转到步骤s908;
步骤s903,Cache Client向Cache Node A发出操作缓存数据请求。
步骤s904,Cache Node A接收Cache Client发出操作缓存数据请求,操作缓存数据。
步骤s905,当Cache Node A执行操作缓存数据之后,返回操作结果给CacheClient。
步骤s906,Cache Client根据返回的操作结果判断该操作是否成功。
步骤s907,Cache Client根据该操作是否成功进行处理。
本流程以该操作失败为例进行说明。
由于可能存在其它原因(例如,网络连接故障)致使该操作失败,所以不直接标示Cache Node A失效,而是累加失败次数到Cache Node A的失败计数器,得到失败次数n。失败计数器设定有阀值N,当该失败次数n大于阀值N时,则将Cache Node A的状态标示为失效,并设置失效有效期。
步骤s908,Cache Client从可用的缓存服务节点中选择其一作为备用缓存服务节点。
具体的,集群中的缓存服务节点如果处于失效状态,会保存有失效标示。Cache Client根据获取到的标示为失效的缓存服务节点,获取网络中可用的缓存服务节点并从中选择其一作为备用缓存服务节点。当Cache Client没有检查到可用的缓存服务节点时,Cache Client向第三方应用发送出错信息。
本流程以Cache Client选择了备用缓存服务节点Cache Node A’为例进行说明。
步骤s909,Cache Client向备用缓存服务节点Cache Node A’发出操作缓存数据请求。
步骤s910,Cache Node A’执行该操作。
步骤s911,Cache Node A’返回操作结果给Cache Client。
步骤s912,Cache Client根据接收的操作结果判断该操作是否成功。
当该操作失败时,则转到步骤s908;
当该操作成功时,则转到步骤s913。
步骤s913,Cache Client返回操作结果给第三方应用。
步骤s914,备用缓存服务节点Cache Node A’定时同步数据。
需要说明的是,此时备用缓存服务节点接替原主用缓存服务节点,为当前的主用缓存服务节点,当原主用缓存服务节点恢复时,成为当前主用缓存服务节点的备用缓存服务节点,所以Cache Node A将作为当前的备用缓存服务节点向当前的主用缓存服务节点Cache Node A’请求数据集,进行数据异步同步。
具体的,备用缓存服务节点Cache Node A’定时同步数据包括以下步骤:
(a)Cache Node A向Cache Node A’请求数据集;
(b)Cache Node A’返回请求的数据集结果给Cache Node A,Cache NodeA完成与Cache Node A’的数据同步。
在Standby集群配置模式下,Cache Client对集群中的缓存服务节点进行周期性心跳检测,根据心跳检测的结果定时更新标有失效标示和未标有失效标示缓存服务节点的状态。
当缓存服务节点标有失效标示时,缓存客户端对缓存服务节点进行心跳检测,当应答次数超过阀值时,缓存客户端将该缓存服务节点的失效标示清除。具体的,如图10所示,为Cache Client对标有失效标示的缓存服务节点进行心跳检测的具体步骤:
本流程以对标有失效标示的Cache Node C为例进行说明。
步骤s1001,Cache Client向Cache Node C发出周期性心跳检测数据包。
步骤s1002,Cache Node C返回心跳检测结果给Cache Client。
步骤s 1003,Cache Client根据接收的心跳检测结果,判断Cache Node C是否对该数据包进行了应答。
步骤s1004,如果Cache Node C对该数据包进行了应答,清除Cache Node C的失效标示。
当缓存服务节点未标有失效标示时,缓存客户端对缓存服务节点进行心跳检测,当未应答次数超过阀值时,缓存客户端标示该缓存服务节点失效。具体的,如图11所示,为Cache Client对未标有失效标示的缓存服务节点进行心跳检测的具体步骤:
本流程以对未标有失效标示的Cache Node D为例进行说明。
步骤s1101,Cache Client向Cache Node D发出周期性心跳检测数据包。
步骤s 1102,Cache Node D返回心跳检测结果给Cache Client。
步骤s 1103,Cache Client根据接收心跳检测结果,判断Cache Node D是否对该数据包进行了应答。
步骤s1104,如果Cache Node D未对该数据包进行应答,Cache Client累记失败次数到Cache Node D的失败计数器。
步骤s1105,当Cache C的失败次数n大于阀值N,则更新Cache Node D的状态,对Cache Node D进行失效标示。
需要说明的是,当通过心跳检测检测到缓存服务节点操作失败与当缓存服务节点接收操作缓存请求操作失败时,累计失败次数到同一失败计数器,失败次数n为二者之和,与阀值N相比较。
本申请实施例中还提供了一种缓存数据的处理系统,其结构如图12所示,包括:
缓存客户端1201,用于向主用缓存服务节点1202发送操作请求,并接收主用缓存服务节点1202对该操作请求的操作结果;当根据接收的主用缓存服务节点1202对该操作请求的操作结果判断该操作失败时,选择一备用缓存服务节点1203并向备用缓存服务节点1203发送操作缓存数据请求。
主用缓存服务节点1202,用于接收缓存客户端1201发送的操作缓存数据请求,并向缓存客户端1201返回操作结果。
备用缓存服务节点1203,当主用缓存服务节点1202失效时,接收缓存客户端1201发送的操作请求。
上述主用缓存服务节点1202和备用缓存服务节点1203为Active集群配置模式时,集群中多个缓存服务节点都处于工作状态,当某一缓存服务节点失效时,其他缓存服务节点分担请求;
上述主用缓存服务节点1202和备用缓存服务节点1203为Standby集群配置模式时,集群中多个缓存服务节点中只有一个缓存服务节点作为主缓存服务节点处于工作状态,其他缓存服务节点都处于备用状态,当主用缓存服务节点失效时,其他缓存服务节点中的一个缓存服务节点作为备用缓存服务节点替换该主用缓存服务节点,接收请求。
此外,当集群中多个缓存服务节点能力不够时,可以进行单节点动态扩容。
如图13所示,为本申请实施例中的一种缓存客户端1300结构示意图,包括:
请求发送单元1301,用于在需要对缓存数据进行操作时,向主用缓存服务节点发送操作请求。
结果接收单元1302,用于接收主用缓存服务节点对请求发送单元发送的操作请求的操作结果。
缓存服务节点选择单元1303,用于当根据所述结果接收单元接收的操作结果判断所述主用缓存服务节点执行操作失败时,选择一备用缓存服务节点并由请求发送单元向备用缓存服务节点发送操作请求。
如图14所示,为本申请实施例中的一种Active集群配置模式下的缓存客户端1400的结构示意图,包括:
请求发送单元1401,用于在需要对缓存数据进行操作时,向主用缓存服务节点发送操作请求。
结果接收单元1402,用于接收主用缓存服务节点对请求发送单元1401发送的操作请求的操作结果。
失效标示单元1403,用于根据结果接收单元1402接收的操作结果判断该操作失败时,将主用缓存服务节点标示为失效。
失效标示单元1403具体包括:
次数累计子单元14031,用于当主用缓存服务节点执行操作失败时,缓存客户端累计其失败次数;
失效标示子单元14032,用于将次数累计子单元14031累计的失败次数与阀值进行比较,当失败次数超过阀值时,将主用缓存服务节点标示为失效。
失效有效期设定子单元10433,用于在所述失效标示子单元14032将所述主用缓存服务节点标示为失效后,设定所述主用缓存服务节点的失效有效期。
缓存服务节点选择单元1404,用于选择备用缓存服务节点并向备用缓存服务节点发送操作请求。
缓存服务节点选择单元1404具体包括:
可用缓存服务节点获取子单元14041,用于根据标示为失效的缓存服务节点,获取网络中可用的缓存服务节点;
缓存服务节点选择子单元14042,用于在可用缓存服务节点获取子单元14041获取的可用的缓存服务节点中,根据算法选择一缓存服务节点作为备用缓存服务节点,所述算法包括动态负载分配选择算法和哈希算法或一致性哈希算法。
缓存服务节点选择单元1404,还用于选择主用缓存服务节点并由请求发送单元1401向主用缓存服务节点发送操作请求。
上述请求发送单元1401,还用于在需要对缓存数据进行操作时,向备用缓存服务节点发送操作请求。
上述结果接收单元1402,还用于接收备用缓存服务节点对请求发送单元1401发送的操作请求的操作结果。
上述失效标示单元1403,还用于根据结果接收单元1402接收的操作结果判断该操作失败时,将备用缓存服务节点标示为失效。
缓存客户端1400还包括:
操作结果处理单元1405,用于根据结果接收单元1402接收的备用缓存服务节点对操作请求的操作结果进行处理。
操作结果处理单元1405还包括:
异步处理子单元14051,用于当根据缓存客户端的结果接收单元1402接收的操作结果判断该操作成功时,缓存客户端对主用缓存服务节点进行异步处理。
该异步处理子单元14051具体用于:
当该操作成功且为获取操作时,缓存客户端将该操作结果缓存到缓存客户端,并将该操作和操作结果保存到集群操作任务队列并由任务执行线程池将该操作和操作内容恢复到集群中除去进行该操作的其它缓存服务节点;
当该操作成功且为更新操作时,缓存客户端将操作和操作结果保存到集群操作任务队列并由任务执行线程池将该操作和操作内容复制到集群中除去进行该操作的其它缓存服务节点。
如图15所示,为本申请实施例中的一种Standby集群配置模式下的缓存客户端1500的结构示意图,包括:
请求发送单元1501,用于在需要对缓存数据进行操作时,向主用缓存服务节点发送操作请求。
结果接收单元1502,用于接收主用缓存服务节点对请求发送单元1501发送的操作请求的操作结果。
失效标示单元1503,用于根据结果接收单元1502接收的操作结果判断该操作失败时,将主用缓存服务节点标示为失效。
失效标示单元1503具体包括:
次数累计子单元15031,用于当主用缓存服务节点执行操作失败时,缓存客户端累计其失败次数;
失效标示子单元15032,用于将次数累计子单元15031累计的失败次数与阀值进行比较,当失败次数超过阀值时,将主用缓存服务节点标示为失效。
失效有效期设定子单元15033,用于在所述失效标示子单元15032将所述主用缓存服务节点标示为失效后,设定所述主用缓存服务节点的失效有效期。
缓存服务节点选择单元1504,用于选择备用缓存服务节点并由请求发送单元1501向备用缓存服务节点发送操作请求。
上述请求发送单元1501,还用于在需要对缓存数据进行操作时,向备用缓存服务节点发送操作请求。
上述结果接收单元1502还用于接收备用缓存服务节点对请求发送单元1501发送的操作请求的操作结果。
上述失效标示单元1503,还用于根据结果接收单元1502接收的操作结果判断该操作失败时,将备用缓存服务节点标示为失效。
缓存客户端1500还包括:
操作结果处理单元1505,用于结果接收单元1502接收的备用缓存服务节点对该操作请求的操作结果进行处理。
操作结果处理单元1505还包括:
数据同步子单元15051,用于当根据缓存客户端的结果接收单元1502接收的操作结果判断该操作成功时,缓存客户端对备用缓存服务节点进行数据同步;
缓存客户端1500还包括:
心跳检测单元1506,用于对主用缓存服务节点和备用缓存服务节点进行心跳检测,并根据心跳检测结果更新主用缓存服务节点和/或备用缓存服务节点的失效状态。
为了描述的方便,以上所述Cache Client的各部分以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件或硬件中实现。
当上述实施例集群中多个缓存服务节点能力不够时,可以进行单节点动态扩容。对于集中式Cache来说,为了能够提供扩展,Cache Node其实是一个虚拟的缓存服务节点,由一些缓存实例(Cache Instance)组成,具体的,如图16所示。其中集群A由Cache Node A和Cache Node B组成,Cache Node A由Cache Instance 1,Cache Instance 2和Cache Instance 3构成,Cache NodeB由Cache Instance4,Cache Instance5和Cache Instance6构成。这些缓存实例可以是在同一个服务器上的也可以分布在不同的服务器上,这样当缓存服务节点能力不够的时候,只需要增加虚拟缓存服务节点中的缓存实例,就能够提高处理能力,同时不影响Cache Client的使用情况。
但是当缓存实例数目增加或者减少的时候,将会直接影响数据获取算法的命中,例如原来只有三个缓存服务节点,那么根据Key作Hash,然后得到Hash结果去对缓存服务节点数取模,最终确定将内容存放到哪个实例,或者从哪个实例里面获得。当增加或者减少了Cache Node,那么发现原先存储的数据将无法正常获取到。采取集群配置以后,可以通过两种方式来进行数据迁移:1.Cache Client提供了数据迁移接口,可以将集群某一缓存服务节点数据移动到其他缓存服务节点。例如Cache Node A进行了扩容,那么可以直接从Cache Node B上将数据迁移到Cache Node A,迁移过程通过Cache Client获取Cache Node B的全部数据,然后按照新的算法存入Cache Node A。2.自动缓慢迁移,当采用Active集群配置模式的时候,如果Cache Node A扩容以后,CacheClient无法取到数据,则立刻从集群其他缓存服务节点获取数据,获得数据的话,则将数据按照新算法保存到Cache Node A,这样就会缓慢的将所有被存取的数据复制到Cache Node A上。
为了描述的方便,以上所述一种缓存数据的处理系统的各部分以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件或硬件中实现。
本申请包括以下优点,因为采用了集群配置模式,当主缓存服务节点失效时选择备用缓存服务节点来执行操作,从而解决缓存服务节点失效引起的数据丢失和缓存服务节点不可用的问题,达到了提高系统可靠性和可用性的效果。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一个终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本申请的保护范围。

Claims (16)

1.一种缓存数据的处理方法,应用于包括多个缓存服务节点的集群中,其特征在于,包括:
缓存客户端在需要对缓存数据进行操作时,向主用缓存服务节点发送操作请求;
所述缓存客户端接收所述主用缓存服务节点对所述操作请求的操作结果;
所述缓存客户端在所述主用缓存服务节点执行操作失败时,选择一备用缓存服务节点并向所述备用缓存服务节点发送操作请求;
所述向所述备用缓存服务节点发送操作请求之后,还包括:
所述缓存客户端接收所述备用缓存服务节点对所述操作请求的操作结果并根据操作结果进行处理;
所述根据操作结果进行处理包括:
所述缓存客户端根据所述操作结果判断所述操作是否成功;
当所述操作成功时,所述缓存客户端对所述主用缓存服务节点进行异步处理;
所述缓存客户端对所述主用缓存服务节点进行异步处理具体包括:
当所述操作成功且为获取操作时,所述缓存客户端将所述操作结果缓存到所述缓存客户端,并将所述操作和操作结果保存到集群操作任务队列并由任务执行线程池将所述操作和操作内容恢复到集群中除去进行该操作的备用缓存服务节点的其它缓存服务节点;
当所述操作成功且为更新操作时,所述缓存客户端将所述操作和操作结果保存到集群操作任务队列并由任务执行线程池将所述操作和操作内容复制到集群中除去进行该操作的备用缓存服务节点的其它缓存服务节点。
2.如权利要求1所述的方法,其特征在于,所述选择一备用缓存服务节点并向所述备用缓存服务节点发送操作请求之前,还包括:
当所述主用缓存服务节点执行操作失败时,所述缓存客户端累计其失败次数;
所述缓存客户端将所述失败次数与阈值进行比较,当所述失败次数超过阈值时,将主用缓存服务节点标示为失效。
3.如权利要求2所述的方法,其特征在于,所述将主用缓存服务节点标示为失效之后,还包括:
设定所述主用缓存服务节点的失效有效期。
4.如权利要求1所述的方法,其特征在于,所述选择一备用缓存服务节点包括:
所述缓存客户端根据获取到的标示为失效的缓存服务节点,获取网络中可用的缓存服务节点;
所述缓存客户端在所述可用的缓存服务节点中,根据算法选择一缓存服务节点作为备用缓存服务节点。
5.如权利要求4所述的方法,其特征在于,所述算法包括:
动态负载分配选择算法、哈希算法或一致性哈希算法。
6.如权利要求1至5中任一项所述的方法,其特征在于,所述缓存客户端向主用缓存服务节点发送操作请求前,还包括:
所述缓存客户端根据获取到的标示为失效的缓存服务节点,获取网络中可用的缓存服务节点;
所述缓存客户端在所述可用的缓存服务节点中,根据算法选择一缓存服务节点作为主用缓存服务节点。
7.如权利要求1所述的方法,其特征在于,所述根据操作结果进行处理还包括:
当所述操作失败时,所述缓存客户端将所述备用缓存服务节点标示失效,并重新选择备用缓存服务节点。
8.如权利要求1至5中任一项所述的方法,其特征在于,还包括:
当所述集群中缓存服务节点能力不够时,可以进行单节点动态扩容。
9.一种缓存数据的处理系统,包括多个缓存服务节点,其特征在于,包括:
缓存客户端,用于向主用缓存服务节点发送操作请求,并接收所述主用缓存服务节点对所述操作请求的操作结果;当根据接收的所述主用缓存服务节点对所述操作请求的操作结果判断该操作失败时,选择一备用缓存服务节点并向所述备用缓存服务节点发送操作缓存数据请求;
主用缓存服务节点,用于接收所述缓存客户端发送的操作缓存数据请求,并向所述缓存客户端返回操作结果;
备用缓存服务节点,当所述主用缓存服务节点失效时,接收所述缓存客户端发送的操作缓存数据请求;
所述向所述备用缓存服务节点发送操作请求之后,还包括:
所述缓存客户端接收所述备用缓存服务节点对所述操作请求的操作结果并根据操作结果进行处理;
所述根据操作结果进行处理包括:
所述缓存客户端根据所述操作结果判断所述操作是否成功;
当所述操作成功时,所述缓存客户端对所述主用缓存服务节点进行异步处理;
所述缓存客户端对所述主用缓存服务节点进行异步处理具体包括:
当所述操作成功且为获取操作时,所述缓存客户端将所述操作结果缓存到所述缓存客户端,并将所述操作和操作结果保存到集群操作任务队列并由任务执行线程池将所述操作和操作内容恢复到集群中除去进行该操作的备用缓存服务节点的其它缓存服务节点;
当所述操作成功且为更新操作时,所述缓存客户端将所述操作和操作结果保存到集群操作任务队列并由任务执行线程池将所述操作和操作内容复制到集群中除去进行该操作的备用缓存服务节点的其它缓存服务节点。
10.如权利要求9所述的系统,其特征在于,
当所述集群中多个缓存服务节点能力不够时,可以进行单节点动态扩容。
11.一种缓存客户端,应用于包括多个缓存服务节点的集群中,其特征在于,包括:
请求发送单元,用于在需要对缓存数据进行操作时,向主用缓存服务节点发送操作请求;
结果接收单元,用于接收所述主用缓存服务节点对所述请求发送单元发送的操作请求的操作结果;
缓存服务节点选择单元,用于当根据所述结果接收单元接收的操作结果判断所述主用缓存服务节点执行操作失败时,选择一备用缓存服务节点并由所述请求发送单元向所述备用缓存服务节点发送操作请求;
所述结果接收单元还用于接收所述备用缓存服务节点对所述请求发送单元发送的操作请求的操作结果;
所述缓存客户端还包括:操作结果处理单元,用于根据所述结果接收单元接收的所述备用缓存服务节点对所述操作请求的操作结果进行处理;
所述操作结果处理单元还包括:
异步处理子单元,用于当根据所述缓存客户端的结果接收单元接收的操作结果判断所述操作成功时,所述缓存客户端对所述主用缓存服务节点进行异步处理;具体的:当所述操作成功且为获取操作时,将所述操作结果缓存到所述缓存客户端,并将所述操作和操作结果保存到集群操作任务队列并由任务执行线程池将所述操作和操作内容恢复到集群中除去进行该操作的备用缓存服务节点的其它缓存服务节点;当所述操作成功且为更新操作时,将所述操作和操作结果保存到集群操作任务队列并由任务执行线程池将所述操作和操作内容复制到集群中除去进行该操作的备用缓存服务节点的其它缓存服务节点。
12.如权利要求11所述的缓存客户端,其特征在于,还包括:
失效标示单元,用于当根据所述结果接收单元接收的操作结果判断所述主用缓存服务节点执行操作失败时,将所述主用缓存服务节点标示为失效。
13.如权利要求12所述的缓存客户端,其特征在于,所述失效标示单元具体包括:
次数累计子单元,用于当所述主用缓存服务节点执行操作失败时,所述缓存客户端累计其失败次数;
失效标示子单元,用于将所述次数累计子单元累计的失败次数与阈值进行比较,当所述失败次数超过所述阈值时,将所述主用缓存服务节点标示为失效;
失效有效期设定子单元,用于在所述失效标示子单元将所述主用缓存服务节点标示为失效后,设定所述主用缓存服务节点的失效有效期。
14.如权利要求13所述的缓存客户端,其特征在于,所述缓存服务节点选择单元具体包括:
可用缓存服务节点获取子单元,用于根据所述失效标示子单元标示为失效的缓存服务节点,获取网络中可用的缓存服务节点;
缓存服务节点选择子单元,用于在所述可用缓存服务节点获取子单元获取的可用的缓存服务节点中,根据算法选择一缓存服务节点作为备用缓存服务节点,所述算法包括动态负载分配选择算法和哈希算法或一致性哈希算法。
15.如权利要求14所述的缓存客户端,其特征在于,所述集群中多个缓存服务节点为Active集群配置模式时,所述缓存服务节点选择子单元还用于在所述可用的缓存服务节点获取子单元获取的可用的缓存服务节点中,根据算法选择一缓存服务节点作为主用缓存服务节点。
16.如权利要求12所述的缓存客户端,其特征在于,所述失效标示单元还用于当根据所述结果接收单元接收的操作结果判断所述操作失败时,将所述备用缓存服务节点标示为失效。
CN2009101437363A 2009-05-25 2009-05-25 一种缓存数据的处理方法、处理系统和装置 Active CN101562543B (zh)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CN2009101437363A CN101562543B (zh) 2009-05-25 2009-05-25 一种缓存数据的处理方法、处理系统和装置
HK10102826.4A HK1134727A1 (en) 2009-05-25 2010-03-17 Method for processing data of cache, processing system and apparatus thereof
US12/800,691 US8972773B2 (en) 2009-05-25 2010-05-19 Cache data processing using cache cluster with configurable modes
EP10780917.0A EP2435916B1 (en) 2009-05-25 2010-05-20 Cache data processing using cache cluster with configurable modes
PCT/US2010/001502 WO2010138168A1 (en) 2009-05-25 2010-05-20 Cache data processing using cache cluster with configurable modes
JP2012513037A JP5714571B2 (ja) 2009-05-25 2010-05-20 キャッシュクラスタを構成可能モードで用いるキャッシュデータ処理
US14/578,049 US9317384B2 (en) 2009-05-25 2014-12-19 Cache data processing using cache cluster with configurable modes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101437363A CN101562543B (zh) 2009-05-25 2009-05-25 一种缓存数据的处理方法、处理系统和装置

Publications (2)

Publication Number Publication Date
CN101562543A CN101562543A (zh) 2009-10-21
CN101562543B true CN101562543B (zh) 2013-07-31

Family

ID=41221175

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101437363A Active CN101562543B (zh) 2009-05-25 2009-05-25 一种缓存数据的处理方法、处理系统和装置

Country Status (6)

Country Link
US (2) US8972773B2 (zh)
EP (1) EP2435916B1 (zh)
JP (1) JP5714571B2 (zh)
CN (1) CN101562543B (zh)
HK (1) HK1134727A1 (zh)
WO (1) WO2010138168A1 (zh)

Families Citing this family (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102103544A (zh) * 2009-12-16 2011-06-22 腾讯科技(深圳)有限公司 一种分布式缓存的实现方法及装置
US8898318B2 (en) * 2010-06-03 2014-11-25 Microsoft Corporation Distributed services authorization management
CN102137139A (zh) 2010-09-26 2011-07-27 华为技术有限公司 缓存替换策略的选择方法、装置、代理服务器和系统
US8621151B2 (en) 2010-11-23 2013-12-31 IP Cube Partners (IPC) Co., Ltd. Active memory processor system
US8504778B2 (en) * 2010-11-24 2013-08-06 IP Cube Partners (ICP) Co., Ltd. Multi-core active memory processor system
US8589628B2 (en) 2010-11-29 2013-11-19 IP Cube Partners (ICP) Co., Ltd. Hybrid active memory processor system
CN102739720B (zh) * 2011-04-14 2015-01-28 中兴通讯股份有限公司 分布式缓存服务器系统及其应用方法、缓存客户端
CN102790784A (zh) * 2011-05-18 2012-11-21 阿里巴巴集团控股有限公司 分布式缓存方法及系统、缓存解析方法及解析系统
US8671249B2 (en) * 2011-07-22 2014-03-11 Fusion-Io, Inc. Apparatus, system, and method for managing storage capacity recovery
CN103036920A (zh) * 2011-10-09 2013-04-10 镇江雅迅软件有限责任公司 一种基于自动容错技术的分布式数据传输方法
CN102346779B (zh) * 2011-10-18 2013-07-31 中国联合网络通信集团有限公司 分布式文件系统和主控节点的备份方法
US8984162B1 (en) * 2011-11-02 2015-03-17 Amazon Technologies, Inc. Optimizing performance for routing operations
US9229740B1 (en) 2011-11-02 2016-01-05 Amazon Technologies, Inc. Cache-assisted upload proxy
US8726264B1 (en) 2011-11-02 2014-05-13 Amazon Technologies, Inc. Architecture for incremental deployment
CN103186435B (zh) * 2011-12-28 2015-11-25 英业达股份有限公司 系统错误处理方法与使用该方法的服务器系统
CN104508647B (zh) * 2012-06-08 2018-01-12 慧与发展有限责任合伙企业 用于扩大超大规模计算系统的存储器容量的方法和系统
CN102724314B (zh) * 2012-06-20 2015-08-05 深圳市远行科技有限公司 一种基于元数据管理的分布式缓存客户端
CN102752093B (zh) * 2012-06-29 2016-02-10 中国联合网络通信集团有限公司 基于分布式文件系统的数据处理方法、设备和系统
US9367480B2 (en) 2012-08-07 2016-06-14 Dell Products L.P. System and method for updating data in a cache
US9549037B2 (en) 2012-08-07 2017-01-17 Dell Products L.P. System and method for maintaining solvency within a cache
US9311240B2 (en) 2012-08-07 2016-04-12 Dell Products L.P. Location and relocation of data within a cache
US9852073B2 (en) 2012-08-07 2017-12-26 Dell Products L.P. System and method for data redundancy within a cache
US9495301B2 (en) * 2012-08-07 2016-11-15 Dell Products L.P. System and method for utilizing non-volatile memory in a cache
CN103685351B (zh) * 2012-09-04 2017-03-29 中国移动通信集团公司 一种基于云计算平台的缓存服务节点的调度方法和设备
US9262323B1 (en) 2012-11-26 2016-02-16 Amazon Technologies, Inc. Replication in distributed caching cluster
US9602614B1 (en) 2012-11-26 2017-03-21 Amazon Technologies, Inc. Distributed caching cluster client configuration
US9529772B1 (en) 2012-11-26 2016-12-27 Amazon Technologies, Inc. Distributed caching cluster configuration
US9847907B2 (en) 2012-11-26 2017-12-19 Amazon Technologies, Inc. Distributed caching cluster management
US9152501B2 (en) 2012-12-19 2015-10-06 International Business Machines Corporation Write performance in fault-tolerant clustered storage systems
US9202041B2 (en) * 2013-02-07 2015-12-01 Fairchild Semiconductor Corporation Permanent lockout attack detection
US10334069B2 (en) * 2013-05-10 2019-06-25 Dropbox, Inc. Managing a local cache for an online content-management system
US9330055B2 (en) * 2013-06-04 2016-05-03 International Business Machines Corporation Modular architecture for extreme-scale distributed processing applications
CN104301345B (zh) * 2013-07-17 2018-04-27 阿里巴巴集团控股有限公司 一种Cache集群中删除数据的方法及系统
US9423820B2 (en) 2013-07-31 2016-08-23 Fairchild Semiconductor Corporation Complimentary bit slicing side channel attack defense
US10116762B2 (en) * 2013-08-06 2018-10-30 Walmart Apollo, Llc System and method for storing and processing web service requests
US10419572B2 (en) 2013-08-06 2019-09-17 Walmart Apollo, Llc Caching system and method
US10803015B2 (en) 2013-08-06 2020-10-13 Walmart Apollo, Llc Caching system and method
CN103475520B (zh) * 2013-09-10 2017-04-26 聚好看科技股份有限公司 一种分布式网络中的事务处理控制方法及装置
CN103516556A (zh) * 2013-10-23 2014-01-15 北京国双科技有限公司 分布式系统及其控制方法和装置
US10951522B2 (en) 2013-11-05 2021-03-16 Cisco Technology, Inc. IP-based forwarding of bridged and routed IP packets and unicast ARP
US10778584B2 (en) 2013-11-05 2020-09-15 Cisco Technology, Inc. System and method for multi-path load balancing in network fabrics
US9769078B2 (en) 2013-11-05 2017-09-19 Cisco Technology, Inc. Dynamic flowlet prioritization
US9655232B2 (en) 2013-11-05 2017-05-16 Cisco Technology, Inc. Spanning tree protocol (STP) optimization techniques
US9502111B2 (en) 2013-11-05 2016-11-22 Cisco Technology, Inc. Weighted equal cost multipath routing
US9825857B2 (en) 2013-11-05 2017-11-21 Cisco Technology, Inc. Method for increasing Layer-3 longest prefix match scale
US9674086B2 (en) 2013-11-05 2017-06-06 Cisco Technology, Inc. Work conserving schedular based on ranking
US9374294B1 (en) 2013-11-05 2016-06-21 Cisco Technology, Inc. On-demand learning in overlay networks
US9397946B1 (en) * 2013-11-05 2016-07-19 Cisco Technology, Inc. Forwarding to clusters of service nodes
US9876711B2 (en) 2013-11-05 2018-01-23 Cisco Technology, Inc. Source address translation in overlay networks
US9509092B2 (en) 2013-11-06 2016-11-29 Cisco Technology, Inc. System and apparatus for network device heat management
US20150213045A1 (en) * 2014-01-24 2015-07-30 Alcatel-Lucent Israel Ltd. Methods And Systems For Storing Replicated Data In The Cloud
US10025873B2 (en) 2014-04-18 2018-07-17 Walmart Apollo, Llc System and method for storing and processing database requests
CN103973424B (zh) * 2014-05-22 2017-12-29 网易乐得科技有限公司 缓存系统中的故障解决方法和设备
CN104111829A (zh) * 2014-06-25 2014-10-22 小米科技有限责任公司 数据存储方法及装置
KR102047037B1 (ko) * 2014-06-26 2019-11-20 인텔 코포레이션 로컬 캐시들을 갖는 메모리 캐시형 시스템들
CN104281643A (zh) * 2014-08-12 2015-01-14 广州华多网络科技有限公司 业务数据的存储方法、业务机及存储机
US10116493B2 (en) 2014-11-21 2018-10-30 Cisco Technology, Inc. Recovering from virtual port channel peer failure
CN104517183A (zh) * 2014-12-18 2015-04-15 深圳市燃气集团股份有限公司 基于Oracle EBS系统的库存处理方法及系统
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
CN104636436B (zh) * 2014-12-31 2018-01-23 北京金和软件股份有限公司 一种可配置的分布式缓存系统
CN106156176B (zh) * 2015-04-17 2020-04-24 腾讯科技(深圳)有限公司 一种数据清理方法及装置
US10516752B2 (en) * 2015-06-05 2019-12-24 Apple Inc. Edge caching shared devices
CN105677251B (zh) * 2016-01-05 2018-12-21 上海瀚之友信息技术服务有限公司 基于Redis集群的存储系统
US10437778B2 (en) 2016-02-08 2019-10-08 Bank Of America Corporation Archive validation system with data purge triggering
US10437880B2 (en) 2016-02-08 2019-10-08 Bank Of America Corporation Archive validation system with data purge triggering
US10460296B2 (en) 2016-02-08 2019-10-29 Bank Of America Corporation System for processing data using parameters associated with the data for auto-processing
US9952942B2 (en) 2016-02-12 2018-04-24 Bank Of America Corporation System for distributed data processing with auto-recovery
US10067869B2 (en) * 2016-02-12 2018-09-04 Bank Of America Corporation System for distributed data processing with automatic caching at various system levels
US10142163B2 (en) 2016-03-07 2018-11-27 Cisco Technology, Inc BFD over VxLAN on vPC uplinks
US10333828B2 (en) 2016-05-31 2019-06-25 Cisco Technology, Inc. Bidirectional multicasting over virtual port channel
US10530888B2 (en) 2016-06-01 2020-01-07 Home Box Office, Inc. Cached data expiration and refresh
CN107463468A (zh) * 2016-06-02 2017-12-12 北京京东尚科信息技术有限公司 缓存管理方法及其设备
CN105915644B (zh) * 2016-06-17 2019-12-06 北京汉唐自远技术股份有限公司 一种服务器负载均衡方法
CN106209447B (zh) * 2016-07-07 2019-11-15 深圳市创梦天地科技有限公司 分布式缓存的故障处理方法及装置
US11509501B2 (en) 2016-07-20 2022-11-22 Cisco Technology, Inc. Automatic port verification and policy application for rogue devices
US10193750B2 (en) 2016-09-07 2019-01-29 Cisco Technology, Inc. Managing virtual port channel switch peers from software-defined network controller
US10191824B2 (en) * 2016-10-27 2019-01-29 Mz Ip Holdings, Llc Systems and methods for managing a cluster of cache servers
CN106649555A (zh) * 2016-11-08 2017-05-10 深圳市中博睿存科技有限公司 存储单元状态标记方法及分布式存储系统
US10382552B2 (en) * 2016-12-12 2019-08-13 Verizon Patent And Licensing Inc. User device ad-hoc distributed caching of content
CN108459821B (zh) * 2017-02-21 2022-11-18 中兴通讯股份有限公司 一种数据缓存的方法及装置
CN106603319B (zh) * 2017-03-02 2020-10-09 腾讯科技(深圳)有限公司 一种故障处理的方法、管理服务器以及逻辑服务器
CN106973093B (zh) * 2017-03-23 2019-11-19 北京奇艺世纪科技有限公司 一种服务切换方法和装置
CN108809681A (zh) * 2017-05-04 2018-11-13 华为技术有限公司 一种核查数据一致性的方法、设备和系统
CN107102918B (zh) * 2017-05-26 2020-06-16 苏州浪潮智能科技有限公司 一种数据处理方法和装置
US10547509B2 (en) 2017-06-19 2020-01-28 Cisco Technology, Inc. Validation of a virtual port channel (VPC) endpoint in the network fabric
CN107545053B (zh) * 2017-08-24 2021-01-22 苏州浪潮智能科技有限公司 一种集群系统缓存查询方法及设备
CN109815049B (zh) * 2017-11-21 2021-03-26 北京金山云网络技术有限公司 节点宕机恢复方法、装置、电子设备及存储介质
CN108400885A (zh) * 2018-01-17 2018-08-14 北京奇艺世纪科技有限公司 一种服务可用性检测方法、装置及电子设备
CN112236988B (zh) * 2018-06-06 2022-05-31 华为云计算技术有限公司 云计算中用于控制多租户缓存服务的管理操作和共享内存空间的系统和方法
CN110442420A (zh) * 2019-06-28 2019-11-12 苏州浪潮智能科技有限公司 一种存储节点的工作迁移方法与装置
US10802973B1 (en) 2019-07-01 2020-10-13 Bank Of America Corporation Data access tool
CN111314241B (zh) * 2020-01-17 2024-03-29 新华智云科技有限公司 一种任务调度方法及调度系统
CN111522879B (zh) * 2020-04-16 2023-09-29 北京雷石天地电子技术有限公司 一种基于缓存的数据分发方法和电子设备
CN112104752B (zh) * 2020-11-12 2021-02-26 上海七牛信息技术有限公司 一种内容分发网络缓存节点的热点均衡方法及系统
CN112532525B (zh) * 2020-11-25 2022-11-25 北京金山云网络技术有限公司 设备恢复服务的处理方法、装置和系统
CN112817992B (zh) * 2021-01-29 2023-06-23 北京百度网讯科技有限公司 执行更改任务的方法、装置、电子设备以及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1492348A (zh) * 2002-09-18 2004-04-28 �Ҵ���˾ 自主服务器场和服务器场中的自修复方法
US6782492B1 (en) * 1998-05-11 2004-08-24 Nec Corporation Memory error recovery method in a cluster computer and a cluster computer
CN1567237A (zh) * 2003-06-09 2005-01-19 浪潮电子信息产业股份有限公司 构建高可用分布式存储系统的方法
CN101188569A (zh) * 2006-11-16 2008-05-28 饶大平 在网络上构建数据量子空间的方法及分布式文件存储系统
CN101388759A (zh) * 2007-09-10 2009-03-18 中兴通讯股份有限公司 实现数据的异步复制到同步复制的转换方法和系统

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US746130A (en) * 1903-03-11 1903-12-08 George Washington Mcmillian Saw-handle.
US6038641A (en) * 1988-12-30 2000-03-14 Packard Bell Nec Two stage cache memory system and method
JPH07120296B2 (ja) 1993-06-29 1995-12-20 日本電気株式会社 ホットスタンバイシステムにおけるエラー制御方式
US5896506A (en) 1996-05-31 1999-04-20 International Business Machines Corporation Distributed storage management system having a cache server and method therefor
US5951695A (en) 1997-07-25 1999-09-14 Hewlett-Packard Company Fast database failover
US6470386B1 (en) * 1997-09-26 2002-10-22 Worldcom, Inc. Integrated proxy interface for web based telecommunications management tools
US6188695B1 (en) * 1997-12-18 2001-02-13 Ericsson Inc. System and method for multi-node data synchronization
US6122629A (en) * 1998-04-30 2000-09-19 Compaq Computer Corporation Filesystem data integrity in a single system image environment
US6243795B1 (en) 1998-08-04 2001-06-05 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Redundant, asymmetrically parallel disk cache for a data storage system
US6601187B1 (en) 2000-03-31 2003-07-29 Hewlett-Packard Development Company, L. P. System for data replication using redundant pairs of storage controllers, fibre channel fabrics and links therebetween
US7062567B2 (en) * 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US7188145B2 (en) * 2001-01-12 2007-03-06 Epicrealm Licensing Llc Method and system for dynamic distributed data caching
AU2002243522A1 (en) 2001-01-12 2002-07-24 Epicrealm Operating Inc. Method and system for community data caching
US7035911B2 (en) 2001-01-12 2006-04-25 Epicrealm, Licensing Llc Method and system for community data caching
US6691252B2 (en) 2001-02-23 2004-02-10 Hewlett-Packard Development Company, L.P. Cache test sequence for single-ported row repair CAM
JP2003022259A (ja) 2001-07-06 2003-01-24 Mitsubishi Electric Corp クライアントサーバ制御システム
US7870258B2 (en) * 2001-08-08 2011-01-11 Microsoft Corporation Seamless fail-over support for virtual interface architecture (VIA) or the like
US7120690B1 (en) * 2001-09-27 2006-10-10 Emc Corporation Managing a distributed directory database
US6757790B2 (en) 2002-02-19 2004-06-29 Emc Corporation Distributed, scalable data storage facility with cache memory
US7461147B1 (en) * 2002-08-26 2008-12-02 Netapp. Inc. Node selection within a network based on policy
US7028147B2 (en) * 2002-12-13 2006-04-11 Sun Microsystems, Inc. System and method for efficiently and reliably performing write cache mirroring
US6917967B2 (en) * 2002-12-13 2005-07-12 Sun Microsystems, Inc. System and method for implementing shared memory regions in distributed shared memory systems
JP4107083B2 (ja) * 2002-12-27 2008-06-25 株式会社日立製作所 高可用ディスク制御装置とその障害処理方法及び高可用ディスクサブシステム
JP2004295656A (ja) * 2003-03-27 2004-10-21 Ntt Docomo Inc 通信システム、クライアント装置及びクライアント装置によるサーバ装置の負荷分散方法
US7461130B1 (en) * 2004-11-24 2008-12-02 Sun Microsystems, Inc. Method and apparatus for self-organizing node groups on a network
CA2601767C (en) * 2005-04-01 2012-05-22 Arroyo Video Solutions, Inc. Stream control failover
US20070101186A1 (en) 2005-11-02 2007-05-03 Inventec Corporation Computer platform cache data remote backup processing method and system
JP2007200103A (ja) 2006-01-27 2007-08-09 Nec Corp クライアントサーバシステムおよびリソース制御方法
US8370649B2 (en) * 2006-03-31 2013-02-05 Cisco Technology, Inc. Stream control failover utilizing an attribute-dependent protection mechanism
US20070260939A1 (en) 2006-04-21 2007-11-08 Honeywell International Inc. Error filtering in fault tolerant computing systems
US7395390B2 (en) 2006-07-12 2008-07-01 Inventec Corporation System for backing up cache memory in a double backup server structure
US20080091895A1 (en) 2006-10-11 2008-04-17 Inventec Corporation Cache data backup method and system for computer clustering systems
US20080172679A1 (en) * 2007-01-11 2008-07-17 Jinmei Shen Managing Client-Server Requests/Responses for Failover Memory Managment in High-Availability Systems
JP4669487B2 (ja) 2007-03-02 2011-04-13 株式会社日立製作所 情報処理システムの運用管理装置および運用管理方法
JP2008269462A (ja) * 2007-04-24 2008-11-06 Hitachi Ltd ノードの管理装置及び方法
US8069145B2 (en) * 2007-08-30 2011-11-29 Red Hat, Inc. Data gravitation
JP2009098715A (ja) 2007-10-12 2009-05-07 Nec Corp 冗長システム装置並びに冗長システム装置におけるジョブの実行方法及び実行プログラム
US8316113B2 (en) 2008-12-19 2012-11-20 Watchguard Technologies, Inc. Cluster architecture and configuration for network security devices
US8161244B2 (en) * 2009-05-13 2012-04-17 Microsoft Corporation Multiple cache directories
US8108612B2 (en) * 2009-05-15 2012-01-31 Microsoft Corporation Location updates for a distributed data store
JP4936088B2 (ja) * 2010-03-15 2012-05-23 日本電気株式会社 ディスクアレイ装置、ディスクアレイシステム、及びキャッシュ制御方法
US8874961B2 (en) * 2010-03-22 2014-10-28 Infosys Limited Method and system for automatic failover of distributed query processing using distributed shared memory
US8666939B2 (en) * 2010-06-28 2014-03-04 Sandisk Enterprise Ip Llc Approaches for the replication of write sets
US8726264B1 (en) * 2011-11-02 2014-05-13 Amazon Technologies, Inc. Architecture for incremental deployment
US9235519B2 (en) * 2012-07-30 2016-01-12 Futurewei Technologies, Inc. Method for peer to peer cache forwarding
US20140082129A1 (en) * 2012-09-18 2014-03-20 Netapp, Inc. System and method for managing a system of appliances that are attached to a networked file system
US9619404B2 (en) * 2013-04-16 2017-04-11 International Business Machines Corporation Backup cache with immediate availability

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6782492B1 (en) * 1998-05-11 2004-08-24 Nec Corporation Memory error recovery method in a cluster computer and a cluster computer
CN1492348A (zh) * 2002-09-18 2004-04-28 �Ҵ���˾ 自主服务器场和服务器场中的自修复方法
CN1567237A (zh) * 2003-06-09 2005-01-19 浪潮电子信息产业股份有限公司 构建高可用分布式存储系统的方法
CN101188569A (zh) * 2006-11-16 2008-05-28 饶大平 在网络上构建数据量子空间的方法及分布式文件存储系统
CN101388759A (zh) * 2007-09-10 2009-03-18 中兴通讯股份有限公司 实现数据的异步复制到同步复制的转换方法和系统

Also Published As

Publication number Publication date
US20100299553A1 (en) 2010-11-25
WO2010138168A1 (en) 2010-12-02
US20150169421A1 (en) 2015-06-18
US9317384B2 (en) 2016-04-19
EP2435916A4 (en) 2017-06-21
EP2435916A1 (en) 2012-04-04
JP5714571B2 (ja) 2015-05-07
EP2435916B1 (en) 2019-03-20
CN101562543A (zh) 2009-10-21
JP2012528382A (ja) 2012-11-12
HK1134727A1 (en) 2010-05-07
US8972773B2 (en) 2015-03-03

Similar Documents

Publication Publication Date Title
CN101562543B (zh) 一种缓存数据的处理方法、处理系统和装置
CN106170777B (zh) 降低基于块的存储的数据卷耐久性状态的方法
US9395933B2 (en) Distributed storage system, distributed storage method, and program and storage node for distributed storage
US20170329528A1 (en) Efficient data volume replication for block-based storage
CN102591741B (zh) 使用可缩放虚拟容量实现灾难恢复的方法和系统
CN111368002A (zh) 一种数据处理方法、系统、计算机设备和存储介质
CN101808127B (zh) 数据备份方法、系统和服务器
KR101871383B1 (ko) 계층적 데이터 구조의 노드 상에서 재귀적 이벤트 리스너를 사용하기 위한 방법 및 시스템
AU2009223346A1 (en) Web-based multiuser collaboration
CN111130835A (zh) 数据中心双活系统、切换方法、装置、设备及介质
CN104252466A (zh) 流计算处理方法、设备和系统
CN110287151B (zh) 分布式存储系统、数据写入方法、装置和存储介质
CN104202423A (zh) 一种通过软件架构扩展缓存的系统
CN105493474A (zh) 用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法
CN112130758B (zh) 一种数据读请求的处理方法、系统、电子设备及存储介质
CN104202424A (zh) 一种使用软件架构扩展缓存的方法
CN109165112B (zh) 一种元数据集群的故障恢复方法、系统及相关组件
CN105069152A (zh) 数据处理方法及装置
TWI484335B (zh) Cached data processing method, processing system, and means
CN114625566A (zh) 数据容灾方法、装置、电子设备及存储介质
CN113326006A (zh) 一种基于纠删码的分布式块存储系统
CN110651262B (zh) 分层分布式存储系统以及用于边缘计算系统的技术
CN115238006A (zh) 检索数据同步方法、装置、设备及计算机存储介质
CN109669814A (zh) 一种元数据服务的恢复方法、装置、设备及可读存储介质
CN110636091A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1134727

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1134727

Country of ref document: HK

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211108

Address after: Room 554, floor 5, building 3, No. 969, Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province

Patentee after: TAOBAO (CHINA) SOFTWARE CO.,LTD.

Address before: Cayman Islands Grand Cayman capital building, a four storey No. 847 mailbox

Patentee before: ALIBABA GROUP HOLDING Ltd.