CN104283956A - 强一致性分布式数据存储方法、装置及系统 - Google Patents

强一致性分布式数据存储方法、装置及系统 Download PDF

Info

Publication number
CN104283956A
CN104283956A CN201410525002.2A CN201410525002A CN104283956A CN 104283956 A CN104283956 A CN 104283956A CN 201410525002 A CN201410525002 A CN 201410525002A CN 104283956 A CN104283956 A CN 104283956A
Authority
CN
China
Prior art keywords
data
seq
zookeeper
key values
new
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
Application number
CN201410525002.2A
Other languages
English (en)
Other versions
CN104283956B (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.)
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201410525002.2A priority Critical patent/CN104283956B/zh
Publication of CN104283956A publication Critical patent/CN104283956A/zh
Application granted granted Critical
Publication of CN104283956B publication Critical patent/CN104283956B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供一种强一致性分布式数据存储方法、装置及系统,方法包括:缓存服务器接收客户端发送的数据写请求,数据写请求中包括数据键值以及数据操作命令;缓存服务器由zookeeper服务器集群中获取与数据键值对应的自增序列号;缓存服务器计算自增序列号与缓存数据序列号之间的差值,判断差值是否大于预定阈值,如果否,则根据数据操作命令直接对与缓存数据进行处理,如果是,则向zookeeper服务器集群获取与数据键值对应的最新有效数据,并将缓存数据更新为最新有效数据,根据数据操作命令对最新有效数据进行处理;以及缓存服务器将处理后的数据写入zookeeper服务器集群。本发明能够在不影响Zookeeper写操作性能的情况下,提供强一致性缓存,保证数据写入的正确性。

Description

