利用KV数据库实现数据一致性的方法及装置制造方法及图纸

技术编号:15500015 阅读:97 留言:0更新日期:2017-06-03 22:04
本发明专利技术涉及分布式存储软件技术领域,公开了一种利用KV数据库实现数据一致性的方法,包括:向KV数据库发起访问记录请求;若KV数据库查询到最后修改该记录的服务端节点,上述服务端节点将最新记录发送给最初请求节点,如果最初请求节点修改该记录,则将修改后的记录作为最新记录;若查询不到,KV数据库生成该记录,并将该记录发送给最初请求节点。本发明专利技术还公开了一种利用KV数据库实现数据一致性的装置,包括:访问记录请求发起模块、记录获取模块、记录生成模块和记录修改模块。本发明专利技术可以解决分布式节点间的数据不一致和同步数据时占用大量带宽的问题。

Method and device for implementing data consistency by using KV database

The present invention relates to the technical field of distributed storage system, discloses a method using KV database, the consistency of the data includes initiating access record requests to the KV database; if the KV database query to the server node finally modify the record, the server node will send new records to the initial request node, if the initial request node the record will be revised as the new record record; if the query is not to generate the KV database records, and the record is transmitted to the requesting node first. The invention also discloses a device for realizing data consistency by using KV database, comprising an access record request origination module, a record acquiring module, a recording generation module and a recording and modifying module. The invention can solve the problem of data inconsistency between distributed nodes and large amount of bandwidth when synchronizing data.

