CN105072194A - 一种分布式文件系统中的存储数据修复结构及修复方法 - Google Patents

一种分布式文件系统中的存储数据修复结构及修复方法 Download PDF

Info

Publication number
CN105072194A
CN105072194A CN201510533882.2A CN201510533882A CN105072194A CN 105072194 A CN105072194 A CN 105072194A CN 201510533882 A CN201510533882 A CN 201510533882A CN 105072194 A CN105072194 A CN 105072194A
Authority
CN
China
Prior art keywords
node
data
centroid
tree
message
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
CN201510533882.2A
Other languages
English (en)
Other versions
CN105072194B (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.)
Nanjing University
State Grid Corp of China SGCC
State Grid Shanghai Electric Power Co Ltd
Nanjing NARI Group Corp
Information and Telecommunication Branch of State Grid Jibei Electric Power Co Ltd
Original Assignee
Nanjing University
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 Nanjing University filed Critical Nanjing University
Priority to CN201510533882.2A priority Critical patent/CN105072194B/zh
Publication of CN105072194A publication Critical patent/CN105072194A/zh
Application granted granted Critical
Publication of CN105072194B publication Critical patent/CN105072194B/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]
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种分布式文件系统中的存储数据修复结构及其修复方法。本发明设计了一种通用的修复框架,包括修复树生成协议模块,编码数据传输协议模块,网络监测模块,编码模块;其可以很方便的应用到现有的分布式存储系统中。在树形结构修复中,能够结合网络的拓扑结构,根据节点之间链路的使用情况,构造合理的传输路径,并在中间节点进行编码和解码,以达到减少数据修复过程中产生的流量开销。同时还能够利用网络中资源较多的链路来降低整个数据修复过程中的时间开销。从另一方面来讲,这对于网络中的负载均衡也有很重要的意义,能很好的避免性能瓶颈的产生。

Description