强一致性分布式数据存储方法、装置及系统
技术领域
本发明涉及计算机互联网技术,尤其涉及一种强一致性分布式数据存储方法、装置及系统。
背景技术
Zookeeper是一种分布式的协调服务,为分布式应用程序提供各种服务,包括配置维护、名字服务(Name Service)、分布式同步、组服务等。
如图1所示,Zookeeper是一个由众多服务器节点组成的集群。在Zookeeper中,每一个节点都被称为Znode。Znode维护着节点用户数据、父节点和子节点集合以及本节点状态等。这些节点又分为主节点(leader节点)和从节点(follower节点)。Zookeeper会保证客户端(client)对Znode的操作是顺序一致性的。
在Zookeeper中,对数据的写操作,会由follower节点转给leader节点,然后由leader节点将请求广播给所有的follower节点,leader节点收到一半以上follower节点的确认(Ack)后,就会认为写操作成功了,leader节点会向所有follower节点发送commit信令,并通知客户端写操作成功。但是,在对数据进行读操作时,可以从任意一个节点读取,基于上述的写操作过程,可以看出,在Zookeeper中,并不能保证从每个follower节点读取的数据都是最新的有效数据,因此,Zookeeper对于读操作只提供最终一致性服务。
在基于Zookeeper的名字服务中,往往会涉及到append写操作,典型的append写操作可以由以下步骤组成:1.从存储里读取数据到本地,2.在本地对数据做append操作,3.将进行append操作后的数据从本地写回到存储中。在非强一致性分布式存储系统里,如果第1步中读取到数据不是最新的有效数据,则基于此结果进行append操作,很有可能导致写回到存储的数据是错误的,也就是说无法提供强一致性服务(强一致性,指的是任何时刻任何请求都可以从系统中获取到最近一次成功更新的数据或者读不到有效数据)。
对于强一致性的解决方案,业界都有一些存储系统可以提供。目前业界提供的强一致性系统,都是针对特定场景额外提供的存储系统,但是额外提供强一致性存储服务会导致系统架构很冗余。
发明内容
有鉴于此,本发明实施例提供一种基于Zookeeper的强一致性分布式数据存储方法、装置及系统,可以保证写入数据的准确性。
本发明第一实施例提出一种强一致性分布式数据存储方法,包括:缓存服务器接收客户端发送的数据写请求,所述数据写请求中包括数据键值以及数据操作命令,所述缓存服务器中包括与所述数据键值对应的缓存数据以及对应的缓存数据序列号c_seq;所述缓存服务器由Zookeeper服务器集群中获取与所述数据键值对应的自增序列号new_seq,所述自增序列号new_seq为所述Zookeeper服务器集群针对所述数据写请求为所述数据键值创建的最新序列号;所述缓存服务器计算所述自增序列号new_seq与所述缓存数据序列号c_seq之间的差值new_seq-c_seq,判断所述差值new_seq-c_seq是否大于预定阈值,如果否,则根据所述数据操作命令直接对与所述缓存数据进行处理,如果是,则向所述Zookeeper服务器集群获取与所述数据键值对应的最新有效数据,并将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理;以及所述缓存服务器将处理后的数据写入所述Zookeeper服务器集群。
本发明第二实施例还提出一种强一致性分布式数据存储方法,包括:客户端向缓存服务器发送数据写请求,所述数据写请求中包括数据键值以及数据操作命令;缓存服务器根据所述数据写请求向Zookeeper服务器集群发送第一获取请求,用于获取与所述数据键值对应的自增序列号new_seq,所述缓存服务器中存储有与所述数据键值对应的缓存数据以及缓存数据序列号c_seq;所述Zookeeper服务器集群根据所述第一获取请求,向所述缓存服务器返回与所述数据键值对应的自增序列号new_seq,所述自增序列号new_seq为所述Zookeeper服务器集群针对所述数据写请求为所述数据键值创建的最新序列号;所述缓存服务器计算所述自增序列号new_seq与所述缓存数据序列号c_seq之间的差值new_seq-c_seq,判断所述差值new_seq-c_seq是否大于预定阈值,如果否,则所述缓存服务器根据所述数据操作命令直接对与所述缓存数据进行处理,如果是,则所述缓存服务器向所述Zookeeper服务器集群获取与所述数据键值对应的最新有效数据,并将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理;以及所述缓存服务器将处理后的数据写入所述Zookeeper服务器集群。
本发明第三实施例提出一种强一致性分布式数据存储装置,运行于缓存服务器,所述装置包括:请求接收模块,用于接收客户端发送的数据写请求,所述数据写请求中包括数据键值以及数据操作命令;数据缓存模块,用于存储与所述数据键值对应的缓存数据以及对应的缓存数据序列号c_seq;数据获取模块,用于由Zookeeper服务器集群中获取与所述数据键值对应的自增序列号new_seq,所述自增序列号new_seq为所述Zookeeper服务器集群针对所述数据写请求为所述数据键值创建的最新序列号;数据处理模块,用于计算所述自增序列号new_seq与所述缓存数据序列号c_seq之间的差值new_seq-c_seq,判断所述差值new_seq-c_seq是否大于预定阈值,如果否,则根据所述数据操作命令直接对与所述缓存数据进行处理;所述数据获取模块还用于,如果所述差值new_seq-c_seq大于预定阈值,向所述Zookeeper服务器集群获取与所述数据键值对应的最新有效数据;所述数据处理模块还用于将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理;以及数据写入模块,用于将处理后的数据写入所述Zookeeper服务器集群。
本发明第四实施例提出一种强一致性分布式数据存储系统,所述系统可以包括客户端、缓存服务器以及Zookeeper服务器集群,所述客户端用于向所述缓存服务器发送数据写请求,所述数据写请求中包括数据键值以及数据操作命令;所述缓存服务器中存储有与所述数据键值对应的缓存数据以及缓存数据序列号c_seq,所述缓存服务器用于,根据所述数据写请求向Zookeeper服务器集群发送第一获取请求,用于获取与所述数据键值对应的自增序列号new_seq;所述Zookeeper服务器集群用于,根据所述第一获取请求,向所述缓存服务器返回与所述数据键值对应的自增序列号new_seq,所述自增序列号new_seq为所述Zookeeper服务器集群针对所述数据写请求为所述数据键值创建的最新序列号;所述缓存服务器还用于,计算所述自增序列号new_seq与所述缓存数据序列号c_seq之间的差值new_seq-c_seq,判断所述差值new_seq-c_seq是否大于预定阈值,如果否,则所述缓存服务器根据所述数据操作命令直接对与所述缓存数据进行处理,如果是,则所述缓存服务器向所述Zookeeper服务器集群获取与所述数据键值对应的最新有效数据,并将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理,并将处理后的数据写入所述Zookeeper服务器集群。强一致性分布式数据存储装置强一致性分布式数据存储装置
相对于现有技术,本发明各实施例提出的强一致性分布式数据存储方法、装置及系统,利用Zookeeper中与数据键值对应的序列号来判断缓存服务器中所缓存的数据是否为最新的数据,如果是,则可以直接对其进行处理,如果不是,则向Zookeeper服务器集群读取、更新数据,然后对更新后的数据进行处理后再写入Zookeeper服务器集群,借此,在保持Zookeeper写操作性能不变的情况下,利用序列号,提供强一致性缓存,保证数据写入的正确性。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
图1为现有的Zookeeper的应用环境示意图。
图2为本发明实施例提供的强一致性分布式数据存储方法的应用环境图。
图3为本发明第一实施例提供的强一致性分布式数据存储方法的流程图。
图4为图3中部分流程的具体流程图。
图5为本发明第二实施例提供的强一致性分布式数据存储方法的流程图。
图6为图5中部分流程的具体流程图。
图7为本发明第二实施例中一个具体示例的时序图。
图8为本发明第三实施例提供的强一致性分布式数据存储装置的结构框图。
图9为本发明第四实施例提供的强一致性分布式数据存储装置的结构框图。
具体实施方式
为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如后。
图2所示为本发明实施例提供的强一致性分布式数据存储方法的应用环境图,请参照图2,本发明提供的系统10可以包括客户端101、缓存服务器102、Zookeeper服务器集群103。
Zookeeper服务器集群103在本系统10里为服务器配置信息提供存储服务。本系统10在Zookeeper服务器集群103的前端引入缓存服务器(cachesvr)102。缓存服务器102会监听客户端101向服务器端发出的请求,并保存服务器端的回应,例如数据、结果等。
客户端101写入数据时,缓存服务器102会接收客户端的数据写请求,每次进行数据写入前,缓存服务器102都会与Zookeeper服务器集群103进行数据交互,从Zookeeper服务器集群103读取、更新数据,结合客户端101的请求,更新本地缓存数据、处理数据,再将处理后的数据写回到Zookeeper服务器集群103。客户端101与缓存服务器102以及Zookeeper服务器集群103之间的网络通信是基于TCP协议,TCP保证了Client/Server之间传输包的顺序,另外,Zookeeper服务器集群103执行客户端请求也是严格按照FIFO(first in first out)顺序的。
Zookeeper服务器集群103中,为了保证数据写入的顺序性,可以在每次写入数据前,针对每个数据键值(key-value),生成对应的序列号(seq No.),该数据键值对应的数据每写入一次,序列号就会自增一次,生成自增序列号,由于生成序列号是写操作,写操作必须经过Zookeeper的leader节点,因此自增序列号必然是最新的。于本发明的实施例中,在数据还未写入时,先生成自增序列号new_seq,即先自增,生成的这个自增序列号new_seq对应于待写入的数据,这个自增序列号new_seq之前的序列号对应于之前已写入的最新数据。
本发明的主要思路是利用Zookeeper中与数据键值对应的序列号来判断缓存服务器102中所缓存的数据是否为最新的数据,如果是,则可以直接对其进行处理,如果不是,则向Zookeeper服务器集群103读取、更新数据,然后对更新后的数据进行处理后再写入Zookeeper服务器集群103,借此,在保持Zookeeper写操作性能不变的情况下,利用序列号,提供强一致性缓存,保证数据写入的正确性。另外,本方案直接在Zookeeper服务器集群的前端引入缓存服务器,不需要额外提供存储系统,系统架构简单。
第一实施例
请参见图3,为本发明第一实施例提供的强一致性分布式数据存储方法的流程图;本实施例为缓存服务器所执行的强一致性分布式数据存储方法,包括以下步骤:
步骤S11,缓存服务器接收客户端发送的数据写请求,所述数据写请求中包括数据键值以及数据操作命令,所述缓存服务器中包括与所述数据键值对应的缓存数据以及对应的缓存数据序列号c_seq。
步骤S12,所述缓存服务器由Zookeeper服务器集群中获取与所述数据键值对应的自增序列号new_seq,所述自增序列号new_seq为所述Zookeeper服务器集群针对所述数据写请求为所述数据键值创建的最新序列号。
步骤S13,所述缓存服务器计算所述自增序列号new_seq与所述缓存数据序列号c_seq之间的差值new_seq-c_seq,判断所述差值new_seq-c_seq是否大于预定阈值,如果否,则根据所述数据操作命令直接对与所述缓存数据进行处理,如果是,则向所述Zookeeper服务器集群获取与所述数据键值对应的最新有效数据,并将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理。
请参照图4,进一步的,所述向所述Zookeeper服务器集群获取与所述数据键值对应的最新有效数据,并将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理的步骤可以包括:
步骤S131,所述缓存服务器向所述Zookeeper服务器集群获取与所述数据键值对应的最新数据zk_data以及对应的最新数据序列号z_seq;
步骤S132,所述缓存服务器计算所述自增序列号new_seq与所述最新数据序列号z_seq之间的差值new_seq-z_seq;
步骤S133,判断所述差值new_seq-z_seq是否大于所述预定阈值,
步骤S134,如果否,则确定所述最新数据zk_data为最新有效数据,将所述缓存数据更新为所述最新数据zk_data,根据所述数据操作命令对所述最新数据zk_data进行处理;
步骤S135,如果是,则所述缓存服务器向所述Zookeeper服务器集群发送数据同步指令,以使所述Zookeeper服务器集群将与所述数据键值对应的数据同步为最新有效数据,所述缓存服务器向所述Zookeeper服务器集群获取同步后的最新有效数据,所述缓存服务器将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理。
步骤S14,所述缓存服务器将处理后的数据写入所述Zookeeper服务器集群。
进一步的,Zookeeper服务器集群还可以向缓存服务器返回写入结果,缓存服务器可以向客户端返回操作结果。
本实施例提供的强一致性分布式数据存储方法,利用Zookeeper中与数据键值对应的序列号来判断缓存服务器中所缓存的数据是否为最新的数据,如果是,则可以直接对其进行处理,如果不是,则向Zookeeper服务器集群读取、更新数据,然后对更新后的数据进行处理后再写入Zookeeper服务器集群,借此,在保持Zookeeper写操作性能不变的情况下,利用序列号,提供强一致性缓存,保证数据写入的正确性。
第二实施例
图5为本发明第二实施例提供的强一致性分布式数据存储方法的流程图;本实施例为系统所执行的强一致性分布式数据存储方法,包括以下步骤:
步骤S21,客户端向缓存服务器发送数据写请求,所述数据写请求中包括数据键值以及数据操作命令。
步骤S22,缓存服务器根据所述数据写请求向Zookeeper服务器集群发送第一获取请求,用于获取与所述数据键值对应的自增序列号new_seq,所述缓存服务器中存储有与所述数据键值对应的缓存数据以及缓存数据序列号c_seq。
步骤S23,所述Zookeeper服务器集群根据所述第一获取请求,向所述缓存服务器返回与所述数据键值对应的自增序列号new_seq,所述自增序列号new_seq为所述Zookeeper服务器集群针对所述数据写请求为所述数据键值创建的最新序列号。
步骤S24,所述缓存服务器计算所述自增序列号new_seq与所述缓存数据序列号c_seq之间的差值new_seq-c_seq,判断所述差值new_seq-c_seq是否大于预定阈值,如果否,则所述缓存服务器根据所述数据操作命令直接对与所述缓存数据进行处理,如果是,则所述缓存服务器向所述Zookeeper服务器集群获取与所述数据键值对应的最新有效数据,并将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理。
请参照图6,进一步的,所述缓存服务器向所述Zookeeper服务器集群获取与所述数据键值对应的最新有效数据,并将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理的步骤可以包括:
步骤S241,所述缓存服务器向所述Zookeeper服务器集群发送第二获取请求,用于获取与所述数据键值对应的最新数据zk_data以及对应的最新数据序列号z_seq;
步骤S242,所述Zookeeper服务器集群返回与所述数据键值对应的最新数据zk_data以及对应的最新数据序列号z_seq;
步骤S243,所述缓存服务器计算所述自增序列号new_seq与所述最新数据序列号z_seq之间的差值new_seq-z_seq;
步骤S244,判断所述差值new_seq-z_seq是否大于所述预定阈值,
步骤S245,如果否,则所述缓存服务器确定所述最新数据zk_data为最新有效数据,将所述缓存数据更新为所述最新数据zk_data,根据所述数据操作命令对所述最新数据zk_data进行处理,
步骤S246,如果是,则所述缓存服务器向所述Zookeeper服务器集群发送数据同步指令,所述Zookeeper服务器集群根据所述数据同步信号将与所述数据键值对应的数据同步为最新有效数据,所述缓存服务器向所述Zookeeper服务器集群发送第三获取请求,用于获取同步后的最新有效数据,所述Zookeeper服务器集群向所述缓存服务器返回所述最新有效数据,所述缓存服务器将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理。
步骤S25,所述缓存服务器将处理后的数据写入所述Zookeeper服务器集群。
下面将结合图7,以客户端向缓存服务器发送数据Append写操作请求为例,对本发明进行更详细的说明。
请参照图7,当客户端向Cache服务器发送append写请求(append writerequest)时,缓存服务器会向Zookeeper服务器集群发送第一获取请求,第一获取请求中携带有append写请求中的数据键值key,第一获取请求向Zookeeper服务器集群获取与该数据键值key对应的自增序列号new_seq。当Cache服务器接收到Zookeeper服务器返回的自增序列号new_seq,会计算自增序列号new_seq与本地所存储的序列号c_seq之间的差值new_seq-c_seq,由于自增序列号new_seq对于每次操作都会在自增一次,因此,因此,new_seq-c_seq的结果可能是1或大于1,根据new_seq-c_seq的结果,可能会出现以下几种场景。
场景一:如果new_seq-c_seq==1,说明cache服务器中所存储的对应于该数据键值key的数据c_data已经是最新有效数据,此时,cache服务器只要将本地序列号c_seq更新为new_seq,对本地缓存的数据c_data进行append操作,并将本地数据c_data更新为append操作后的数据,然后将append操作后得到的数据写回Zookeeper服务器集群即可。
场景二:如果new_seq-c_seq>1,说明cache服务器中所存储的对应于该数据键值key的数据c_data并不是最新有效数据,此时,cache服务器会向Zookeeper发送第二获取请求,获取与该数据键值key对应的最新数据zk_data以及对应的最新数据序列号z_seq。由于在Zookeeper中,并不能保证从每个节点读取的数据都是最新的有效数据,因此,当cache服务器接收到zk_data及z_seq时,还要进一步判断zk_data是否是最新的有效数据。也就是要判断new_seq-z_seq是否等于1。根据new_seq-z_seq的结果,可能会出现以下几种场景。
场景三:new_seq-c_seq>1,且new_seq-z_seq==1,则说明从Zookeeper服务器集群读到的是最新有效数据,可以直接使用zk_data进行数据更新,将本地序列号c_seq更新为new_seq,对Zookeeper服务器集群返回的数据zk_data进行append操作,并将本地数据c_data更新为对zk_data进行append操作后的数据,然后将append操作后得到的数据写回Zookeeper服务器集群。
场景四:如果new_seq-c_seq>1,且new_seq-z_seq>1,则说明从Zookeeper服务器集群读到的并不是最新有效数据,此时需要使用sync接口让Zookeeper服务器集群中的follower节点从集群里更新到最新有效数据,再向Zookeeper服务器集群发送第三获取请求,获取同步后的最新有效数据zk_data'以及对应的序列号z_seq'。sync接口是zookeeper提供的java版本的接口。Cache服务器获取到最新的数据zk_data'后,为了代码级别的可靠性,还是会判断new_seq-z_seq'的差值是否为1,一般此时一定是1的。如果不为1,Cache服务器会记录异常并上报,同时返回客户端写入失败,且更新z_seq、c_seq为new_seq的值。如果new_seq-z_seq'的差值为1,Cache服务器对Zookeeper服务器集群返回的数据zk_data'进行append操作,并将本地数据c_data更新为对zk_data'进行append操作后的数据,然后将append操作后得到的数据写回Zookeeper服务器集群。
由于从Zookeeper服务器集群读取到不一致数据并不是常态,只有少量场景需要强制sync数据,因此本发明实施例提出的技术方案在性能上与普通的基于Zookeeper做append写操作的性能相当,但是可以提供强一致性服务,保证关键数据的写入正确性。
本发明实施例还提供了一种计算机存储介质,所述计算机存储介质存储有程序,该程序执行包括图2至图7任一实施例所示方法的全部或部分步骤。
第三实施例
请参见图8,为本发明第三实施例提供的强一致性分布式数据存储装置的结构示意图;本实施例提供的装置可运行于缓存服务器,所述强一致性分布式数据存储装置30可以包括:请求接收模块31、数据缓存模块32、数据获取模块33、数据处理模块34、数据写入模块35、数据同步模块36。
其中,请求接收模块31,用于接收客户端发送的数据写请求,所述数据写请求中包括数据键值以及数据操作命令;
数据缓存模块32,用于存储与所述数据键值对应的缓存数据以及对应的缓存数据序列号c_seq;
数据获取模块33,用于由Zookeeper服务器集群中获取与所述数据键值对应的自增序列号new_seq,所述自增序列号new_seq为所述Zookeeper服务器集群针对所述数据写请求为所述数据键值创建的最新序列号;
数据处理模块34,用于计算所述自增序列号new_seq与所述缓存数据序列号c_seq之间的差值new_seq-c_seq,判断所述差值new_seq-c_seq是否大于预定阈值,如果否,则根据所述数据操作命令直接对与所述缓存数据进行处理;
所述数据获取模块33还用于,如果所述差值new_seq-c_seq大于预定阈值,向所述Zookeeper服务器集群获取与所述数据键值对应的最新有效数据;
所述数据处理模块34还用于将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理;以及
数据写入模块35,用于将处理后的数据写入所述Zookeeper服务器集群。
如果所述差值new_seq-c_seq大于预定阈值,所述数据获取模块33还用于向所述Zookeeper服务器集群获取与所述数据键值对应的最新数据zk_data以及对应的最新数据序列号z_seq;所述数据处理模块34还用于计算所述自增序列号new_seq与所述最新数据序列号z_seq之间的差值new_seq-z_seq,判断所述差值new_seq-z_seq是否大于所述预定阈值。
如果否,则确定所述最新数据zk_data为最新有效数据,将所述缓存数据更新为所述最新数据zk_data,根据所述数据操作命令对所述最新数据zk_data进行处理,数据同步模块36向所述Zookeeper服务器集群发送数据同步指令,以使所述Zookeeper服务器集群将与所述数据键值对应的数据同步为最新有效数据,所述数据获取模块33还用于向所述Zookeeper服务器集群获取同步后的最新有效数据,所述数据处理模块34还用于将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理。
优选的,所述预定阈值为1。
所述数据操作命令例如可以为append写操作命令,如果数据操作命令为append写操作命令,所述数据处理模块34还用于对所述最新有效数据进行append操作。
以上各模块可以是由软件代码实现,此时,上述的各模块可存储于缓存服务器的存储器内。以上各模块同样可以由硬件例如集成电路芯片实现。
本实施例对强一致性分布式数据存储装置30的各功能模块实现各自功能的具体过程,请参见上述图2至图7所示实施例中描述的具体内容,此处不再赘述。
本实施例提供的强一致性分布式数据存储装置,利用Zookeeper中与数据键值对应的序列号来判断本地所缓存的数据是否为最新的数据,如果是,则可以直接对其进行处理,如果不是,则向Zookeeper服务器集群读取、更新数据,然后对更新后的数据进行处理后再写入Zookeeper服务器集群,借此,在保持Zookeeper写操作性能不变的情况下,利用序列号,提供强一致性缓存,保证数据写入的正确性。
第四实施例
请参见图9,为本发明第四实施例提供的强一致性分布式数据存储系统的结构示意图;本实施例提供的系统40可以包括:客户端41、缓存服务器42以及Zookeeper服务器集群43。其中,
所述客户端41用于向所述缓存服务器42发送数据写请求,所述数据写请求中包括数据键值以及数据操作命令;
所述缓存服务器42中存储有与所述数据键值对应的缓存数据以及缓存数据序列号c_seq,所述缓存服务器用于,根据所述数据写请求向Zookeeper服务器集群43发送第一获取请求,用于获取与所述数据键值对应的自增序列号new_seq;
所述Zookeeper服务器集群43用于,根据所述第一获取请求,向所述缓存服务器42返回与所述数据键值对应的自增序列号new_seq,所述自增序列号new_seq为所述Zookeeper服务器集群43针对所述数据写请求为所述数据键值创建的最新序列号;
所述缓存服务器42还用于,计算所述自增序列号new_seq与所述缓存数据序列号c_seq之间的差值new_seq-c_seq,判断所述差值new_seq-c_seq是否大于预定阈值,如果否,则所述缓存服务器42根据所述数据操作命令直接对与所述缓存数据进行处理,如果是,则所述缓存服务器42向所述Zookeeper服务器集群43获取与所述数据键值对应的最新有效数据,并将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理,并将处理后的数据写入所述Zookeeper服务器集群43。
进一步的,如果所述差值new_seq-c_seq大于预定阈值,所述缓存服务器42还用于向所述Zookeeper服务器集群43发送第二获取请求,用于获取与所述数据键值对应的最新数据zk_data以及对应的最新数据序列号z_seq;所述Zookeeper服务器集群42还用于返回与所述数据键值对应的最新数据zk_data以及对应的最新数据序列号z_seq;所述缓存服务器42还用于计算所述自增序列号new_seq与所述最新数据序列号z_seq之间的差值new_seq-z_seq,判断所述差值new_seq-z_seq是否大于所述预定阈值,如果否,则所述缓存服务器42确定所述最新数据zk_data为最新有效数据,将所述缓存数据更新为所述最新数据zk_data,根据所述数据操作命令对所述最新数据zk_data进行处理,如果是,则所述缓存服务器42还用于向所述Zookeeper服务器集群43发送数据同步指令,所述Zookeeper服务器集群42还根据所述数据同步信号将与所述数据键值对应的数据同步为最新有效数据,所述缓存服务器42还用于向所述Zookeeper服务器集群43发送第三获取请求,用于获取同步后的最新有效数据,所述Zookeeper服务器集群43还向所述缓存服务器42返回所述最新有效数据,所述缓存服务器42将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理。
优选的,所述预定阈值为1。
所述数据操作命令可以为append写操作命令,如果所述数据操作命令为append写操作命令,所述缓存服务器42还用于对所述最新有效数据进行append操作。
本实施例对强一致性分布式数据存储装置40的各功能模块实现各自功能的具体过程,请参见上述图2至图7所示实施例中描述的具体内容,此处不再赘述。
本实施例提供的强一致性分布式数据存储系统,利用Zookeeper中与数据键值对应的序列号来判断缓存服务器中所缓存的数据是否为最新的数据,如果是,则可以直接对其进行处理,如果不是,则向Zookeeper服务器集群读取、更新数据,然后对更新后的数据进行处理后再写入Zookeeper服务器集群,借此,在保持Zookeeper写操作性能不变的情况下,利用序列号,提供强一致性缓存,保证数据写入的正确性。另外,本方案直接在Zookeeper服务器集群的前端引入缓存服务器,不需要额外提供存储系统,系统架构简单。
需要说明的是,本发明实施例的系统中各设备的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,在此不赘述。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (12)

