多副本数据的读写方法及系统的制作方法

文档序号:9787513阅读:565来源:国知局
多副本数据的读写方法及系统的制作方法
【技术领域】
[0001]本发明涉及计算机技术领域,具体涉及一种多副本数据的读写方法及系统。
【背景技术】
[0002]分布式系统就是将数据分散存储在多台独立的设备上。分布式系统为具有很多节点的集群系统,每个节点可以理解为一个数据存储服务器。在做数据存储时,将若干条数据存储到对应的节点中,这是分布式系统核心的概念。
[0003]在分布式系统中,数据一般备份为多个副本,其中一个副本作为主副本,假设任意一个副本的数据出现问题,可以从其他某一副本读取数据。
[0004]现有方案,数据写入的操作一般都是针对主副本,但是读取数据则是从主副本外的任一副本(从副本)读取,这种方式并不能保证读取的数据是最新写入的数据,也就是说,并不能保证数据强一致,可能会出现主副本还未将数据同步给从副本,数据访问请求就已经从从副本读取了数据,而导致读取的数据并不是最新写入的数据缺陷。

【发明内容】

[0005]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的多副本数据的读写方法和相应的多副本数据的读写系统。
[0006]根据本发明的一个方面,提供了一种多副本数据的读写方法,用于将数据的N个副本分别存储在N个数据节点中,方法包括:
[0007]当接收到数据写入请求时,将数据的W个副本写入W个数据节点中;其中,W小于或等于N;
[0008]当接收到数据读取请求时,从R个数据节点中读取数据的R个副本,其中,R小于或等于N;
[0009]W和R之和大于N。
[0010]根据本发明的另一方面,提供了一种多副本数据的读写系统,用于将数据的N个副本分别存储在N个数据节点中,系统包括:
[0011]写入模块,适于当接收到数据写入请求时,将数据的W个副本写入W个数据节点中;其中,W小于或等于N;
[0012]读取模块,适于当接收到数据读取请求时,从R个数据节点中读取数据的R个副本,其中,R小于或等于N;
[0013]W和R之和大于N。
[0014]根据本发明提供的方案,当接收到数据写入请求时,将数据的W个副本写入W个数据节点中,其中,w小于或等于N,当接收到数据读取请求时,从R个数据节点中读取数据的R个副本,其中,R小于或等于N,W和R之和大于N,能够确保在从分布式系统的数据节点读取数据时,能够读取到最新写入的数据,实现数据的强一致性。
[0015]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0016]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0017]图1示出了根据本发明一个实施例的多副本数据的读写方法的流程示意图;
[0018]图2示出了根据本发明另一个实施例的多副本数据的读写方法的流程示意图;
[0019]图3示出了根据本发明一个实施例的多副本数据的读写系统的功能框图;
[0020]图4示出了根据本发明另一个实施例的多副本数据的读写系统的功能框图。
【具体实施方式】
[0021]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0022]分布式系统就是将数据分散存储在多台独立的设备上,为具有很多数据节点的集群系统,也就是说,针对一份数据,一般备份N个副本,将数据的N个副本分别存储在N个数据节点中。
[0023]图1示出了根据本发明一个实施例的多副本数据的读写方法的流程示意图。如图1所示,该方法包括以下步骤:
[0024]步骤SlOO,当接收到数据写入请求时,将数据的W个副本写入W个数据节点中,其中,W小于或等于N。
[0025]当计算机用户需要将数据写入到分布式系统的数据节点时,计算机用户向该分布式系统发送数据写入请求,分布式系统在接收到数据写入请求时,将数据的W个副本写入W个数据节点中,这里W小于或等于N。
[0026]步骤SlOl,当接收到数据读取请求时,从R个数据节点中读取数据的R个副本,其中,R小于或等于N,W和R之和大于N。
[0027]当计算机用户需要从分布式系统读取数据时,计算机用户调用分布式系统的接口,向分布式系统的数据节点发送读取请求,从R个数据节点中读取数据的R个副本,其中,R小于或等于N,这里W和R之和大于N,能够保证从分布式系统的数据节点读取的数据是最新的,实现了数据的强一致性,克服了现有方法中,只将数据的一个副本写入到数据节点中,再将该数据节点的数据同步到其他数据节点,然而,由于每份数据都有多个副本,在某份数据的更新过程中,该份数据的各个副本可能会产生数据不一致的情况,在数据并未同步到其他数据节点时,就读取数据节点的数据的情况下,容易导致读取的数据并不是最新的,导致数据不一致的缺陷。
[0028]举例说明,针对一份数据,一般会备份5个副本,将数据的5个副本分别存储在5个数据节点中,当接收到数据写入请求时,将数据的3个副本写入3个数据节点中,当接收到数据读取请求时,从3个数据节点中读取数据的3个副本,从而保证W和R之和大于N,能够确保在从分布式系统的数据节点读取数据时,能够读取到最新写入的数据,实现数据的强一致性,这里仅仅是举例说明,并未对写入数据节点的个数和读取数据副本的个数进行限定,只要能够保证W和R之和大于N,W和R可以随机取值。
[0029]根据本发明上述实施例提供的方法,当接收到数据写入请求时,将数据的W个副本写入W个数据节点中,其中,W小于或等于N,当接收到数据读取请求时,从R个数据节点中读取数据的R个副本,其中,R小于或等于N,W和R之和大于N,能够确保在从分布式系统的数据节点读取数据时,能够读取到最新写入的数据,实现数据的强一致性。
[0030]图2示出了根据本发明另一个实施例的多副本数据的读写方法的流程示意图。如图2所示,该方法包括以下步骤:
[0031]步骤S200,为数据的N个副本分别设置副本标识。
[0032]在本发明实施例中,针对一份数据,一般会备份N个副本,将数据的N个副本分别存储在N个数据节点中,为每个副本设置唯一的副本标识,N个副本分别设置不同的副本标识,设置副本标识可以将N个副本区分开,并且可以根据副本标识获取与副本相关的信息,例如时间戳等,便于查找。
[0033]步骤S201,当接收到数据写入请求时,以数据键值对方式将数据的W个副本及其数据写入时间戳、副本标识关联存储至W个数据节点中,其中,W小于或等于N。
[0034]具体地,数据写入时间戳定义了数据的副本写入数据节点的时间。
[0035]当将数据的W个副本写入W个数据节点中时,可以利用网络时间协议定义同时写入数据的W个副本的数据写入时间戳。其中,网络时间协议(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器做同步化,提供高精准度的时间校正。利用网络时间协议定义数据写入时间戳,可以更准确地记录数据的W个副本写入W个数据节点的时间,从而进一步提升了读取到最新数据的概率。
[0036]W个数据节点中的数据的W个副本及其数据写入时间戳、副本标识具有数据键值对的形式,即具有key-value的形式,其中,key为数据键,value为数据值,通过数据键值对的方式可方便地对数据进行管理
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1