一种分布式文件系统中的存储数据修复结构及修复方法
技术领域
本发明涉及数据中心(DataCenter)网络系统,具体是一种分布式存储中的数据修复结构及方法。
背景技术
随着云计算的兴起,相关技术的迅猛发展,数据中心作为云计算的后台,提供可靠的,高效的云计算服务。目前的研究表明,数据中心的网络资源已经很大程度上成为了数据中心的一个性能瓶颈。而且随着编码技术的引入,这一瓶颈变得愈发明显。因为在数据中心,节点失效变得比较常见,因此数据修复操作变得相对频繁起来。而编码的引入使得数据修复的开销变得相当高昂。
发明内容
本发明所要解决的技术问题是提供一种分布式文件系统中的存储数据修复结构及其修复方法,其结合底层的网络拓扑,通过一系列协议模块和软件模块提供高效的树形结构的数据恢复,不仅大大降低了数据修复的流量开销,而且使得修复过程的持续时间大为缩短。
本发明所述的一种分布式文件系统中的数据修复结构,所述分布式文件系统中数据存储采用主/从架构模式,在中心节点和从节点中都设有:
修复树生成协议模块,即STNRP:以丢失数据所属文件id作为特征码标识编码块,构建一棵StenierTree修复树,以支持编码数据的传输协议模块;
编码数据传输协议模块,即CDTP:对于每个特征码标识的编码块通信,根据修复树生成协议模块生成的修复树,同步各个叶子节点和中间节点,使得编码块由叶子节点同步传输到根结点,并在中间过程或者转发,或者做编码操作;
网络监测模块:负责更新网络各链路资源的使用情况,由adjMatrix矩阵来表示,以展现整个网络的拓扑结构,其权值表示链路上的负载情况;
编码模块:在中心节点该模块负责计算修复向量,从节点则负责在中间节点上对编码块的编码解码操作;
树形修复模块:负责根据网络的拓扑信息,构造出一棵修复树,然后将这颗树转发给STNRP协议模块。
2、一种分布式文件系统中的数据修复方法,其特征在于包括以下步骤:
1)生成修复树,其具体步骤包括:
11)中心节点运行STNR算法,根据网络拓扑结构,构造一棵再生树用于数据修复,这棵树本质上是一棵StenierTree,其保证修复带宽和流量;
12)中心节点实现stnrp_dispatch()函数,该函数通过Socket将再生树中的节点信息分发到每个从节点,包括其父节点,子节点信息以及修复系数;
13)从节点实现stnrp_rcv()函数,该函数收到中心节点的节点信息后,在本地构造修复结构,包括数据源,数据目的地以及修复系数;然后构造一个接收队列和一个发送队列,一个接收线程和一个发送线程;然后调用stnrp_ack()将结果报告给中心节点;
14)中心节点若收到节点构造失败消息,则调用stnrp_replace()函数,以stnrp_closest()函数来选择替代节点以代替再生树中构造失败的节点,接着调用stnrp_dispatch()向这些节点分发修复信息;选择替代节点的策略为:1)如果节点是参与节点,则选择离其最近的一个节点替换;2)如果节点是数据提供节点,则从提供节点集合中选取一个下一个瓶颈带宽值最大的节点;
15)实现中心节点的stnrp_monitor()函数,统计节点的反馈信息;
16)如果所有从节点都成功建立修复结构,则调用中心节点的stnrp_send(),通知再生树中所有叶子结点开始发送数据;
2)编码数据传输,其具体步骤包括:
21)以丢失数据所属文件id作为特征码标识编码块,并以id为关键字,将其映射到相应的修复管道;
22)向其父节点发送一个消息,告诉其数据开始传输;当从节点接收到数据开始传输的消息,便根据其收到的特征标识码,找到该节点上缓存的对应的修复结构,唤醒接收线程,发送线程并设置好用于同步的条件向量等参数;
23)从节点实现cdtp_rcvData()函数,该函数负责接收并编码数据,并以编码块的特征标识码,将编码后的数据放入到对应的发送队列sendQueue之中;
如果是数据提供节点,则数据源包括两部分:来自子节点的数据和存储在本地的编码块;叶子节点由于其子节点为空,所以其数据源为本地编码块;cdtp_rcvData()会每次从所有的数据源中取一个缓存块大小的数据,然后在本地进行编码,并将编码后的数据放入发送队列sendQueue之中;
如果是参与节点,则其数据源为来自孩子节点的数据,cdtp_rcvData()每次从来自所有子节点的Socket中读取缓存块大小的数据,然后在本地进行编码,并将编码后的数据放入发送队列sendQueue之中;
24)从节点实现cdtp_sendData()函数,该函数负责从发送队列sendQueue之中读取数据,然后将数据发送至目的地,cdtp_encodeData()函数主要负责对接收到的数据进行编码以得到最终生成的编码块以替换失效的编码块,如果节点是再生树中的根结点,则是数据流的终点,此时cdtp_sendData()调用cdtp_encodeData()函数,将数据在本地进行编码,得到最后生成的编码块;cdtp_ack()函数主要负责向中心节点汇报数据修复的最终结果;如果节点不是再生树中的根结点,则cdtp_sendData()函数通过Socket将数据发送至其父节点;
25)当数据发送完成之后,向其父节点发送一个传输完成的消息,根据特征标识码,发送端关闭本地的发送线程,回收发送队列等资源,接收端收到消息后,关闭对应的接收线程,回收接收队列资源;
26)数据会经历接收,编码,发送三个过程;为了保证系统的正常运行,使用锁和条件变量来保证队列的同步与互斥;这种情况下,队列为空有两种可能:数据处理完成和数据正在前一个操作中处理,为了区分这两种情况,当数据处理完成之后,认为向队列中添加一块空的数据块。这样,当队列为空时,则下一操作等待直至新的数据到达。当数据块为空的时候,则表示数据处理完成;
3)网络监测,其具体步骤包括:
31)中心节点向网络中所有节点发送其相邻节点的地址信息,新开一个监听线程,用以监听来自从节点的拓扑更新消息;
32)从节点收到中心节点的消息后,更新其保存的相邻节点列表,新开两个线程,分别用于向相邻节点发送ping消息和向中心节点报告拓扑更新消息,为了提高线程的利用率,这里采用线程池的形式来执行任务;
33)从节点向其相邻节点发送ping消息,消息格式就包含2个字段:消息类型字段和时间戳字段。消息类型表示这是一个网络探测消息,时间戳表明ping消息发送的时间点;
34)从节点接收到来自其它节点的ping消息之后,根据接收到的时间和消息中的时间戳,更新与其相邻节点的链路使用情况;
35)从节点定期向中心节点报告其拓扑更新情况,消息格式分为两部分:消息类型字段以及如果序列对;序列对有地址和试验组成,表示节点和其相邻节点链路的链路的时延值;
36)中心节点接收到来自从节点的拓扑更新消息后,便更新其adjMatrix拓扑矩阵;
4)实现编码,其具体步骤包括:
41)无论是中心节点还是从节点,都需要编码模块,来对编码数据进行分析,处理;
42)中心节点的编码模块负责对编码块的分析以及修复向量的计算;一旦确定k个数据提供节点时,再生树中的节点需要知道对这k块编码块应该怎样处理;根据修复向量的计算方法,我们需要分析如下信息:a)k块编码块对应的编码向量。b)丢失编码块的编码向量。一旦获取到这些信息,我们就可以计算出丢失编码块的修复向量;
43)从节点的编码模块负责对编码块数据的编码;由于允许数据在中间节点进行编码,所有再生树中的所有节点都需要对接收到的数据进行编码处理;如果是数据提供节点,则需要知道本地存储的以及从Socket中读取的编码块的编码策略,包括各个编码块对应的系数以及该如何对这些编码块进行编码;如果是参与节点,则需要知道接收到来自若干子节点的编码数据块时的编码策略,即这些编码块对应的系数以及该如何对接收到的编码块进行编码;
44)为了提高编码效率,我们对数据按块大小组织成数据队列;每编码完一块数据块,则将其放入发送队列,这样以一种流的形式来对数据进行编码,转发,数据块的大小在配置文件中配置;
5)树形修复,其具体步骤包括:
51)以网络拓扑矩阵adjMatrix,丢失编码块剩余的数据提供节点和选中的替换节点作为输入;
52)运行最大带宽路径算法,找到从数据提供节点到替换节点的各自最大带宽路径,取最大的k个数据提供节点作为修复过程中的数据提供节点,并得到一个瓶颈带宽最优值;
53)借鉴蚁群算法思想,分别找出步骤42)中选择的数据提供节点到替换节点的所有可行路径,并对这些路径上的边赋予新的权值,保存在ants矩阵中;在ants矩阵中,权值越低表示数据经由该条链路传输的代价越低;
54)以dijstra算法作为选路的基本算法,在步骤43)中获得的ants矩阵之上,初始化一棵StenierTree。最开始树中只包含替换节点节点。每次寻找从42)获得的数据提供节点中到StenierTree的最短路径,然后更新StenierTree,将这条路径上的链路和节点加入到StenierTree之中,直到数据提供节点集合中的节点都被添加到StenierTree之中,算法结束。
本发明在引入编码的分布式存储中,当节点失效的时候,目的节点需要从多个数据源节点来获取编码数据。由文件id标识的编码块,通过同步各个参与节点,组件一棵树形结构的修复系统,使得编码数据块能够通过中间节点进行编码,从而使得我们可以避开那些瓶颈链路的同时减少网络中的流量开销,降低数据中心的负载,增加网络的资源利用率。树形结构的修复系统由STNRP/CDTP协议模块和若干的软件模块组成。树形结构的修复系统能够在基于编码的数据修复场景下,通过构造一棵优化的StenierTree,并以一种管道流的形式对数据进行编码和转发,使得其在修复过程中的瓶颈带宽最优且尽可能的降低其产生的网络流量开销。
附图说明
图1系统场景架构图;
图2STNRP协议模块流程图;
图3CDTP协议模块流程图;
图4STNR算法。
具体实施方式
下面结合附图对本发明进行详细说明。
图1是系统的场景图,树形修复系统采用主/从架构,有一个中心节点和若干从节点组成。每个节点都运行着本发明所设计的STNRP和CDTP协议模块以及若干软件模块。具体来说,当目的节点需要从若干数据源获取编码数据时,中心节点会运行树形修复模块来构造出一颗优化的再生树,然后将树转发给STNRP协议模块。接着STNRP协议模块同步再生树中的各个节点。接着CDTP协议模块能够负责将编码数据在中间节点上进行编码和转发,沿着再生树的结构传输至根结点。相对于忽略网络拓扑结构而直接将各个编码数据发送到目的节点,大大降低了传输的时间开销和对网络资源的占用。
图2是STNRP协议模块的流程图。当再生树构造完成时被转交给STNRP协议模块,STNRP协议模块则调用stnrp_dispatch()开始分发节点信息。发送完后开始执行stnrp_monitor()方法等待从节点的执行结果。在从节点则调用stnrp_rcv()函数来接收中心节点的修复结构构造消息,然后再本地构造修复结构,包括一个接收线程和一个发送线程以及一个接收队列,一个发送队列,接着建立该节点和子节点的数据流管道以及父节点的数据流管道。然后从节点调用stnrp_ack()将执行结果报告给中心节点。当中心节点收到来自从节点的反馈信息时,如果是构造失败,则开始选择是否有备用节点以替换构造失败的节点,如果有,则分发该节点信息(包括更新其子节点和其父节点等节点信息),如果没有,则标记为该编码块修复失败。如果是构造成功消息,则stnrp_monitor()查看是否收到了所有节点的反馈信息,如果没有则继续等待修复结构的建立完成,如果是,则调用stnrp_send()通知叶节点开始传输数据,启动修复过程。
图3是CDTP协议模块的流程图。从节点向其父节点发送数据传输开始消息,告诉其父节点激活接收线程,接收队列等。接着接收方首先判断自己是不是叶子节点,如果是,则根据中心节点发来的特征码,从本地读取数据然后发送给其父节点。如果不是叶子节点,则等待接收数据。当接收到编码数据时,提取其标识的特征码,根据其特征码放入相应的接收队列之中。然后调用cdtp_rcvData()从接收队列读取数据,当接收队列的数据达到编码要求时(来自子节点的编码数据均已到达),便读取这些数据,对之进行编码,然后根据其标识的特征码放入对应的发送队列之中。接下来cdtp_sendData()会开始发送数据。如果发送队列为空则等待。如果不为空,则从发送队列一次读取一块编码数据块,根据其特征码转发至其父节点。如果节点是根结点,则将从发送队列中读取的数据直接做本地化存储。当从节点数据发送完成时,向父节点发送数据传输完成消息,同时关闭本地的发送线程,回收发送队列等资源。
图4是STNR算法。该算法以当前网络拓扑结构,丢失编码块所属的数据提供节点以及新选的替换节点为输入,输出一棵用于数据修复的StenierTree。算法整个过程维护一棵StenierTree,初始时该树中仅包含一个节点,即编码数据的目的节点。算法的第一步便是寻找数据提供节点集合到替换节点之间的最大带宽路径。一旦确定数据提供节点集合中各个节点到替换节点的最大带宽路径之后,其各自的瓶颈带宽也就确定了。接着便是从数据提供节点集合中选取k个瓶颈带宽最大的节点,作为此次数据修复中的数据提供节点。紧接着,利用网络拓扑结构的不变性,首先寻找出这k个节点到替换节点中所有链路带宽值大于所得的瓶颈带宽值的路径,并利用蚁群算法的思想,将这些链路重新赋予权值,这个时候可以得到一个简化的网络拓扑结构图,在这个图中,所有的链路都满足带宽要求,且其链路上的权值表示编码数据经由该条链路传输所能带来的开销收益。然后借鉴传统的StenierTree的启发式算法选择编码数据的路径,从算法中可以看到选路时主要考虑2个因素:1)链路的带权和最低,这表示其传输代价越低。2)传输路径尽可能早和多的产生交汇,这样我们就可以在中间节点对数据进行编码,从来节省编码数据的传输开销。一旦传输路径选定后就把该路径上的所有节点加入到算法维护的StenierTree中,直到k个节点均加入到StenierTree中,这时候算法结束,返回这棵StenierTree。
本发明具体应用途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进,这些改进也应视为本发明的保护范围。