1.一种强一致性分布式数据存储方法,其特征在于,包括:
缓存服务器接收客户端发送的数据写请求,所述数据写请求中包括数据键值以及数据操作命令,所述缓存服务器中包括与所述数据键值对应的缓存数据以及对应的缓存数据序列号c_seq;
所述缓存服务器由Zookeeper服务器集群中获取与所述数据键值对应的自增序列号new_seq,所述自增序列号new_seq为所述Zookeeper服务器集群针对所述数据写请求为所述数据键值创建的最新序列号;
所述缓存服务器计算所述自增序列号new_seq与所述缓存数据序列号c_seq之间的差值new_seq-c_seq,判断所述差值new_seq-c_seq是否大于预定阈值,如果否,则根据所述数据操作命令直接对与所述缓存数据进行处理,如果是,则向所述Zookeeper服务器集群获取与所述数据键值对应的最新有效数据,并将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理;以及
所述缓存服务器将处理后的数据写入所述Zookeeper服务器集群。
2.如权利要求1所述的方法,其特征在于,所述向所述Zookeeper服务器集群获取与所述数据键值对应的最新有效数据,并将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理的步骤包括:
所述缓存服务器向所述Zookeeper服务器集群获取与所述数据键值对应的最新数据zk_data以及对应的最新数据序列号z_seq;
所述缓存服务器计算所述自增序列号new_seq与所述最新数据序列号z_seq之间的差值new_seq-z_seq,判断所述差值new_seq-z_seq是否大于所述预定阈值,
如果否,则确定所述最新数据zk_data为最新有效数据,将所述缓存数据更新为所述最新数据zk_data,根据所述数据操作命令对所述最新数据zk_data进行处理,
如果是,则所述缓存服务器向所述Zookeeper服务器集群发送数据同步指令,以使所述Zookeeper服务器集群将与所述数据键值对应的数据同步为最新有效数据,所述缓存服务器向所述Zookeeper服务器集群获取同步后的最新有效数据,所述缓存服务器将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理。
3.如权利要求1所述的方法,其特征在于,所述预定阈值为1。
4.如权利要求1或2所述的方法,其特征在于,所述数据操作命令为append写操作命令,所述对所述最新有效数据进行处理的步骤包括:对所述最新有效数据进行append操作。
5.一种强一致性分布式数据存储方法,其特征在于,包括:
客户端向缓存服务器发送数据写请求,所述数据写请求中包括数据键值以及数据操作命令;
缓存服务器根据所述数据写请求向Zookeeper服务器集群发送第一获取请求,用于获取与所述数据键值对应的自增序列号new_seq,所述缓存服务器中存储有与所述数据键值对应的缓存数据以及缓存数据序列号c_seq;
所述Zookeeper服务器集群根据所述第一获取请求,向所述缓存服务器返回与所述数据键值对应的自增序列号new_seq,所述自增序列号new_seq为所述Zookeeper服务器集群针对所述数据写请求为所述数据键值创建的最新序列号;
所述缓存服务器计算所述自增序列号new_seq与所述缓存数据序列号c_seq之间的差值new_seq-c_seq,判断所述差值new_seq-c_seq是否大于预定阈值,如果否,则所述缓存服务器根据所述数据操作命令直接对与所述缓存数据进行处理,如果是,则所述缓存服务器向所述Zookeeper服务器集群获取与所述数据键值对应的最新有效数据,并将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理;以及
所述缓存服务器将处理后的数据写入所述Zookeeper服务器集群。
6.如权利要求5所述的方法,其特征在于,所述向所述Zookeeper服务器集群获取与所述数据键值对应的最新有效数据,并将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理的步骤包括:
所述缓存服务器向所述Zookeeper服务器集群发送第二获取请求,用于获取与所述数据键值对应的最新数据zk_data以及对应的最新数据序列号z_seq;
所述Zookeeper服务器集群返回与所述数据键值对应的最新数据zk_data以及对应的最新数据序列号z_seq;
所述缓存服务器计算所述自增序列号new_seq与所述最新数据序列号z_seq之间的差值new_seq-z_seq,判断所述差值new_seq-z_seq是否大于所述预定阈值,
如果否,则所述缓存服务器确定所述最新数据zk_data为最新有效数据,将所述缓存数据更新为所述最新数据zk_data,根据所述数据操作命令对所述最新数据zk_data进行处理,
如果是,则所述缓存服务器向所述Zookeeper服务器集群发送数据同步指令,所述Zookeeper服务器集群根据所述数据同步信号将与所述数据键值对应的数据同步为最新有效数据,所述缓存服务器向所述Zookeeper服务器集群发送第三获取请求,用于获取同步后的最新有效数据,所述Zookeeper服务器集群向所述缓存服务器返回所述最新有效数据,所述缓存服务器将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理。
7.如权利要求5所述的方法,其特征在于,所述预定阈值为1。
8.如权利要求5或6所述的方法,其特征在于,所述数据操作命令为append写操作命令,所述对所述最新有效数据进行处理的步骤,包括对所述最新有效数据进行append操作。
9.一种强一致性分布式数据存储装置,运行于缓存服务器,其特征在于,包括:
请求接收模块,用于接收客户端发送的数据写请求,所述数据写请求中包括数据键值以及数据操作命令;
数据缓存模块,用于存储与所述数据键值对应的缓存数据以及对应的缓存数据序列号c_seq;
数据获取模块,用于由Zookeeper服务器集群中获取与所述数据键值对应的自增序列号new_seq,所述自增序列号new_seq为所述Zookeeper服务器集群针对所述数据写请求为所述数据键值创建的最新序列号;
数据处理模块,用于计算所述自增序列号new_seq与所述缓存数据序列号c_seq之间的差值new_seq-c_seq,判断所述差值new_seq-c_seq是否大于预定阈值,如果否,则根据所述数据操作命令直接对与所述缓存数据进行处理;
所述数据获取模块还用于,如果所述差值new_seq-c_seq大于预定阈值,向所述Zookeeper服务器集群获取与所述数据键值对应的最新有效数据;
所述数据处理模块还用于将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理;以及
数据写入模块,用于将处理后的数据写入所述Zookeeper服务器集群。
10.如权利要求9所述的装置,其特征在于,所述装置还包括数据同步模块,如果所述差值new_seq-c_seq大于预定阈值,
所述数据获取模块还用于,向所述Zookeeper服务器集群获取与所述数据键值对应的最新数据zk_data以及对应的最新数据序列号z_seq;
所述数据处理模块还用于,计算所述自增序列号new_seq与所述最新数据序列号z_seq之间的差值new_seq-z_seq,判断所述差值new_seq-z_seq是否大于所述预定阈值,
如果否,则确定所述最新数据zk_data为最新有效数据,将所述缓存数据更新为所述最新数据zk_data,根据所述数据操作命令对所述最新数据zk_data进行处理,
所述数据同步模块向所述Zookeeper服务器集群发送数据同步指令,以使所述Zookeeper服务器集群将与所述数据键值对应的数据同步为最新有效数据,所述数据获取模块还用于向所述Zookeeper服务器集群获取同步后的最新有效数据,所述数据处理模块还用于将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理。
11.一种强一致性分布式数据存储系统,其特征在于,所述系统包括客户端、缓存服务器以及Zookeeper服务器集群,
所述客户端用于向所述缓存服务器发送数据写请求,所述数据写请求中包括数据键值以及数据操作命令;
所述缓存服务器中存储有与所述数据键值对应的缓存数据以及缓存数据序列号c_seq,所述缓存服务器用于,根据所述数据写请求向Zookeeper服务器集群发送第一获取请求,用于获取与所述数据键值对应的自增序列号new_seq;
所述Zookeeper服务器集群用于,根据所述第一获取请求,向所述缓存服务器返回与所述数据键值对应的自增序列号new_seq,所述自增序列号new_seq为所述Zookeeper服务器集群针对所述数据写请求为所述数据键值创建的最新序列号;
所述缓存服务器还用于,计算所述自增序列号new_seq与所述缓存数据序列号c_seq之间的差值new_seq-c_seq,判断所述差值new_seq-c_seq是否大于预定阈值,如果否,则所述缓存服务器根据所述数据操作命令直接对与所述缓存数据进行处理,如果是,则所述缓存服务器向所述Zookeeper服务器集群获取与所述数据键值对应的最新有效数据,并将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理,并将处理后的数据写入所述Zookeeper服务器集群。
12.如权利要求11所述的系统,其特征在于,如果所述差值new_seq-c_seq大于预定阈值,
所述缓存服务器还用于向所述Zookeeper服务器集群发送第二获取请求,用于获取与所述数据键值对应的最新数据zk_data以及对应的最新数据序列号z_seq;
所述Zookeeper服务器集群还用于返回与所述数据键值对应的最新数据zk_data以及对应的最新数据序列号z_seq;
所述缓存服务器还用于计算所述自增序列号new_seq与所述最新数据序列号z_seq之间的差值new_seq-z_seq,判断所述差值new_seq-z_seq是否大于所述预定阈值,
如果否,则所述缓存服务器确定所述最新数据zk_data为最新有效数据,将所述缓存数据更新为所述最新数据zk_data,根据所述数据操作命令对所述最新数据zk_data进行处理,
如果是,则所述缓存服务器还用于向所述Zookeeper服务器集群发送数据同步指令,所述Zookeeper服务器集群还根据所述数据同步信号将与所述数据键值对应的数据同步为最新有效数据,所述缓存服务器还用于向所述Zookeeper服务器集群发送第三获取请求,用于获取同步后的最新有效数据,所述Zookeeper服务器集群还向所述缓存服务器返回所述最新有效数据,所述缓存服务器将所述缓存数据更新为所述最新有效数据,根据所述数据操作命令对所述最新有效数据进行处理。
CN201410525002.2A 2014-09-30 2014-09-30 强一致性分布式数据存储方法、装置及系统 Active CN104283956B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410525002.2A CN104283956B (zh) 2014-09-30 2014-09-30 强一致性分布式数据存储方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410525002.2A CN104283956B (zh) 2014-09-30 2014-09-30 强一致性分布式数据存储方法、装置及系统

