一种对等网络冗余数据平衡方法和系统与流程

文档序号:11234808阅读:735来源:国知局
一种对等网络冗余数据平衡方法和系统与流程
本发明涉及区块链
技术领域
,更具体地,涉及对等网络冗余数据平衡方法和系统。
背景技术
:随着分布式应用的推广,构造分布式应用的对等网络技术也越来越重要,在此技术上,我们除了能做区块链,也能做传统的通信行业,比如即时通讯等。不管是涉及金融业的区块链技术还是传统行业的通信,在整个对等网络中我们都离不开对数据的存储和操作。在传统的方案中,我们由数据中心统一管理应用的数据;但是在对等网络中,由于没有中心服务器的概念,所以对应用数据的存储是对等网络一个主要的技术问题。此专利主要目的是为对等网络提供一种数据存储以及数据冗余的手段。为了简洁起见,下面的描述凡涉及数据存储及数据冗余都用数据存储表示。目前对等网络中实现数据存储主要技术大概分为以下3个步骤:1、查找路由表中最接近目标数据n(n>2)个节点;2、发送数据到该n个节点上;3、节点收到请求,将数据保存至本地存储设备上。目前的解决方案最大的缺点是容易导致数据波动。如果某个节点的路由表频繁更新,那么数据存储的目标节点可能就会有变更。这样会导致数据存储请求消耗对等网络的带宽,影响网络的运行效率。技术实现要素:本发明的目的是最大化减小由于数据存储引起的数据波动从而对网络产生影响。本发明提出了一种对等网络冗余数据平衡方法,基于一致hash算法,将每个对象映射到hash圆环边上的一个点,再将可用的节点映射到hash圆环的不同位置,还包括:s1,将hash圆环划分成q等份,每个节点管理q/n数额的等份资源;s2,当有节点加入时候,要从其他节点获得一定数额的等份;如果有节点资源离开时,该节点负责的等份资源重新划分到其他的节点上。本发明还提出了一种对等网络冗余数据平衡系统,包括:多个网络节点,所述多个网络节点分布在一致性hash圆环上,数据作为对象映射到所述网络节点上,所述hash圆环上被划分成q等份,每个节点管理q/n数额的等份资源;当有网络节点加入时候,从其他网络节点获得一定数额的等份;如果有网络节点资源离开时,该网络节点负责的等份资源重新划分到其他的节点上。本发明的有益效果包括:1、减少数据波动导致对等网络带宽消耗;2、数据均衡分布在设计的hash环上;3、数据冲突解决的裁量度比传统的要宽泛。附图说明图1为现有的一致性hash算法的原理图;图2为本发明的方法的一个实施方式的流程图;图3为本发明的方法的又一个实施方式的流程图;图4为本发明的方法的数据备份的流程图;图5为本发明的方法的数据备份的流程图;图6为本发明的方法的又一个实施方式的流程图;图7为本发明的方法的又一个实施方式的流程图。具体实施方式下面参照附图描述本发明的实施方式,其中相同的部件用相同的附图标记表示。在本技术方案中,方案将涉及如下方面:数据分布,数据冗余,数据冲突和节点失效。第一实施方式-数据分布在数据分布的结构上,我们使用改进后的一致性hash算法。如图1所示,一致性hash算法的主要实现原理是:将每个对象(object)映射到圆环边上的一个点,系统再将可用的节点(node)映射到圆环的不同位置。查找某个对象对应的节点时,需要用一致性hash算法计算得到对象对应圆环边上的位置,沿着圆环边上查找直到遇到某个节点,这个节点即为对象应该保存的位置。当删除一个节点时,这台机器上保存的所有对象都要移动到下一个节点。添加一个节点到圆环边上某个已有点时,这个已有点的下一个节点需要将这个节点前对应的对象移动到新节点上。更改对象在节点上的分布可以通过调整节点的位置来实现。因此,一致性hash算法具有数据冗余少,数据负载均衡,存储过渡平滑及关键词单调等特性。在传统的一致性hash算法中,节点hash到环路中具有很大的随机性,这样将导致节点管理的地址空间大小不一,节点的负载不均衡。如图2所示,在本发明的改进方案中:s1,将圆环划分成q等份,每个节点管理q/n数额的等份资源。优选地,q要远大于节点数n。s2,在这个策略下,当有节点加入时候,要从其他节点获得一定数额的等份;如果有节点资源离开时,该节点负责的等份资源重新划分到其他的节点上。进度演示过程如下表1-3所示。假设将hash环分成了12等份,起初只有3个节点资源,并且节点负责的等份如下表1所示:nodeid负责的网络等份13,5,8,921,4,7,1032,6,11,12表1在某时刻有个节点(节点4)进入,新节点(节点4)从其他现有节点获取一定数额等份,可以按照等分来从其他节点获取数额,如下表2所示:nodeid负责的网络等份13,8,921,4,1032,6,1145,7,12表2此时,数据只需要从节点1、节点2、节点3分别转移5、7、12的数据值至新增的节点即可。其中,从现有节点转移出的数据可以是随机的,还可以按照一定预设的规律。同理,某时刻一个节点(例如节点3)离开对等网络时,此该节点负责的资源需要重新换份到其他节点上,从要离开的节点转移出的数据放到其他哪一个节点,可以是随机的或者按照一定预设的规律,一种情况如下表3所示:nodeid负责的网络等份12,3,8,921,4,6,1032,6,1145,7,11,12表3从表中我们可以看出,某个节点的离开不会影响起其他节点数据的波动,需要重新划分的数据只是被移除的节点。所有的网络节点都来自于对等网络的路由表。如果hash环划分的网络足够多,远大于资源数,那么网络节点就能平均的分布在hash环上,这样就能实现数据波动对对等网络产生的带宽最小的影响。第二实施方式-数据冗余在对等网络中,每个终端设备都是一个活动的网络节点,并且根据对等网络应用的特性每个终端设备线上活动时间都是具有不确定的性,这样数据稳定性和可靠性就受到严重的影响。为此,在本实施方式中,如图3所示,本发明的方法包括的s1-s2与第一实施方式相同。s3,为了保证数据的稳定和可靠,将相同的数据key(data)备份n个副本(n优选地大于2),其中key(date)表示数据身份,不同的数据,身份一定是不同的。并且将副本数据延hash环的预定方向(顺时针方向或逆时针方向)写入不同的网络节点。如图4所示。s4,如果有节点异常或是离线,将该节点的数据副本按hash环的预定方向写入不同的网络节点中即可,如图5所示。由于hash环上是通过虚拟节点映射过去的,所以hash环上多个虚拟节点可能会是同一个物理节点。优选地,要避免将数据存储在同一个物理节点。为了最大避免这样的冲突,一个有效的实现手段就是将hash环等份成足够大,即远大于节点资源(本地路由表项),并将节点(虚拟节点)平均映射到hash环上。不同的应用对于备份的读写可能有不同的要求,对于区块链应用来说,可能需要所有的节点返回成功才认为写操作已经成功;对与传统的即时通信消息来说,可能只需要保证有一个节点返回成功就认为操作成功。s5,根据w+r>n的关系模型,来设定数据成功写到网络节点或从网络节点成功读取的条件,其中w为写请求成功返回的数量,r为读请求成功返回的数量,n为数据备份的副本数量。本发明提出了如下关系模型:w+r>n(1)其中,w:写请求成功返回的数量,r:读请求成功返回的数量,n:数据备份的数量。根据w+r>n这个关系模型推导,可以演化出不同的策略,如果强调写的一致性,那么读的一致性就会差,反过来也一样。比如,n=3,当强调写一致性实时,就可以定义w=3,r=1,在判断写是否成功时,要保证w>n-r个备份节点的响应,即要保证最少来自3个备份节点。第三实施方式-数据冲突在其他的应用场景中,对等网络数据的存储会可能会导致数据冲突,比如有两个节点同时对同一份数据进行修改。由于对等网络没有中心节点,没办法通过增加版本号的机制去解决数据冲突。在本发明中,如图6所示,设计了一种解决数据重复的方式。s6,为数据设置时间向量:data=[v1,v2,.vi,..,vn],其中vi=(nodeid,timestamp)(2)表示为数据data在timestamp时刻被nodeid修改,向量存储了所有修改过数据的节点信息。s7,将所有的网络节点通过同步网络时间作为节点的逻辑时间戳,保证对等网络中各个节点时间的一致性。所有的网络节点例如可以通过sntp协议同步网络时间作为节点的逻辑时间戳。在产生数据冲突的时候,可以将产生冲突的数据发给应用层处理。基于上面的公式(2),举例一个应用场景。假设有a、b、c三个节点,a节点首先对数据key(data)进行修改操作,并将数据备份同步至b和c两个节点上。由于是a修改的数据,所以备份节点上的记录信息是都是与a节点相关,如下表4:表4之后,有对该同一个数据key(data)的操作请求被b节点处理,但是b处理后的数据,由于c节点异常,没有在c节点同步成功,此时数据的向量信息如下表5所示:表5如果设定读请求r>1,就要从3个备份节点里要读取2份数据,那么有如下情形需要处理:1、如果数据来自于a和b节点,只需将(b,2)版本的数据发送到应用层。2、如果数据来自于a和c,或b和c,需要将c、a节点的数据或者c、b节点数据都返回给应用层,由应用层解决数据的冲突,并且应用层解决的冲突数据需要写回。第四实施方式-节点失效对等网络中的节点上线或下线的活动可能比较频繁,所以节点失效的问题是等网络产生数据波动的主要因素。本发明的方法还包括s8,通过心跳包机制去探测,如果在某个时间阀值才探测到网络节点心跳,则认为该网络节点异常;如果时间超过这个阀值,则认为该网络节点已经失效。s9,如果网络节点异常或失效,将该网络节点的数据备份至其他的节点上(副本同步)。为了校验副本之间的差异,减少副本同步产生的传输量,可以使用merkletree做副本间的差异化。如果在存储设备允许或是应用程序没有特别设置情况下,不会对已存储的数据做老化处理,这样处理的目的就是为了在副本同步的时候减少数据的传输量,从而提高对等网络对数据带宽的处理。根据本发明的另一方面,还提出一种对等网络冗余数据平衡系统,所述系统包括多个网络节点,所述多个网络节点分布在一个hash圆环上,数据作为对象映射到所述网络节点上,所述多个网络节点可以被配置为执行第一至第四实施方式中的步骤s1-s9。以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1