【技术实现步骤摘要】
利用KV数据库实现数据一致性的方法及装置
本专利技术涉及分布式存储软件
,特别是涉及一种利用KV数据库实现数据一致性的方法及装置。
技术介绍
分布式数据库是指分散位于相同或不同地点的多个数据库服务器,合作共同完成一个大的数据库管理系统的数据存储及运算功能。我们在使用分布式存储服务时,集群中存在多个节点提供文件共享服务,每个节点连接不同的客户端,不同的客户端可能会对相同的文件进行操作,当服务端根据客户端指令对文件进行操作时,需要保存一些文件属性和客户端操作等信息,需要存储在数据库中,有些数据需要在不同的服务端之间进行同步,保证数据的一致性,所以就需要一种分布式数据库。目前,集群中存在很多数据库服务节点,当增加一条数据记录,数据库服务节点之间为了同步这一条数据记录而进行的通信非常多,这就造成内部网络的阻塞或者延迟,产生更多的交互信息,影响内部网络的稳定性和带宽,而且额外增加的保证每一个数据库服务节点都能存储这一条数据记录的处理逻辑也会占用额外的资源。
技术实现思路
本专利技术目的是提供一种利用KV数据库实现数据一致性的方法及装置,本专利技术主要针对分布式存储服务端使用的分布式数据库,该数据库是一种轻量级的KV数据库,可以解决分布式节点间的数据不一致和同步数据时占用大量带宽的问题。为了实现上述目的,本专利技术采用以下的技术方案:一种利用KV数据库实现数据一致性的方法,包括以下步骤:向KV数据库发起访问记录请求;若KV数据库查询到最后修改该记录的服务端节点,上述服务端节点将最新记录发送给最初请求节点,如果最初请求节点修改该记录,则将修改后的记录作为最新记录;若查询不到,KV数据库生成该记录,并将该记录发送给最初请求节点。优选地,KV数据库包括Key和Value,其中Value包括Head和Value′,Head中存储记录的主节点ID和最新数据节点ID。优选地,若KV数据库查询到最后修改该记录的服务端节点,上述服务端节点将最新记录发送给最初请求节点,具体包括:KV数据库根据Key计算得到该记录的主节点ID;将该记录的最新数据节点ID同步更新到KV数据库;由最新数据节点将最新记录发送给最初请求节点。优选地,主节点ID通过Key利用哈希算法计算得到。优选地,如果最初请求节点修改该记录,则将修改后的记录作为最新记录,进一步包括:如果最初请求节点修改该记录,则将最初请求节点ID修改为最新数据节点ID。本法专利技术还提供一种利用KV数据库实现数据一致性的装置,包括:访问记录请求发起模块,用于向KV数据库发起访问记录请求;记录获取模块,用于最新数据节点将最新记录发送给最初请求节点;记录生成模块,用于KV数据库生成记录;记录修改模块,用于修改记录,将修改后的记录作为最新记录。优选地,还包括:主节点ID计算模块,用于通过Key利用哈希算法计算得到主节点ID。与现有技术相比,本专利技术具有以下优点:1.本专利技术轻量级KV数据库的Head中存储有记录的主节点ID和最新数据节点ID,主节点是集群中存储该记录且正在运行的服务端节点,最新数据节点是最后修改该记录的服务端节点,当某个客户端发起访问记录请求,通过该记录的主节点ID和最新数据节点ID,可以查找到最新记录,从而实现了多个服务端节点中的记录是最新记录,使该记录在不同的服务端节点之间进行同步,保证数据的一致性。2.为了克服数据库服务节点之间为了同步一条记录,而造成内部网络阻塞的缺陷,本专利技术通过KV数据库中的主节点ID和最新数据节点ID,找到最新数据节点,获取该条记录的最新记录,实现数据的同步,从而保证了网络的稳定性和优化了带宽。附图说明图1是本专利技术一种利用KV数据库实现数据一致性的方法的流程示意图;图2是本专利技术一种利用KV数据库实现数据一致性的装置的结构示意图。具体实施方式为了便于理解,对本专利技术中出现的部分名词作以下解释说明:KV数据库,键值(key-value,KV)数据库通过一个key对应一个value这种映射来存储数据,这样使得KV数据库更适合非结构化的数据,用户可以自己来定义value存储数据的语义信息,因此KV数据库有着极高的易用性,并且非常容易对系统进行扩展。下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述:本实施例提供一种利用KV数据库实现数据一致性的方法,包括以下步骤:向KV数据库发起访问记录请求;若KV数据库查询到最后修改该记录的服务端节点,上述服务端节点将最新记录发送给最初请求节点,如果最初请求节点修改该记录,则将修改后的记录作为最新记录;若查询不到,KV数据库生成该记录,并将该记录发送给最初请求节点。请参考图1,图1是本专利技术一种利用KV数据库实现数据一致性的方法的流程示意图;本实施例提供一种利用KV数据库实现数据一致性的方法,包括以下步骤:步骤S101,客户端向KV数据库发起访问记录请求。其中,KV数据库包括Key和Value,通过Key进行检索,保证唯一性,找到Value并对Value进行操作,其中Value包括Head和Value′,Head中存储记录的主节点ID和最新数据节点ID,主节点ID通过Key利用哈希算法计算得到。主节点是集群中存储该记录且正在运行的服务端节点,最新数据节点是最后修改该记录的服务端节点。步骤S102,若KV数据库查询到该条记录的主节点ID,通过主节点ID查找该条记录的最新数据节点ID,由最新数据节点把最新记录发送给最初请求节点。如果最初请求节点修改该记录,则修改当前主节点和最新数据节点KV数据库中存储的Value中的Head部分,将最初请求节点ID修改为最新数据节点ID。如果通过KV数据库查找不到该条记录,该KV数据库生成该记录,并将该记录发送给最初请求节点。本专利技术通过KV数据库中存储记录的主节点ID和最新数据节点ID,查找最新数据节点,使各个客户端从最新数据节点获取的数据均是最近更新的数据,从而保证了数据的一致性;为了避免多个数据库服务节点之间为了同步一条记录而进行的通信非常多,造成内部网络阻塞的问题,本专利技术通过以上KV数据库,只需要查找最新数据节点,获取最新记录,这样一条记录发生改变,无需集群中有关该条记录的服务端节点数据库同步更新,优化了带宽,保证了内部网络的稳定性。请参考图2,图2是本专利技术一种利用KV数据库实现数据一致性的装置的结构示意图;本实施例提供一种利用KV数据库实现数据一致性的装置,包括:访问记录请求发起模块21、记录获取模块22、记录生成模块23、记录修改模块24和主节点ID计算模块25,其中访问记录请求发起模块21依次与主节点ID计算模块25、记录获取模块22和记录修改模块24连接,记录生成模块23与记录获取模块22、记录修改模块24并联连接。访问记录请求发起模块21,用于向KV数据库发起访问记录请求;记录获取模块22,用于最新数据节点将最新记录发送给最初请求节点;记录生成模块23,用于KV数据库生成记录;记录修改模块24,用于修改记录,将修改后的记录作为最新记录;主节点ID计算模块25,用于通过Key利用哈希算法计算得到主节点ID。以上所示仅是本专利技术的优选实施方式,应当指出,对于本
的普通技术人员来说,在不脱离本专利技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本专利技术的保护范围。本文档来自技高网
...
利用KV数据库实现数据一致性的方法及装置

【技术保护点】
一种利用KV数据库实现数据一致性的方法,其特征在于,包括以下步骤:向KV数据库发起访问记录请求;若KV数据库查询到最后修改该记录的服务端节点,上述服务端节点将最新记录发送给最初请求节点,如果最初请求节点修改该记录,则将修改后的记录作为最新记录;若查询不到,KV数据库生成该记录,并将该记录发送给最初请求节点。

【技术特征摘要】
1.一种利用KV数据库实现数据一致性的方法,其特征在于,包括以下步骤:向KV数据库发起访问记录请求;若KV数据库查询到最后修改该记录的服务端节点,上述服务端节点将最新记录发送给最初请求节点,如果最初请求节点修改该记录,则将修改后的记录作为最新记录;若查询不到,KV数据库生成该记录,并将该记录发送给最初请求节点。2.根据权利要求1所述的利用KV数据库实现数据一致性的方法,其特征在于,KV数据库包括Key和Value,其中Value包括Head和Value′,Head中存储记录的主节点ID和最新数据节点ID。3.根据权利要求2所述的利用KV数据库实现数据一致性的方法,其特征在于,若KV数据库查询到最后修改该记录的服务端节点,上述服务端节点将最新记录发送给最初请求节点,具体包括:KV数据库根据Key计算得到该记录的主节点ID;将该记录的最新数据节点ID同步更新到KV数据库;由最新...

【专利技术属性】
技术研发人员:臧琦
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1