Claims (2)

1.一种分布式文件系统中的存储数据修复结构,所述分布式文件系统中数据存储采用主/从架构模式,并设有中心节点和从节点;其特征在于,在中心节点和从节点中都设有:
修复树生成协议模块,即STNRP:以丢失数据所属文件id作为特征码标识编码块,构建一棵StenierTree修复树,以支持编码数据的传输协议模块;
编码数据传输协议模块,即CDTP:对于每个特征码标识的编码块通信,根据修复树生成协议模块生成的修复树,同步各个叶子节点和中间节点,使得编码块由叶子节点同步传输到根结点,并在中间过程或者转发,或者做编码操作;
网络监测模块:负责更新网络各链路资源的使用情况,由adjMatrix矩阵来表示,以展现整个网络的拓扑结构,其权值表示链路上的负载情况;
编码模块:在中心节点该模块负责计算修复向量,从节点则负责在中间节点上对编码块的编码解码操作;
树形修复模块:负责根据网络的拓扑信息,构造出一棵修复树,然后将这颗树转发给STNRP协议模块。
2.一种分布式文件系统中的存储数据修复方法,其特征在于包括以下步骤:
1)生成修复树,其具体步骤包括:
11)中心节点运行STNR算法,根据网络拓扑结构,构造一棵再生树用于数据修复,这棵树本质上是一棵StenierTree,其保证修复带宽和流量;
12)中心节点实现stnrp_dispatch()函数,该函数通过Socket将再生树中的节点信息分发到每个从节点,包括其父节点,子节点信息以及修复系数;
13)从节点实现stnrp_rcv()函数,该函数收到中心节点的节点信息后,在本地构造修复结构,包括数据源,数据目的地以及修复系数;然后构造一个接收队列和一个发送队列,一个接收线程和一个发送线程;然后调用stnrp_ack()将结果报告给中心节点;
14)中心节点若收到节点构造失败消息,则调用stnrp_replace()函数,以stnrp_closest()函数来选择替代节点以代替再生树中构造失败的节点,接着调用stnrp_dispatch()向这些节点分发修复信息;选择替代节点的策略为:1)如果节点是参与节点,则选择离其最近的一个节点替换;2)如果节点是数据提供节点,则从提供节点集合中选取一个下一个瓶颈带宽值最大的节点;
15)实现中心节点的stnrp_monitor()函数,统计节点的反馈信息;
16)如果所有从节点都成功建立修复结构,则调用中心节点的stnrp_send(),通知再生树中所有叶子结点开始发送数据;
2)编码数据传输,其具体步骤包括:
21)以丢失数据所属文件id作为特征码标识编码块,并以id为关键字,将其映射到相应的修复管道;
22)向其父节点发送一个消息,告诉其数据开始传输;当从节点接收到数据开始传输的消息,便根据其收到的特征标识码,找到该节点上缓存的对应的修复结构,唤醒接收线程,发送线程并设置好用于同步的条件向量等参数;
23)从节点实现cdtp_rcvData()函数,该函数负责接收并编码数据,并以编码块的特征标识码,将编码后的数据放入到对应的发送队列sendQueue之中;
如果是数据提供节点,则数据源包括两部分:来自子节点的数据和存储在本地的编码块;叶子节点由于其子节点为空,所以其数据源为本地编码块;cdtp_rcvData()会每次从所有的数据源中取一个缓存块大小的数据,然后在本地进行编码,并将编码后的数据放入发送队列sendQueue之中;
如果是参与节点,则其数据源为来自孩子节点的数据,cdtp_rcvData()每次从来自所有子节点的Socket中读取缓存块大小的数据,然后在本地进行编码,并将编码后的数据放入发送队列sendQueue之中;
24)从节点实现cdtp_sendData()函数,该函数负责从发送队列sendQueue之中读取数据,然后将数据发送至目的地,cdtp_encodeData()函数主要负责对接收到的数据进行编码以得到最终生成的编码块以替换失效的编码块,如果节点是再生树中的根结点,则是数据流的终点,此时cdtp_sendData()调用cdtp_encodeData()函数,将数据在本地进行编码,得到最后生成的编码块;cdtp_ack()函数主要负责向中心节点汇报数据修复的最终结果;如果节点不是再生树中的根结点,则cdtp_sendData()函数通过Socket将数据发送至其父节点;
25)当数据发送完成之后,向其父节点发送一个传输完成的消息,根据特征标识码,发送端关闭本地的发送线程,回收发送队列等资源,接收端收到消息后,关闭对应的接收线程,回收接收队列资源;
26)数据会经历接收,编码,发送三个过程;为了保证系统的正常运行,使用锁和条件变量来保证队列的同步与互斥;这种情况下,队列为空有两种可能:数据处理完成和数据正在前一个操作中处理,为了区分这两种情况,当数据处理完成之后,认为向队列中添加一块空的数据块。这样,当队列为空时,则下一操作等待直至新的数据到达。当数据块为空的时候,则表示数据处理完成;
3)网络监测,其具体步骤包括:
31)中心节点向网络中所有节点发送其相邻节点的地址信息,新开一个监听线程,用以监听来自从节点的拓扑更新消息;
32)从节点收到中心节点的消息后,更新其保存的相邻节点列表,新开两个线程,分别用于向相邻节点发送ping消息和向中心节点报告拓扑更新消息,为了提高线程的利用率,这里采用线程池的形式来执行任务;
33)从节点向其相邻节点发送ping消息,消息格式就包含2个字段:消息类型字段和时间戳字段。消息类型表示这是一个网络探测消息,时间戳表明ping消息发送的时间点;
34)从节点接收到来自其它节点的ping消息之后,根据接收到的时间和消息中的时间戳,更新与其相邻节点的链路使用情况;
35)从节点定期向中心节点报告其拓扑更新情况,消息格式分为两部分:消息类型字段以及如果序列对;序列对有地址和试验组成,表示节点和其相邻节点链路的链路的时延值;
36)中心节点接收到来自从节点的拓扑更新消息后,便更新其adjMatrix拓扑矩阵;
4)实现编码,其具体步骤包括:
41)无论是中心节点还是从节点,都需要编码模块,来对编码数据进行分析,处理;
42)中心节点的编码模块负责对编码块的分析以及修复向量的计算;一旦确定k个数据提供节点时,再生树中的节点需要知道对这k块编码块应该怎样处理;根据修复向量的计算方法,我们需要分析如下信息:a)k块编码块对应的编码向量。b)丢失编码块的编码向量。一旦获取到这些信息,我们就可以计算出丢失编码块的修复向量;
43)从节点的编码模块负责对编码块数据的编码;由于允许数据在中间节点进行编码,所有再生树中的所有节点都需要对接收到的数据进行编码处理;如果是数据提供节点,则需要知道本地存储的以及从Socket中读取的编码块的编码策略,包括各个编码块对应的系数以及该如何对这些编码块进行编码;如果是参与节点,则需要知道接收到来自若干子节点的编码数据块时的编码策略,即这些编码块对应的系数以及该如何对接收到的编码块进行编码;
44)为了提高编码效率,我们对数据按块大小组织成数据队列;每编码完一块数据块,则将其放入发送队列,这样以一种流的形式来对数据进行编码,转发,数据块的大小在配置文件中配置;
5)树形修复,其具体步骤包括:
51)以网络拓扑矩阵adjMatrix,丢失编码块剩余的数据提供节点和选中的替换节点作为输入;
52)运行最大带宽路径算法,找到从数据提供节点到替换节点的各自最大带宽路径,取最大的k个数据提供节点作为修复过程中的数据提供节点,并得到一个瓶颈带宽最优值;
53)借鉴蚁群算法思想,分别找出步骤42)中选择的数据提供节点到替换节点的所有可行路径,并对这些路径上的边赋予新的权值,保存在ants矩阵中;在ants矩阵中,权值越低表示数据经由该条链路传输的代价越低;
54)以dijstra算法作为选路的基本算法,在步骤43)中获得的ants矩阵之上,初始化一棵StenierTree。最开始树中只包含替换节点节点。每次寻找从42)获得的数据提供节点中到StenierTree的最短路径,然后更新StenierTree,将这条路径上的链路和节点加入到StenierTree之中,直到数据提供节点集合中的节点都被添加到StenierTree之中,算法结束。
CN201510533882.2A 2015-08-27 2015-08-27 一种分布式文件系统中的存储数据修复结构及修复方法 Active CN105072194B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510533882.2A CN105072194B (zh) 2015-08-27 2015-08-27 一种分布式文件系统中的存储数据修复结构及修复方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510533882.2A CN105072194B (zh) 2015-08-27 2015-08-27 一种分布式文件系统中的存储数据修复结构及修复方法

Publications (2)

Publication Number Publication Date
CN105072194A true CN105072194A (zh) 2015-11-18
CN105072194B CN105072194B (zh) 2018-05-29

Family

ID=54501473

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510533882.2A Active CN105072194B (zh) 2015-08-27 2015-08-27 一种分布式文件系统中的存储数据修复结构及修复方法

Country Status (1)

Country Link
CN (1) CN105072194B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109194444A (zh) * 2018-09-01 2019-01-11 哈尔滨工程大学 一种基于网络拓扑的平衡二叉树修复方法
CN110113413A (zh) * 2019-04-30 2019-08-09 江苏汇智达信息科技有限公司 一种物联网中数据处理的方法
CN111385200A (zh) * 2020-03-04 2020-07-07 中国人民解放军国防科技大学 用于数据块修复的控制方法和装置
CN113220236A (zh) * 2021-05-17 2021-08-06 北京青云科技股份有限公司 一种数据管理方法、系统及设备
CN113285985A (zh) * 2021-04-30 2021-08-20 桂林电子科技大学 一种多数据中心背景下基于遗传算法的rs码节点修复方法
CN116150263A (zh) * 2022-10-11 2023-05-23 中国兵器工业计算机应用技术研究所 一种分布式图计算引擎

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1604561A (zh) * 2003-09-30 2005-04-06 国际商业机器公司 对分布树中节点数据分组传输的无状态组通信与修复方法
CN101582826A (zh) * 2009-06-25 2009-11-18 北京洲洋伟业信息技术有限公司 一种互联网课堂中基于动态二叉树子侄双路数据传输方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1604561A (zh) * 2003-09-30 2005-04-06 国际商业机器公司 对分布树中节点数据分组传输的无状态组通信与修复方法
CN101582826A (zh) * 2009-06-25 2009-11-18 北京洲洋伟业信息技术有限公司 一种互联网课堂中基于动态二叉树子侄双路数据传输方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐方亮等: "基于网络拓扑的纠删码树型修复方法", 《计算机研究与发展》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109194444A (zh) * 2018-09-01 2019-01-11 哈尔滨工程大学 一种基于网络拓扑的平衡二叉树修复方法
CN110113413A (zh) * 2019-04-30 2019-08-09 江苏汇智达信息科技有限公司 一种物联网中数据处理的方法
CN111385200A (zh) * 2020-03-04 2020-07-07 中国人民解放军国防科技大学 用于数据块修复的控制方法和装置
CN113285985A (zh) * 2021-04-30 2021-08-20 桂林电子科技大学 一种多数据中心背景下基于遗传算法的rs码节点修复方法
CN113220236A (zh) * 2021-05-17 2021-08-06 北京青云科技股份有限公司 一种数据管理方法、系统及设备
CN113220236B (zh) * 2021-05-17 2024-01-30 北京青云科技股份有限公司 一种数据管理方法、系统及设备
CN116150263A (zh) * 2022-10-11 2023-05-23 中国兵器工业计算机应用技术研究所 一种分布式图计算引擎

Also Published As

Publication number Publication date
CN105072194B (zh) 2018-05-29

Similar Documents

Publication Publication Date Title
CN105072194A (zh) 一种分布式文件系统中的存储数据修复结构及修复方法
Kim et al. Evolutionary Approaches To Minimizing Network Coding Resources.
US8018844B2 (en) Reliable message transfer over an unreliable network
CN112187547A (zh) 一种基于数字孪生的网络模型
CN107343302B (zh) 一种基于多核处理器的传感网路由结构优化方法
CN101888333A (zh) 用于在网络元件的转发平面内保持端口状态表的方法和装置
CN101651709B (zh) 一种p2p下载文件完整性校验方法
CN112887135B (zh) 一种基于状态pce进行多点故障恢复的方法与装置
CN101436998A (zh) 报文转发路径获取方法和报文转发装置
CN105450741A (zh) 分布式存储系统中供应服务器选择和修复数据传输方法
CN101557300B (zh) 一种网络中的拓扑重构方法、装置及设备
CN114938374A (zh) 跨协议负载均衡方法及系统
CN106104503A (zh) 使用统一api对用于转发的服务器和架构编程以用于细粒度网络优化
CN100433696C (zh) 一种转发控制分离系统中选择转发路径的方法
CN102045228B (zh) 一种环网保护信息的发现方法及系统
CN107196860B (zh) Sdn网络中网络编码进行组播传输的方法
CN113131971B (zh) 基于IPv6的电力线载波通信网关装置的组网传输方法及系统
CN109861910B (zh) 一种基于链路可用率的电力通信网链路重要度计算方法
Feng et al. Large file transmission using self-adaptive data fragmentation in opportunistic networks
CN201947293U (zh) 使用基于树的多播路由的网络、系统和处理器
CN106487694A (zh) 一种数据流处理方法和装置
CN104955075A (zh) 一种基于消息分片和节点协作的延迟容忍网络缓存管理系统及管理方法
CN105162843A (zh) 一种基于动态规划的快速数据同步方法
CN116248579B (zh) 一种多必经点的通信路径规划方法及装置
CN118200229B (zh) 一种基于链路重要性的通信网络故障恢复方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20170306

Address after: 210000 Nanjing, Gulou District, Jiangsu, No. 22 Hankou Road

Applicant after: Nanjing University

Applicant after: Nanjing Nari Co., Ltd.

Applicant after: State Grid Corporation of China

Applicant after: State Grid Shanghai Municipal Electric Power Company

Applicant after: Information communication branch company of State Grid Jibei Electric Power Co., Ltd.

Address before: 210000 Hankou Road, Jiangsu, China, No. 22, No.

Applicant before: Nanjing University

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant