CN103294675A - 一种分布式存储系统中的数据更新方法及装置 - Google Patents

一种分布式存储系统中的数据更新方法及装置 Download PDF

Info

Publication number
CN103294675A
CN103294675A CN2012100426679A CN201210042667A CN103294675A CN 103294675 A CN103294675 A CN 103294675A CN 2012100426679 A CN2012100426679 A CN 2012100426679A CN 201210042667 A CN201210042667 A CN 201210042667A CN 103294675 A CN103294675 A CN 103294675A
Authority
CN
China
Prior art keywords
version number
server node
data
updated
replica server
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
CN2012100426679A
Other languages
English (en)
Other versions
CN103294675B (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.)
Shanghai Shangda Networking Development Co., Ltd.
Original Assignee
SHANGHAI SHENGXIAO CLOUD COMPUTING TECHNOLOGY 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 SHANGHAI SHENGXIAO CLOUD COMPUTING TECHNOLOGY Co Ltd filed Critical SHANGHAI SHENGXIAO CLOUD COMPUTING TECHNOLOGY Co Ltd
Priority to CN201210042667.9A priority Critical patent/CN103294675B/zh
Publication of CN103294675A publication Critical patent/CN103294675A/zh
Application granted granted Critical
Publication of CN103294675B publication Critical patent/CN103294675B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种分布式存储系统中的数据更新方法及装置,该方法包括:当前服务器节点为待更新数据递增分配唯一的版本号,并从元数据信息存储库中获取所述待更新数据的多个副本所在的多个副本服务器节点标识;当前服务器节点将待更新数据及其分配的版本号发送给所述多个副本服务器节点标识对应的副本服务器节点,以便所述多个副本服务器节点依据所述待更新数据分别对各自保存的副本及对应的版本号进行更新;所述版本号表示所述副本的更新次数;当前服务器节点判断是否至少超过一半的所述多个副本服务器节点更新数据成功,如果是,则向客户端返回数据更新成功消息及更新后的版本号。采用本发明实施例的增加开销且能保证多个副本之间的数据一致性。

Description

一种分布式存储系统中的数据更新方法及装置
技术领域
本发明涉及分布式系统领域,更具体的说,是涉及一种分布式存储系统中的数据更新方法及装置。
背景技术
分布式存储系统,就是将数据分散存储在多台独立的设备上。更具体的可以包括分布式文件系统、分布式数据库、分布式半结构化存储系统、分布式块存储系统等等,这些系统面向不同的存储应用,各自有不同的访问模式,在很多场合并不能相互替换使用。同时这些系统也存在很多相同或相似的地方,例如:副本的分布信息定位,副本的更新维护,服务器节点的信息维护与管理等等。这里的副本指的是数据在不同服务器节点上的拷贝数据。
现有技术中,常见的分布式系统对于多副本的数据进行更新一般可以采用强一致方式,即是等某个数据对应的所有副本都更新成功才算数据更新成功,当有副本更新失败,立即在其它服务器节点上新建副本并完成更新。或者也可以采用超过半数的多写多读方式,即对于数据写入,要求超过半数的副本都写入成功才能向客户端返回成功消息,相应的数据读取也需要同时对多个副本进行读取,然后将超过半数且一致的数据作为最终结果。
然而,现有技术中的上述方法,在分布式存储系统异常的情况下,就也要求数据必须切分的足够细,即是每一个副本都比较小才能随时新建一个副本,这对于分布式存储系统来讲不具有通用性,而如果采用超过半数的多写多读方式,又会增加数据更新的开销,不能保证数据多个副本之间的一致性,会降低分布式存储系统的性能。
发明内容
有鉴于此,本发明提供了一种分布式存储系统中的数据更新方法及装置,以克服现有技术中在进行数据更新时会增加开销且不能保证多个副本之间的数据一致性的问题。
为实现上述目的,本发明提供如下技术方案:
一种分布式存储系统中的数据更新方法,其特征在于,包括:
当前服务器节点接收客户端发送的待更新数据;当前服务器节点为所述待更新数据递增分配唯一的版本号,并从元数据信息存储库中获取所述待更新数据的多个副本所在的多个副本服务器节点标识;所述元数据信息存储库保存有所述分布式存储系统中的各个服务器节点标识,副本在服务器节点中的分布信息及副本的状态;
当前服务器节点将待更新数据及其分配的版本号发送给所述多个副本服务器节点标识对应的副本服务器节点,以便所述多个副本服务器节点依据所述待更新数据分别对各自保存的副本及对应的版本号进行更新;所述版本号表示所述副本的更新次数;
当前服务器节点判断是否至少超过一半的所述多个副本服务器节点更新数据成功,如果是,则向客户端返回数据更新成功消息及更新后的版本号。
优选的,还包括:
当前服务器节点缓存所述待更新数据,并在所述多个副本服务器节点全部更新完毕后,删除所述待更新数据。
优选的,还包括:
副本服务器节点接收所述客户端在读取数据时携带的版本号;
副本服务器节点判断所述携带的版本号是否比自身存储的副本的版本号更新,如果是,则拒绝本次数据读取操作。
优选的,还包括:
当前服务器节点重启时,向所述多个副本服务器节点发送请求以获取所述副本服务器节点对应的最新的版本号。
优选的,还包括:
当前服务器节点将副本的初始版本号更新为所述最新的版本号,以便后续以最近更新的版本号为起始版本号分配待更新数据。
优选的,还包括:
比较所述多个副本服务器节点所保存的多个副本的多个版本号,如果存在版本号比其他副本服务器节点的版本号小的副本服务器节点,则触发版本号较小的副本服务器节点向版本号较大的副本服务器节点请求较大的版本号对应的副本。
一种分布式存储系统中的数据更新装置,包括:
元数据信息存储库,用于存储所述分布式存储系统中的各个服务器节点标识,副本在服务器节点中的分布信息及副本的状态;
接收待更新数据模块,用于接收客户端发送的待更新数据;
分配模块,用于为所述待更新数据递增分配唯一的版本号;
获取模块,用于从所述元数据信息存储库中获取所述待更新数据的多个副本所在的多个副本服务器节点标识;
发送模块,用于将待更新数据及其分配的版本号发送给所述多个副本服务器节点标识对应的副本服务器节点,以便所述多个副本服务器节点依据所述待更新数据分别对各自保存的副本及对应的版本号进行更新;所述版本号表示所述副本的更新次数;
判断更新模块,用于判断是否至少超过一半的所述多个副本服务器节点更新数据成功,如果是,则触发返回模块;
所述返回模块用于向客户端返回数据更新成功消息及更新后的版本号。
优选的,还包括:
缓存模块,用于缓存所述待更新数据;
删除模块,用于在所述多个副本服务器节点全部更新完毕后,删除所述待更新数据。
优选的,还包括:
接收版本号模块,用于接收所述客户端在读取数据时携带的版本号;
判断版本号模块,用于判断所述携带的版本号是否比自身存储的副本的版本号更新,如果是,则拒绝本次数据读取操作。
优选的,还包括:
发送请求模块,用于在当前服务器节点重启时,向所述多个副本服务器节点发送请求以获取所述多个副本服务器节点对应的最新的版本号。
优选的,还包括:
更新版本号模块,用于将副本的初始版本号更新为所述最新的版本号,以便后续以最近更新的版本号为起始版本号分配待更新数据。
优选的,还包括:
比较模块,用于比较所述多个副本服务器节点所保存的多个副本的多个版本号;
触发模块,用于如果存在版本号比其他副本服务器节点的版本号小的副本服务器节点,则触发版本号较小的副本服务器节点向版本号较大的副本服务器节点请求较大的版本号对应的副本。
经由上述的技术方案可知,与现有技术相比,本发明公开的分布式存储系统中的数据更新方法及装置,通过对数据进行更新时在至少超过一半副本服务器节点更新成功时就认为更新成功,这样就可以提高更新数据的效率。同时,还采用数据的版本号与更新次数对应的方案,这样后续在读取时带有已写成功的版本号向服务器节点请求数据时,如果服务器节点的版本号表示自身存的副本不是最新的,就可以拒绝本次读取操作,这样就能保证客户端可以向其它服务器节点重试,以保证客户端能读到最新的数据,即是实现读写一致性。因此,本实施例更为完善的解决多副本之间数据一致性的问题,并保证后续的读取性能,并且本发明实施例提供的解决方案可直接应用于多种存储系统中。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的分布式存储系统中的数据更新方法实施例1的流程图;
图2为本发明实施例公开的分布式存储系统中的数据更新方法实施例2的流程图;
图3为本发明实施例公开的分布式存储系统中的数据更新装置实施例1的结构示意图;
图4为本发明实施例公开的分布式存储系统中的数据更新装置实施例2的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
参见图1所示,图1为本发明实施例公开的分布式存储系统中的数据更新方法实施例1的流程图,在本实施例中,所述方法可以包括:
步骤101:当前服务器节点接收客户端发送的待更新数据。
客户端首先向分布式存储系统中的某个服务器节点发送待更新数据,例如,在分布式存储系统中的各个服务器节点上都存储有用户信息,而如果该用户信息需要变更,则由客户端向其中一个服务器节点发送新的用户信息,即是待更新数据,该接收到新的用户信息的服务器节点即为当前服务器节点。
步骤102:当前服务器节点为所述待更新数据递增分配唯一的版本号,并从元数据信息存储库中获取所述待更新数据的多个副本所在的多个副本服务器节点标识。
其中,所述元数据信息存储库是预先建立好的,可以保存所述分布式存储系统中的各个服务器节点标识,副本在服务器节点中的分布信息及副本的状态。各个服务器节点在启动时可以通过自身的数据服务模块向该元数据信息存储库注册本服务器节点的副本分布信息及副本状态,而后保持与元数据信息存储库的心跳。还可以通过该元数据信息存储库来维护副本分布信息及副本状态数据,并对外提供副本的查询接口以及副本状态变化的监听接口。
在接收到客户端发送到的待更新数据之后,当前服务器节点可以从元数据信息存储库中获取该待更新数据的多个副本所在的多个副本服务器节点标识。在分布式存储系统中,一份数据会被切分为多份子数据,而这多份子数据又对应保存在多个服务器节点中,并且具有各个服务器节点中又都具有保存的某份子数据的副本,因此在本步骤中,如果接收到了待更新数据,则首先需要知道该待更新数据保存在哪些服务器节点中,即是待更新数据的多个副本所在的多个副本服务器节点。
例如,如果待更新数据为用户信息,那么如果用户信息被切分为10份,分别保存在10台服务器中,第1~5台服务器保存的是第1~100个的用户信息,第6~10台服务器保存的是第第101~200个的用户信息,以此类推,第45~50台服务器保存的是901~1000个的用户信息,同时各台服务器节点上保存的用户信息又有副本存在。如果本步骤中待更新数据为第99个用户信息,则可以确定需要更新第1~5台服务器节点中保存的副本,即是本步骤中确定为第1~5台服务器节点。
其中,当前服务器节点在为待更新数据分配版本号的时候,对于同一个数据,当前服务器从第一次更新时接收到的待更新数据可以将其版本号分配为1,这样以此类推,第几次更新即可对应为待更新数据分配唯一对应的版本号,而副本服务器每一次接收到待更新数据和版本号之后,进行数据更新并记录当前接收到的版本号,并将其作为副本的当前版本号。
步骤103:当前服务器节点将待更新数据及其分配的版本号发送给所述多个副本服务器节点标识对应的副本服务器节点,以便所述多个副本服务器节点依据所述待更新数据分别对各自保存的副本及对应的版本号进行更新;所述版本号表示所述副本的更新次数。
该当前服务器节点将待更新数据依次发送给所述多个副本服务器节点标识对应的副本服务器节点,该所述多个副本服务器节点再依据所述待更新数据分别对各自保存的副本及对应的版本号进行更新,其中,版本号表示所述副本的更新次数。例如,版本号为1表示当前更新为第一次更新,以此类推,版本号为n表示当前更新为第n次更新。副本服务器在进行数据更新时,同时还需要判断版本号是否一致,即是自身记录的副本版本号是否就比接收到的版本号小1,如果不是的话,也可以不进行更新。
其中,当前服务器节点可以以不同的方式向多个副本服务器节点发送数据,例如可以并行或流水线向多个副本服务器节点有序的发送待更新数据。
步骤104:当前服务器节点判断是否至少超过一半的所述多个副本服务器节点更新数据成功,如果是,则进入步骤105。
副本服务器节点对自己保存的副本进行成功更新之后,告知当前服务器节点,在当前服务器节点判断得到有至少一半的多个副本服务器节点更新数据成功,就会进入步骤105以向客户端返回数据更新成功消息及更新后的版本号。例如,接着上面的例子来讲,如果有3台副本服务器节点更新成功,则执行步骤105。而如果副本服务器共有6个的话,则至少需要4个副本服务器更新成功。
步骤105:向客户端返回数据更新成功消息及更新后的版本号。
本实施例中,通过对数据进行更新时在至少超过一半副本服务器节点更新成功时就认为更新成功,这样就可以提高更新数据的效率。同时,还采用数据的版本号与更新次数对应的方案,这样后续在读取时带有已写成功的版本号向服务器节点请求数据时,如果服务器节点的版本号表示自身存的副本不是最新的,就可以拒绝本次读取操作,这样就能保证客户端可以向其它服务器节点重试,以保证客户端能读到最新的数据,即是实现读写一致性。因此,本=实施例更为完善的解决多副本之间数据一致性的问题,并保证后续的读取性能,并且本发明实施例提供的解决方案可直接应用于多种存储系统中。
实施例二
参照图2所示,图2为本发明实施例公开的分布式存储系统中的数据更新方法实施例2的流程图,除了实施例一中的步骤101~104,在步骤104之后,所述方法还可以包括:
步骤201:当前服务器节点缓存所述待更新数据,并在所述多个副本服务器节点全部更新完毕后,删除所述待更新数据。
当前服务器节点首先缓存待更新数据,并且当该数据在所有的副本服务器节点上都更新成功后,即可删除,此外,当前服务器节点出现空间不够时,也可删除,这样就能更少的占用当前服务器节点的存储空间。
需要说明的是,在本发明实施例中,可以让最近更新的数据至少在一个副本节点上有另外缓存,即是在某一台副本服务器节点上不仅更新其保存的副本,同时再为该副本按版本号顺序保存最近更新的数据,这样就能在当前更新服务器出现故障导致它自身缓存的数据丢失的情况下,其它副本服务器也可依赖于这个副本服务器上缓存的最新一段数据进行恢复。
步骤202:副本服务器节点接收所述客户端在读取数据时携带的版本号。
在客户端需要对当前服务器节点进行数据读取操作时,客户端同时将本次需要读取的数据的版本号同时携带给副本服务器节点。
步骤203:副本服务器节点判断所述携带的版本号是否比自身存储的副本的版本号更新,如果是,则拒绝本次数据读取操作。
副本服务器节点判断所述携带的版本号是否比自身存储的副本的版本号更新,如果是,例如,携带的版本号为3,而副本服务器自己存储的副本的版本号为2,说明其存储的副本即是客户端需要读取的数据,是进行了两次的更新的数据,而客户端需要读取的是更新过三次的数据,这样就不允许本次读取操作,而如果携带的版本号与自身存储的副本的版本号相同或者更旧,则说明其存储的副本可以作为客户端本次需要读取的数据,则接受本次数据读取操作。
步骤204:当前服务器节点重启时,向所述多个副本服务器节点发送请求以获取所述副本服务器节点对应的最新的版本号。
在实际应用中,一旦当前服务器出现宕机或者重启的情况,则当前服务器节点向其他的多个副本服务器节点发送请求,以请求获取多个副本服务器中对应的最新的版本号。
步骤205:当前服务器将副本的初始版本号更新为所述最新的版本号,以便后续以最近更新的版本号为起始版本号分配待更新数据。
当前服务器节点将副本的初始版本号在更新为步骤204中获取到的最新的版本号,这样后续在为待更新数据分配版本号的时候,就可以以该最新的版本号为起始版本号进行版本号的分配。
步骤206:比较所述多个副本服务器节点所保存的多个副本的多个版本号,如果存在版本号比其他副本服务器节点的版本号小的副本服务器节点,则触发版本号较小的副本服务器节点向版本号较大的副本服务器节点请求较大的版本号对应的副本。
当前服务器节点再比较从多个副本服务器节点处获得的版本号,如果同时存在版本号为1以及版本号为2的副本服务器节点,则当前服务器就触发版本号为1的副本服务器节点向版本号为2的副本服务器节点请求较大的版本号对应的副本,这样就能保证即便服务器节点出现意外情况,也能保证数据副本之间的一致性。
需要说明的是,上述步骤201~205可以在数据更新过程中并不限于上述限定的先后顺序关系。
在本发明实施例中,还能保证对数据更新的一致性,通过至少一个服务器节点对最新数据的缓存,解决宕机与恢复时数据的恢复问题。
上述本发明公开的实施例中详细描述了方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了一种分布式存储系统中的数据更新装置,下面给出具体的实施例进行详细说明。
实施例三
参见图3所示,图3为本发明实施例公开的分布式存储系统中的数据更新装置实施例1的结构示意图,在本实施例中,所述装置可以包括:
元数据信息存储库301,用于存储所述分布式存储系统中的各个服务器节点标识,副本在服务器节点中的分布信息及副本的状态;
接收待更新数据模块302,用于接收客户端发送的待更新数据;
分配模块303,用于为所述待更新数据递增分配唯一的版本号;
获取模块304,用于从所述元数据信息存储库中获取所述待更新数据的多个副本所在的多个副本服务器节点标识;
发送模块305,用于将待更新数据及其分配的版本号发送给所述多个副本服务器节点标识对应的副本服务器节点,以便所述多个副本服务器节点依据所述待更新数据分别对各自保存的副本及对应的版本号进行更新;所述版本号表示所述副本的更新次数;
判断更新模块306,用于判断是否至少超过一半的所述多个副本服务器节点更新数据成功,如果是,则触发返回模块307;
所述返回模块307用于向客户端返回数据更新成功消息及更新后的版本号。
本实施例中,所述分布式存储系统中的数据更新装置通过对数据进行更新时在至少超过一半副本服务器节点更新成功时就认为更新成功,这样就可以提高更新数据的效率。同时,还采用数据的版本号与更新次数对应的方案,这样后续在读取时带有已写成功的版本号向服务器节点请求数据时,如果服务器节点的版本号表示自身存的副本不是最新的,就可以拒绝本次读取操作,这样就能保证客户端可以向其它服务器节点重试,以保证客户端能读到最新的数据,即是实现读写一致性。因此,本实施例更为完善的解决多副本之间数据一致性的问题,并保证后续的读取性能,并且本发明实施例提供的解决方案可直接应用于多种存储系统中。
实施例四
参见图4所示,图4为本发明实施例公开的分布式存储系统中的数据更新装置实施例2的结构示意图,除了图3所示的模块之外,在本实施例中,所述装置还可以包括:
缓存模块401,用于缓存所述待更新数据;
删除模块402,用于在所述多个副本服务器节点全部更新完毕后,删除所述待更新数据。
接收版本号模块403,用于接收所述客户端在读取数据时携带的版本号;
判断版本号模块404,用于判断所述携带的版本号是否比自身存储的副本的版本号更新,如果是,则拒绝本次数据读取操作。
发送请求模块405,用于在当前服务器节点重启时,向所述多个副本服务器节点发送请求以获取所述多个副本服务器节点对应的最新的版本号。
更新版本号模块406,用于将副本的初始版本号更新为所述最新的版本号,以便后续以最近更新的版本号为起始版本号分配待更新数据。
比较模块407,用于比较所述多个副本服务器节点所保存的多个副本的多个版本号;
触发模块408,用于如果存在版本号比其他副本服务器节点的版本号小的副本服务器节点,则触发版本号较小的副本服务器节点向版本号较大的副本服务器节点请求较大的版本号对应的副本。
在本发明实施例中,所述分布式存储系统中的数据更新装置还能保证对数据更新的一致性,通过至少一个服务器节点对最新数据的缓存,解决宕机与恢复时数据的恢复问题。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (12)

1.一种分布式存储系统中的数据更新方法,其特征在于,包括:
当前服务器节点接收客户端发送的待更新数据;当前服务器节点为所述待更新数据递增分配唯一的版本号,并从元数据信息存储库中获取所述待更新数据的多个副本所在的多个副本服务器节点标识;所述元数据信息存储库保存有所述分布式存储系统中的各个服务器节点标识,副本在服务器节点中的分布信息及副本的状态;
当前服务器节点将待更新数据及其分配的版本号发送给所述多个副本服务器节点标识对应的副本服务器节点,以便所述多个副本服务器节点依据所述待更新数据分别对各自保存的副本及对应的版本号进行更新;所述版本号表示所述副本的更新次数;
当前服务器节点判断是否至少超过一半的所述多个副本服务器节点更新数据成功,如果是,则向客户端返回数据更新成功消息及更新后的版本号。
2.根据权利要求1所述的方法,其特征在于,还包括:
当前服务器节点缓存所述待更新数据,并在所述多个副本服务器节点全部更新完毕后,删除所述待更新数据。
3.根据权利要求1所述的方法,其特征在于,还包括:
副本服务器节点接收所述客户端在读取数据时携带的版本号;
副本服务器节点判断所述携带的版本号是否比自身存储的副本的版本号更新,如果是,则拒绝本次数据读取操作。
4.根据权利要求1所述方法,其特征在于,还包括:
当前服务器节点重启时,向所述多个副本服务器节点发送请求以获取所述副本服务器节点对应的最新的版本号。
5.根据权利要求4所述的方法,其特征在于,还包括:
当前服务器节点将副本的初始版本号更新为所述最新的版本号,以便后续以最近更新的版本号为起始版本号分配待更新数据。
6.根据权利要求5所述的方法,其特征在于,还包括:
比较所述多个副本服务器节点所保存的多个副本的多个版本号,如果存在版本号比其他副本服务器节点的版本号小的副本服务器节点,则触发版本号较小的副本服务器节点向版本号较大的副本服务器节点请求较大的版本号对应的副本。
7.一种分布式存储系统中的数据更新装置,其特征在于,包括:
元数据信息存储库,用于存储所述分布式存储系统中的各个服务器节点标识,副本在服务器节点中的分布信息及副本的状态;
接收待更新数据模块,用于接收客户端发送的待更新数据;
分配模块,用于为所述待更新数据递增分配唯一的版本号;
获取模块,用于从所述元数据信息存储库中获取所述待更新数据的多个副本所在的多个副本服务器节点标识;
发送模块,用于将待更新数据及其分配的版本号发送给所述多个副本服务器节点标识对应的副本服务器节点,以便所述多个副本服务器节点依据所述待更新数据分别对各自保存的副本及对应的版本号进行更新;所述版本号表示所述副本的更新次数;
判断更新模块,用于判断是否至少超过一半的所述多个副本服务器节点更新数据成功,如果是,则触发返回模块;
所述返回模块用于向客户端返回数据更新成功消息及更新后的版本号。
8.根据权利要求7所述的装置,其特征在于,还包括:
缓存模块,用于缓存所述待更新数据;
删除模块,用于在所述多个副本服务器节点全部更新完毕后,删除所述待更新数据。
9.根据权利要求7所述的装置,其特征在于,还包括:
接收版本号模块,用于接收所述客户端在读取数据时携带的版本号;
判断版本号模块,用于判断所述携带的版本号是否比自身存储的副本的版本号更新,如果是,则拒绝本次数据读取操作。
10.根据权利要求7所述的装置,其特征在于,还包括:
发送请求模块,用于在当前服务器节点重启时,向所述多个副本服务器节点发送请求以获取所述多个副本服务器节点对应的最新的版本号。
11.根据权利要求10所述的装置,其特征在于,还包括:
更新版本号模块,用于将副本的初始版本号更新为所述最新的版本号,以便后续以最近更新的版本号为起始版本号分配待更新数据。
12.根据权利要求11所述的装置,其特征在于,还包括:
比较模块,用于比较所述多个副本服务器节点所保存的多个副本的多个版本号;
触发模块,用于如果存在版本号比其他副本服务器节点的版本号小的副本服务器节点,则触发版本号较小的副本服务器节点向版本号较大的副本服务器节点请求较大的版本号对应的副本。
CN201210042667.9A 2012-02-23 2012-02-23 一种分布式存储系统中的数据更新方法及装置 Active CN103294675B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210042667.9A CN103294675B (zh) 2012-02-23 2012-02-23 一种分布式存储系统中的数据更新方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210042667.9A CN103294675B (zh) 2012-02-23 2012-02-23 一种分布式存储系统中的数据更新方法及装置