Publications (2)

Publication Number Publication Date
CN104283956A true CN104283956A (zh) 2015-01-14
CN104283956B CN104283956B (zh) 2016-01-20

Family

ID=52258429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410525002.2A Active CN104283956B (zh) 2014-09-30 2014-09-30 强一致性分布式数据存储方法、装置及系统

Country Status (1)

Country Link
CN (1) CN104283956B (zh)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105468718A (zh) * 2015-11-18 2016-04-06 腾讯科技(深圳)有限公司 数据一致性处理方法、装置和系统
CN105989124A (zh) * 2015-02-13 2016-10-05 深圳万兴信息科技股份有限公司 Sqlite文件恢复自增主键值的方法及其系统
CN106126583A (zh) * 2016-06-20 2016-11-16 环球大数据科技有限公司 一种分布式图数据库的集群强一致性处理方法及系统
CN106126374A (zh) * 2016-06-22 2016-11-16 腾讯科技(深圳)有限公司 数据写入方法、数据读取方法及装置
CN106603674A (zh) * 2016-12-19 2017-04-26 广东欧珀移动通信有限公司 无线播放设备的通信方法、系统及移动终端
CN106790453A (zh) * 2016-12-07 2017-05-31 竞技世界(北京)网络技术有限公司 一种操作请求的执行方法及装置
CN108063787A (zh) * 2017-06-26 2018-05-22 杭州沃趣科技股份有限公司 基于分布式一致性状态机实现双活架构的方法
CN108234641A (zh) * 2017-12-29 2018-06-29 北京奇虎科技有限公司 基于分布式一致性协议实现的数据读写方法及装置
CN108228581A (zh) * 2016-12-09 2018-06-29 阿里巴巴集团控股有限公司 Zookeeper兼容通信方法、服务器及系统
CN109347906A (zh) * 2018-08-30 2019-02-15 腾讯科技(深圳)有限公司 一种数据传输方法、装置、与服务器
CN109522043A (zh) * 2018-10-12 2019-03-26 咪咕文化科技有限公司 一种配置数据的管理方法、装置及存储介质
CN109981699A (zh) * 2017-12-27 2019-07-05 中国移动通信集团云南有限公司 一种云计算系统的资源分配方法、装置及云计算系统
CN110109954A (zh) * 2018-01-22 2019-08-09 腾讯科技(深圳)有限公司 数据处理方法、系统、电子设备及存储介质
CN110674086A (zh) * 2019-09-29 2020-01-10 广州华多网络科技有限公司 数据合并方法、装置、电子设备及存储介质
CN110737682A (zh) * 2019-10-17 2020-01-31 贝壳技术有限公司 一种缓存操作方法、装置、存储介质和电子设备
CN111212123A (zh) * 2019-12-26 2020-05-29 天津中科曙光存储科技有限公司 基于ZooKeeper的Lunmap管理方法
CN111796766A (zh) * 2020-05-29 2020-10-20 苏宁云计算有限公司 一种数据的存储方法、装置及计算机系统
CN111897846A (zh) * 2020-07-31 2020-11-06 平安普惠企业管理有限公司 缓存数据校验方法、装置、设备及存储介质
CN112491986A (zh) * 2016-02-29 2021-03-12 华为技术有限公司 一种分布式系统中命令分发方法、装置及系统
WO2022078243A1 (zh) * 2020-10-16 2022-04-21 北京沃东天骏信息技术有限公司 信息同步方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102882943A (zh) * 2012-09-12 2013-01-16 北京航空航天大学 服务副本读写方法及系统
CN103268318A (zh) * 2013-04-16 2013-08-28 华中科技大学 一种强一致性的分布式键值数据库系统及其读写方法
US20140244581A1 (en) * 2012-01-17 2014-08-28 Amazon Technologies, Inc. System and method for log conflict detection and resolution in a data store

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140244581A1 (en) * 2012-01-17 2014-08-28 Amazon Technologies, Inc. System and method for log conflict detection and resolution in a data store
CN102882943A (zh) * 2012-09-12 2013-01-16 北京航空航天大学 服务副本读写方法及系统
CN103268318A (zh) * 2013-04-16 2013-08-28 华中科技大学 一种强一致性的分布式键值数据库系统及其读写方法

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105989124A (zh) * 2015-02-13 2016-10-05 深圳万兴信息科技股份有限公司 Sqlite文件恢复自增主键值的方法及其系统
CN105468718A (zh) * 2015-11-18 2016-04-06 腾讯科技(深圳)有限公司 数据一致性处理方法、装置和系统
CN105468718B (zh) * 2015-11-18 2020-09-08 腾讯科技(深圳)有限公司 数据一致性处理方法、装置和系统
CN112491986A (zh) * 2016-02-29 2021-03-12 华为技术有限公司 一种分布式系统中命令分发方法、装置及系统
CN112491986B (zh) * 2016-02-29 2022-07-29 华为技术有限公司 一种分布式系统中命令分发方法、装置及系统
CN106126583A (zh) * 2016-06-20 2016-11-16 环球大数据科技有限公司 一种分布式图数据库的集群强一致性处理方法及系统
CN106126374B (zh) * 2016-06-22 2018-09-25 腾讯科技(深圳)有限公司 数据写入方法、数据读取方法及装置
CN106126374A (zh) * 2016-06-22 2016-11-16 腾讯科技(深圳)有限公司 数据写入方法、数据读取方法及装置
CN106790453A (zh) * 2016-12-07 2017-05-31 竞技世界(北京)网络技术有限公司 一种操作请求的执行方法及装置
CN106790453B (zh) * 2016-12-07 2019-08-02 竞技世界(北京)网络技术有限公司 一种操作请求的执行方法及装置
CN108228581A (zh) * 2016-12-09 2018-06-29 阿里巴巴集团控股有限公司 Zookeeper兼容通信方法、服务器及系统
CN108228581B (zh) * 2016-12-09 2022-06-28 阿里云计算有限公司 Zookeeper兼容通信方法、服务器及系统
CN106603674A (zh) * 2016-12-19 2017-04-26 广东欧珀移动通信有限公司 无线播放设备的通信方法、系统及移动终端
CN108063787A (zh) * 2017-06-26 2018-05-22 杭州沃趣科技股份有限公司 基于分布式一致性状态机实现双活架构的方法
CN109981699A (zh) * 2017-12-27 2019-07-05 中国移动通信集团云南有限公司 一种云计算系统的资源分配方法、装置及云计算系统
CN108234641A (zh) * 2017-12-29 2018-06-29 北京奇虎科技有限公司 基于分布式一致性协议实现的数据读写方法及装置
CN108234641B (zh) * 2017-12-29 2021-01-29 北京奇元科技有限公司 基于分布式一致性协议实现的数据读写方法及装置
WO2019127916A1 (zh) * 2017-12-29 2019-07-04 北京奇虎科技有限公司 基于分布式一致性协议实现的数据读写方法及装置
CN110109954A (zh) * 2018-01-22 2019-08-09 腾讯科技(深圳)有限公司 数据处理方法、系统、电子设备及存储介质
CN110109954B (zh) * 2018-01-22 2023-05-26 腾讯科技(深圳)有限公司 数据处理方法、系统、电子设备及存储介质
CN109347906A (zh) * 2018-08-30 2019-02-15 腾讯科技(深圳)有限公司 一种数据传输方法、装置、与服务器
CN109522043B (zh) * 2018-10-12 2021-11-16 咪咕文化科技有限公司 一种配置数据的管理方法、装置及存储介质
CN109522043A (zh) * 2018-10-12 2019-03-26 咪咕文化科技有限公司 一种配置数据的管理方法、装置及存储介质
CN110674086A (zh) * 2019-09-29 2020-01-10 广州华多网络科技有限公司 数据合并方法、装置、电子设备及存储介质
CN110737682A (zh) * 2019-10-17 2020-01-31 贝壳技术有限公司 一种缓存操作方法、装置、存储介质和电子设备
CN111212123A (zh) * 2019-12-26 2020-05-29 天津中科曙光存储科技有限公司 基于ZooKeeper的Lunmap管理方法
CN111796766A (zh) * 2020-05-29 2020-10-20 苏宁云计算有限公司 一种数据的存储方法、装置及计算机系统
WO2021238798A1 (zh) * 2020-05-29 2021-12-02 苏宁易购集团股份有限公司 一种数据的存储方法、装置及计算机系统
CN111897846A (zh) * 2020-07-31 2020-11-06 平安普惠企业管理有限公司 缓存数据校验方法、装置、设备及存储介质
CN111897846B (zh) * 2020-07-31 2024-02-09 深圳市虹红科技有限公司 缓存数据校验方法、装置、设备及存储介质
WO2022078243A1 (zh) * 2020-10-16 2022-04-21 北京沃东天骏信息技术有限公司 信息同步方法及装置

Also Published As

Publication number Publication date
CN104283956B (zh) 2016-01-20

Similar Documents

Publication Publication Date Title
CN104283956B (zh) 强一致性分布式数据存储方法、装置及系统
US9411685B2 (en) Parity chunk operating method and data server apparatus for supporting the same in distributed raid system
US10530855B2 (en) Lock state synchronization for non-disruptive persistent operation
US9917913B2 (en) Large message support for a publish-subscribe messaging system
JP4354233B2 (ja) バックアップシステム及び方法
JP5714571B2 (ja) キャッシュクラスタを構成可能モードで用いるキャッシュデータ処理
CN103095769B (zh) 跨机房的数据同步方法以及系统
CN107315825B (zh) 一种索引更新系统、方法及装置
KR101231563B1 (ko) 실시간 데이터 복제
CN105262831A (zh) 一种存储系统间同步数据的方法、装置及同步系统
CN105159795A (zh) 数据同步方法、装置和系统
CN103138912A (zh) 数据同步方法及系统
CN105338078A (zh) 用于存储系统的数据存储方法和装置
CN105069152A (zh) 数据处理方法及装置
CN108206839B (zh) 一种基于多数派数据存储方法、装置及系统
US10162720B2 (en) Copy-on-read process in disaster recovery
CN113268472A (zh) 一种分布式数据存储系统及方法
CN104580425A (zh) 一种客户端数据同步方法及系统
CN114500416A (zh) 用于最多一次消息投递的投递方法和投递系统
CN106951443B (zh) 基于分布式系统的副本同步的方法、设备和系统
US20150213102A1 (en) Synchronous data replication in a content management system
EP3710929B1 (en) Optimized reconciliation in a controller switch network
US10514850B2 (en) Information processing system, server device, Information processing method, and computer program product
CN113535477B (zh) 一种用于数据容灾恢复的方法与设备
US11386043B2 (en) Method, device, and computer program product for managing snapshot in application environment

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
TR01 Transfer of patent right

Effective date of registration: 20180928

Address after: 100086 Beijing Haidian District Zhichun Road 49 No. 3 West 309

Patentee after: Tencent cloud computing (Beijing) limited liability company

Address before: 518000 East 403 room, Sai Ge science and Technology Park, Futian District Zhenxing Road, Shenzhen, Guangdong, China, 2

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.

TR01 Transfer of patent right