Publications (2)

Publication Number Publication Date
CN103294675A true CN103294675A (zh) 2013-09-11
CN103294675B CN103294675B (zh) 2018-08-03

Family

ID=49095569

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210042667.9A Active CN103294675B (zh) 2012-02-23 2012-02-23 一种分布式存储系统中的数据更新方法及装置

Country Status (1)

Country Link
CN (1) CN103294675B (zh)

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104133783A (zh) * 2014-07-11 2014-11-05 北京京东尚科信息技术有限公司 处理分散式缓存数据的方法和装置
CN104158897A (zh) * 2014-08-25 2014-11-19 曙光信息产业股份有限公司 一种分布式文件系统中文件布局的更新方法
CN104394195A (zh) * 2014-10-31 2015-03-04 杭州华为企业通信技术有限公司 数据更新方法及装置
CN104683374A (zh) * 2013-11-28 2015-06-03 北京华云网际科技有限公司 一种分布式存储的缓存更新方法及分布式存储系统
CN104750746A (zh) * 2013-12-30 2015-07-01 中国移动通信集团上海有限公司 业务数据的处理方法、装置及分布式内存数据库系统
CN104750738A (zh) * 2013-12-30 2015-07-01 中国移动通信集团公司 一种更新数据信息的方法、数据节点、管理节点及系统
CN105528464A (zh) * 2016-01-28 2016-04-27 北京宇航系统工程研究所 一种自动判断关联数据技术状态一致性的版本管理系统
WO2016065545A1 (zh) * 2014-10-29 2016-05-06 华为技术有限公司 信息更新的方法、装置及设备
CN105991752A (zh) * 2015-03-06 2016-10-05 阿里巴巴集团控股有限公司 一种数据块更新方法及设备
CN106209926A (zh) * 2015-04-30 2016-12-07 阿里巴巴集团控股有限公司 一种数据更新方法和设备
WO2016206568A1 (zh) * 2015-06-26 2016-12-29 阿里巴巴集团控股有限公司 数据更新方法、装置及相关系统
CN106406770A (zh) * 2016-09-28 2017-02-15 乐视控股(北京)有限公司 一种数据写入方法及系统
CN106445419A (zh) * 2016-09-28 2017-02-22 乐视控股(北京)有限公司 一种数据存储方法、装置及分布式存储系统
CN106549983A (zh) * 2015-09-16 2017-03-29 中国移动通信集团公司 一种数据库的访问方法及终端、服务器
CN106557262A (zh) * 2015-09-23 2017-04-05 腾讯科技(深圳)有限公司 一种数据处理方法及装置
CN106656904A (zh) * 2015-10-28 2017-05-10 北京京东尚科信息技术有限公司 基于Quorum机制实现权限数据缓存同步的方法及装置
CN106878388A (zh) * 2017-01-04 2017-06-20 北京百度网讯科技有限公司 对分布式存储系统中慢节点的检测
CN107045426A (zh) * 2017-04-14 2017-08-15 北京粉笔蓝天科技有限公司 一种多副本读取方法和系统
CN107391156A (zh) * 2017-07-31 2017-11-24 成都华为技术有限公司 用于分布式系统传输业务的方法、管理节点和服务节点
CN107707643A (zh) * 2017-09-27 2018-02-16 柏域信息科技(上海)有限公司 一种数据存储系统中更新数据的方法及装置
CN108037897A (zh) * 2017-12-14 2018-05-15 郑州云海信息技术有限公司 一种元数据扩散的方法、计算机装置及可读存储介质
WO2018099397A1 (zh) * 2016-12-01 2018-06-07 腾讯科技(深圳)有限公司 数据库集群中数据迁移的方法、装置及存储介质
CN108234641A (zh) * 2017-12-29 2018-06-29 北京奇虎科技有限公司 基于分布式一致性协议实现的数据读写方法及装置
CN109739684A (zh) * 2018-11-20 2019-05-10 清华大学 基于向量时钟的分布式键值数据库的副本修复方法与装置
CN109814946A (zh) * 2018-12-29 2019-05-28 创新科存储技术(深圳)有限公司 一种在XenServer中实现分布式存储的方法和装置
CN110196856A (zh) * 2019-05-09 2019-09-03 腾讯科技(深圳)有限公司 一种分布式数据读取方法及装置
CN110245149A (zh) * 2019-06-25 2019-09-17 北京明略软件系统有限公司 元数据的版本管理方法及装置
CN111104070A (zh) * 2019-12-24 2020-05-05 北京同有飞骥科技股份有限公司 分布式系统中数据一致性的实现方法及系统
CN111182014A (zh) * 2018-11-09 2020-05-19 北京华为数字技术有限公司 一种数据同步方法和装置
CN111310260A (zh) * 2020-01-21 2020-06-19 中国建筑股份有限公司 基于分布式存储架构的bim模型版本存贮转换方法
US10713134B2 (en) 2014-11-06 2020-07-14 Huawei Technologies Co., Ltd. Distributed storage and replication system and method
CN111866169A (zh) * 2018-01-23 2020-10-30 创新先进技术有限公司 一种服务更新方法及装置、系统
CN112000850A (zh) * 2020-08-26 2020-11-27 杭州海康威视系统技术有限公司 进行数据处理的方法、装置、系统及设备
CN112256201A (zh) * 2020-10-23 2021-01-22 南京鹏云网络科技有限公司 一种分布式块存储系统及其卷信息管理方法
CN112579121A (zh) * 2020-12-09 2021-03-30 广州橙行智动汽车科技有限公司 一种数据处理的方法和装置
CN112988913A (zh) * 2021-05-11 2021-06-18 腾讯科技(深圳)有限公司 一种数据处理方法和相关装置
CN113342785A (zh) * 2021-07-06 2021-09-03 多点生活(成都)科技有限公司 数据处理方法和装置、服务端设备及存储介质
CN113407639A (zh) * 2021-07-16 2021-09-17 广州市百果园信息技术有限公司 数据处理方法、装置、系统及存储介质
CN115033585A (zh) * 2022-08-09 2022-09-09 北京奥星贝斯科技有限公司 针对目标数据库的数据合并处理方法及装置
CN115277145A (zh) * 2022-07-20 2022-11-01 北京志凌海纳科技有限公司 分布式存储访问授权管理方法、系统、设备和可读介质
WO2023134519A1 (zh) * 2022-01-12 2023-07-20 北京奥星贝斯科技有限公司 在分布式数据库中同步更新元数据的方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101217571A (zh) * 2008-01-18 2008-07-09 清华大学 用于多副本数据网格系统中的写/读文件操作的方法
US20100174690A1 (en) * 2009-01-08 2010-07-08 International Business Machines Corporation Method, Apparatus and Computer Program Product for Maintaining File System Client Directory Caches with Parallel Directory Writes
CN101909068A (zh) * 2009-06-02 2010-12-08 华为技术有限公司 一种文件副本管理方法及装置、系统
CN101964820A (zh) * 2010-10-08 2011-02-02 中兴通讯股份有限公司 一种保持数据一致性的方法及系统
CN102016852A (zh) * 2008-03-05 2011-04-13 美国日本电气实验室公司 内容可寻址存储系统和方法
CN102301367A (zh) * 2008-10-24 2011-12-28 Ilt创新公司 分布式数据存储

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101217571A (zh) * 2008-01-18 2008-07-09 清华大学 用于多副本数据网格系统中的写/读文件操作的方法
CN102016852A (zh) * 2008-03-05 2011-04-13 美国日本电气实验室公司 内容可寻址存储系统和方法
CN102301367A (zh) * 2008-10-24 2011-12-28 Ilt创新公司 分布式数据存储
US20100174690A1 (en) * 2009-01-08 2010-07-08 International Business Machines Corporation Method, Apparatus and Computer Program Product for Maintaining File System Client Directory Caches with Parallel Directory Writes
CN101909068A (zh) * 2009-06-02 2010-12-08 华为技术有限公司 一种文件副本管理方法及装置、系统
CN101964820A (zh) * 2010-10-08 2011-02-02 中兴通讯股份有限公司 一种保持数据一致性的方法及系统

Cited By (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104683374B (zh) * 2013-11-28 2019-03-08 北京华云网际科技有限公司 一种分布式存储的缓存更新方法
CN104683374A (zh) * 2013-11-28 2015-06-03 北京华云网际科技有限公司 一种分布式存储的缓存更新方法及分布式存储系统
CN104750746A (zh) * 2013-12-30 2015-07-01 中国移动通信集团上海有限公司 业务数据的处理方法、装置及分布式内存数据库系统
CN104750738A (zh) * 2013-12-30 2015-07-01 中国移动通信集团公司 一种更新数据信息的方法、数据节点、管理节点及系统
CN104750738B (zh) * 2013-12-30 2018-06-26 中国移动通信集团公司 一种更新数据信息的方法、数据节点、管理节点及系统
CN104133783B (zh) * 2014-07-11 2017-05-10 北京京东尚科信息技术有限公司 处理分散式缓存数据的方法和装置
CN104133783A (zh) * 2014-07-11 2014-11-05 北京京东尚科信息技术有限公司 处理分散式缓存数据的方法和装置
CN104158897A (zh) * 2014-08-25 2014-11-19 曙光信息产业股份有限公司 一种分布式文件系统中文件布局的更新方法
CN104158897B (zh) * 2014-08-25 2017-06-23 曙光信息产业股份有限公司 一种分布式文件系统中文件布局的更新方法
WO2016065545A1 (zh) * 2014-10-29 2016-05-06 华为技术有限公司 信息更新的方法、装置及设备
CN105765948A (zh) * 2014-10-29 2016-07-13 华为技术有限公司 信息更新的方法、装置及设备
CN104394195B (zh) * 2014-10-31 2018-05-11 杭州华为企业通信技术有限公司 数据更新方法及装置
CN104394195A (zh) * 2014-10-31 2015-03-04 杭州华为企业通信技术有限公司 数据更新方法及装置
US10713134B2 (en) 2014-11-06 2020-07-14 Huawei Technologies Co., Ltd. Distributed storage and replication system and method
CN105991752B (zh) * 2015-03-06 2019-06-21 阿里巴巴集团控股有限公司 一种数据块更新方法及设备
CN105991752A (zh) * 2015-03-06 2016-10-05 阿里巴巴集团控股有限公司 一种数据块更新方法及设备
CN106209926B (zh) * 2015-04-30 2019-06-21 阿里巴巴集团控股有限公司 一种数据更新方法和设备
CN106209926A (zh) * 2015-04-30 2016-12-07 阿里巴巴集团控股有限公司 一种数据更新方法和设备
US10761724B2 (en) 2015-04-30 2020-09-01 Alibaba Group Holding Limited System, method, and apparatus for updating data in a distributed storage system
CN106302625A (zh) * 2015-06-26 2017-01-04 阿里巴巴集团控股有限公司 数据更新方法、装置及相关系统
CN106302625B (zh) * 2015-06-26 2019-10-25 阿里巴巴集团控股有限公司 数据更新方法、装置及相关系统
WO2016206568A1 (zh) * 2015-06-26 2016-12-29 阿里巴巴集团控股有限公司 数据更新方法、装置及相关系统
CN106549983B (zh) * 2015-09-16 2020-03-31 中国移动通信集团公司 一种数据库的访问方法及终端、服务器
CN106549983A (zh) * 2015-09-16 2017-03-29 中国移动通信集团公司 一种数据库的访问方法及终端、服务器
CN106557262B (zh) * 2015-09-23 2020-07-14 腾讯科技(深圳)有限公司 一种数据处理方法及装置
CN106557262A (zh) * 2015-09-23 2017-04-05 腾讯科技(深圳)有限公司 一种数据处理方法及装置
CN106656904B (zh) * 2015-10-28 2020-03-03 北京京东振世信息技术有限公司 基于Quorum机制实现权限数据缓存同步的方法及装置
CN106656904A (zh) * 2015-10-28 2017-05-10 北京京东尚科信息技术有限公司 基于Quorum机制实现权限数据缓存同步的方法及装置
CN105528464A (zh) * 2016-01-28 2016-04-27 北京宇航系统工程研究所 一种自动判断关联数据技术状态一致性的版本管理系统
CN105528464B (zh) * 2016-01-28 2019-03-26 北京宇航系统工程研究所 一种自动判断关联数据技术状态一致性的版本管理系统
CN106445419A (zh) * 2016-09-28 2017-02-22 乐视控股(北京)有限公司 一种数据存储方法、装置及分布式存储系统
CN106406770A (zh) * 2016-09-28 2017-02-15 乐视控股(北京)有限公司 一种数据写入方法及系统
CN108132949B (zh) * 2016-12-01 2021-02-12 腾讯科技(深圳)有限公司 数据库集群中数据迁移的方法及装置
US11243922B2 (en) 2016-12-01 2022-02-08 Tencent Technology (Shenzhen) Company Limited Method, apparatus, and storage medium for migrating data node in database cluster
CN108132949A (zh) * 2016-12-01 2018-06-08 腾讯科技(深圳)有限公司 数据库集群中数据迁移的方法及装置
WO2018099397A1 (zh) * 2016-12-01 2018-06-07 腾讯科技(深圳)有限公司 数据库集群中数据迁移的方法、装置及存储介质
CN106878388B (zh) * 2017-01-04 2019-12-03 北京百度网讯科技有限公司 对分布式存储系统中慢节点的检测
CN106878388A (zh) * 2017-01-04 2017-06-20 北京百度网讯科技有限公司 对分布式存储系统中慢节点的检测
CN107045426B (zh) * 2017-04-14 2020-12-15 北京粉笔蓝天科技有限公司 一种多副本读取方法和系统
CN107045426A (zh) * 2017-04-14 2017-08-15 北京粉笔蓝天科技有限公司 一种多副本读取方法和系统
CN107391156B (zh) * 2017-07-31 2021-01-08 成都华为技术有限公司 用于分布式系统传输业务的方法、管理节点和服务节点
CN107391156A (zh) * 2017-07-31 2017-11-24 成都华为技术有限公司 用于分布式系统传输业务的方法、管理节点和服务节点
CN107707643A (zh) * 2017-09-27 2018-02-16 柏域信息科技(上海)有限公司 一种数据存储系统中更新数据的方法及装置
CN108037897B (zh) * 2017-12-14 2021-11-09 郑州云海信息技术有限公司 一种元数据扩散的方法、计算机装置及可读存储介质
CN108037897A (zh) * 2017-12-14 2018-05-15 郑州云海信息技术有限公司 一种元数据扩散的方法、计算机装置及可读存储介质
CN108234641B (zh) * 2017-12-29 2021-01-29 北京奇元科技有限公司 基于分布式一致性协议实现的数据读写方法及装置
CN108234641A (zh) * 2017-12-29 2018-06-29 北京奇虎科技有限公司 基于分布式一致性协议实现的数据读写方法及装置
CN111866169A (zh) * 2018-01-23 2020-10-30 创新先进技术有限公司 一种服务更新方法及装置、系统
CN111866169B (zh) * 2018-01-23 2023-08-18 创新先进技术有限公司 一种服务更新方法及装置、系统
CN111182014B (zh) * 2018-11-09 2022-04-26 北京华为数字技术有限公司 一种数据同步方法和装置
CN111182014A (zh) * 2018-11-09 2020-05-19 北京华为数字技术有限公司 一种数据同步方法和装置
CN109739684A (zh) * 2018-11-20 2019-05-10 清华大学 基于向量时钟的分布式键值数据库的副本修复方法与装置
CN109814946A (zh) * 2018-12-29 2019-05-28 创新科存储技术(深圳)有限公司 一种在XenServer中实现分布式存储的方法和装置
CN110196856A (zh) * 2019-05-09 2019-09-03 腾讯科技(深圳)有限公司 一种分布式数据读取方法及装置
CN110196856B (zh) * 2019-05-09 2022-08-02 腾讯科技(深圳)有限公司 一种分布式数据读取方法及装置
CN110245149A (zh) * 2019-06-25 2019-09-17 北京明略软件系统有限公司 元数据的版本管理方法及装置
CN110245149B (zh) * 2019-06-25 2021-09-17 北京明略软件系统有限公司 元数据的版本管理方法及装置
CN111104070A (zh) * 2019-12-24 2020-05-05 北京同有飞骥科技股份有限公司 分布式系统中数据一致性的实现方法及系统
CN111310260A (zh) * 2020-01-21 2020-06-19 中国建筑股份有限公司 基于分布式存储架构的bim模型版本存贮转换方法
CN112000850A (zh) * 2020-08-26 2020-11-27 杭州海康威视系统技术有限公司 进行数据处理的方法、装置、系统及设备
CN112000850B (zh) * 2020-08-26 2024-02-20 杭州海康威视系统技术有限公司 进行数据处理的方法、装置、系统及设备
CN112256201A (zh) * 2020-10-23 2021-01-22 南京鹏云网络科技有限公司 一种分布式块存储系统及其卷信息管理方法
CN112256201B (zh) * 2020-10-23 2023-10-31 南京鹏云网络科技有限公司 一种分布式块存储系统及其卷信息管理方法
CN112579121A (zh) * 2020-12-09 2021-03-30 广州橙行智动汽车科技有限公司 一种数据处理的方法和装置
CN112988913A (zh) * 2021-05-11 2021-06-18 腾讯科技(深圳)有限公司 一种数据处理方法和相关装置
CN113342785A (zh) * 2021-07-06 2021-09-03 多点生活(成都)科技有限公司 数据处理方法和装置、服务端设备及存储介质
CN113342785B (zh) * 2021-07-06 2023-06-27 多点生活(成都)科技有限公司 数据处理方法和装置、服务端设备及存储介质
CN113407639A (zh) * 2021-07-16 2021-09-17 广州市百果园信息技术有限公司 数据处理方法、装置、系统及存储介质
CN113407639B (zh) * 2021-07-16 2024-05-14 广州市百果园信息技术有限公司 数据处理方法、装置、系统及存储介质
WO2023134519A1 (zh) * 2022-01-12 2023-07-20 北京奥星贝斯科技有限公司 在分布式数据库中同步更新元数据的方法及装置
CN115277145A (zh) * 2022-07-20 2022-11-01 北京志凌海纳科技有限公司 分布式存储访问授权管理方法、系统、设备和可读介质
CN115033585A (zh) * 2022-08-09 2022-09-09 北京奥星贝斯科技有限公司 针对目标数据库的数据合并处理方法及装置

Also Published As

Publication number Publication date
CN103294675B (zh) 2018-08-03

Similar Documents

Publication Publication Date Title
CN103294675A (zh) 一种分布式存储系统中的数据更新方法及装置
CN101233517B (zh) 把包括工作文件的集合保持在存储池中的方法和系统
CN102741843B (zh) 从数据库中读取数据的方法及装置
CN102197372B (zh) 已分区的、可缩放的、并且可用的结构化存储中的分区管理
US7953710B2 (en) Multi-master database synchronization without loss of convergence
CN101876983B (zh) 数据库分区方法与系统
CN102317923B (zh) 存储系统
JP2019519025A (ja) 分散システムにおける範囲の分割および移動
CN101233515A (zh) 把包括工作文件的集合保持在随机访问介质的存储池中
CN102110121A (zh) 一种数据处理方法及其系统
CN102158540A (zh) 分布式数据库实现系统及方法
CN105359099A (zh) 索引更新管线
CN103744906A (zh) 一种数据同步系统、方法及装置
CN102694860A (zh) 一种云存储的数据处理方法、设备及系统
CN102214205A (zh) 带有自适应克隆的经聚类的数据库系统中的逻辑复制
CN103092903A (zh) 数据库日志并行化
CN102495894A (zh) 重复数据查找方法、装置及系统
CN102202087A (zh) 一种标识存储设备的方法及系统
CN104423960A (zh) 一种项目持续集成的方法及系统
CN102726002B (zh) 数据配置及其回退方法和设备
CN104657158A (zh) 一种业务系统中业务处理的方法和装置
CN104216955A (zh) 一种操作数据及管理事务的方法、装置及分布式系统
CN105190611A (zh) 数据库横向扩展
CN102497286A (zh) 一种mib匹配方法和设备
CN104423982A (zh) 请求的处理方法和处理设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: SHENGDA NETWORK DEVELOPMENT CO., LTD., SHANGHAI

Free format text: FORMER OWNER: SHANGHAI SHENGXIAO CLOUD COMPUTING TECHNOLOGY CO., LTD.

Effective date: 20140605

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 201203 PUDONG NEW AREA, SHANGHAI TO: 201213 PUDONG NEW AREA, SHANGHAI

TA01 Transfer of patent application right

Effective date of registration: 20140605

Address after: 201213 402-B room, No. 727 Zhangjiang Road, Shanghai, Pudong New Area

Applicant after: Shanghai Shangda Networking Development Co., Ltd.

Address before: 201203 Shanghai Guo Shou Jing Road, Zhangjiang High Tech Park of Pudong New Area No. 356 building 3 room 124

Applicant before: Shanghai Shengxiao Cloud Computing Technology Co., Ltd.

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant