一种集群下基于数据缓存的纠删码归档方法_2

文档序号:9846832阅读:来源:国知局
则直接进行归档;若通过用户访问数据无法接收到当前条带全部数据分块,则从生产集群读取冷数据,然后进行归档;本步骤具体包括以下子步骤:
[0055](2.1)归档节点初始化归档条带,当前归档条带编号为i,i =0;初始化归档节点中包含数据节点j的数据分块个数^的集合a为[O,0,0,0];
[0056](2.2)归档节点接收用户访问数据(热数据),并跟新集合a;
[0057](2.3)归档节点判断是否接收到归档条带i的全部数据分块,若是,进入步骤(2.7);若否,则进入步骤(2.4);
[0058](2.4)归档节点等待时间间隔T;在时长T的时间间隔内,归档节点不断从用户缓存接收数据分块;本实施例中,T为I秒;
[0059](2.5)归档节点跟新集合a,再次判断是否接收到归档条带i的全部数据分块,若是,进入步骤(2.7);若否,则进入步骤(2.6);
[0060](2.6)归档节点从生产集群中直接读取冷数据,从数据节点j读取的数据分块数为Numj,Numj=max{(y-aj-A( j)) ,0},以凑齐μ个条带,然后进入步骤(2.3);
[0061](2.7)归档当前条带,并将条带号i值加I;[0062 ] (2.8)更新管理服务器中的归档数据状态表;
[0063](2.9)判断是否完成生产集群中全部条带的归档,若否,则进入步骤(2.3);若是,则结束归档。
[0064]以下结合具体实施例阐述本发明提供的基于数据缓存的纠删码归档方法;实例中采用的是(k+r,k)RS编码方式;其中,k指原始数据分块的个数,r表示编码生成的校验分块个数,k个数据分块和r个校验分块中任意k个均可以解码出k个原始数据分块。
[0065]如图2所示,是实施例中采用RS(6,4)编码集群下基于数据缓存的纠删码归档方法的示例图;其中,纠删码归档集群中总共有六个节点,其中四个是数据节点,两个是检验节点,采用(6,4)RS的编码方式来实现并保障数据完整性,节点编号为{1,2,3,4,5,6};
[0066]其中,来自于生产集群中的任一数据分块的逻辑地址均对应于纠删码集群中四个数据节点中的其中一个,归档节点在时间T内归档条带数μ = 3。
[0067]本实施例提供的集群下基于数据缓存的纠删码归档方法,具体如下:
[0068](I)实施例中,第一次用户访问的数据分块个数集合是[2,4,5,3],即,从数据节点
1、数据节点2、数据节点3和数据节点4分别获得2个、4个、5个和3个数据分块;
[0069]访问节点首先查询管理服务器,获得该数据分块集合的全部地址信息;同时,归档节点初始化条带i,;此时,归档节点中各数据节点的数据分块个数为[O,O,O,O ];其中,i的初始值为O;
[0070](2)生产集群读取数据分块集合到缓冲区;第一次访问时,交换机将数据分块集合同时转发到访问节点和归档节点;
[0071](3)访问节点获得数据分块集合,响应用户请求;同时,归档节点获得数据分块集合,更新各数据节点的数据分块个数为[2,4,5,3 ];
[0072]上述步骤(1)(2)(3)对应图2中①所指示的流程;
[0073](4)归档节点进行条带i编码计算,将4个数据分块和2个校验分块发送到纠删码归档集群,i增加I,此时i为I;归档节点清除已归档条带O的数据分块;
[0074](5)若归档节点收到条带i的所有数据分块,则进行归档;并将4个数据分块和2个校验分块发送到纠删码归档集群,i增加I,此时i为2;
[0075]删除归档节点中已经归档的条带I的数据分块;归档节点中各节点数据分块个数为[0,2,3,1];
[0076]上述步骤(4)(5)对应图2中②所指示的流程;
[0077](6)若归档节点中未收到条带i的全部数据分块,则进入等待状态;同时,用户进行第二次访问,数据分块集合为[0,3,3,4],假定数据分块集合中没有与第一次访问重复的数据分块,则交换机将数据分块集合同时转发到访问节点和归档节点;
[0078](7)访问节点相应用户第二次访问;同时,归档节点接收数据分块集合[0,3,3,4],更新节点数据分块个数为[O,5,6,5 ];
[0079]上述步骤(6)(7)对应图2中③所指示的流程;
[0080](8)归档节点等待时间段T后,若仍未接收到条带i的全部数据分块,则直接从生产集群中读取数据分块;
[0081 ]在下一个时间段T内,用户访问的数据分块λ为[I,I,I,I ],根据NUMj=max {(μ-aj-A(」)),0},获得从四个数据节点读取的数据分块个数为[2,0,0,0];需要从数据节点1读取两个对应的数据分块;其中,归档节点在时间T内所能归档的条带数μ = 3;归档节点中包含数据节点j的数据分块个数^的集合a为[O,5,6,5];
[0082](9)第三次用户访问数据分块集合为[I,1,2,1],交换机将数据分块集合同时转发到访问节点和归档节点;同时,归档节点按数据分块集合[2,0,0,0]直接从生产集群中读取数据分块;
[0083](10)归档节点接收来自用户缓存的数据分块集合[I,1,2,I]和直接读取的数据分块集合[2,0,0,0],更新节点数据分块个数为[3,6,8,6];
[0084]上述步骤(8)(9)(10)对应图2中④所指示的流程;
[0085](11)归档节点完成3个条带的归档计算,并将每个条带的数据分块和校验分块发送到纠删码归档集群,删除归档节点中已经归档的数据分块;此时i为5,归档节点中各节点数据分块的个数为[0,3,5,3];
[0086]上述步骤(11)对应图2中⑤所指示的流程;
[0087](12)重复步骤(I)?(11),直到生产集群中全部条带的归档完成。
[0088]现有技术中,普通纠删码归档的过程如图3所示,具体为:归档节点直接从生产集群中读取条带所需的k个数据分块,然后获取该条带的r个校验分块,最后将k个数据分块和r个校验分块发送到纠删码归档集群保存;每次归档都是从生产集群中读取数据分块再计算出校验分块,然后将数据分块和校验分块发送到纠删码归档集群,直到归档全部完成;
[0089]而本发发明提供的基于数据缓存的纠删码归档方法,具体如下:
[0090](I)归档节点初始化条带,接收用户访问缓存的数据分块;
[0091](2)如果当前归档条带的k个数据分块全部接收到,就进入步骤(4);否则等待下一个时间段T内从用户访问的数据缓存中发送的数据;
[0092](3)判断是否接收到当前条带的全部数据分块,若是,则进入步骤(4);若为否,则从生产集群中读取相应的数据分块以凑齐μ个条带;
[0093](4)归档节点对当前条带进行编码计算,将k个数据分块和r和校验分块发送到纠删码归档集群中保存;
[0094](5)重复步骤(2)到(4),直到生产集群中全部条带的归档完成。
[0095]实施例中,采用步骤(I)中的接收用户访问缓存的数据分块,相比于普通纠删码归档,大幅度减少了归档节点从生产集群中读取数据分块的次数,从而可以在基本不影响用户访问的情况下进行归档操作,提高归档效率;另一方面,通过交换机将用户访问缓存的数据分块转发到归档节点,避免了用户访问和普通纠删码归档对生产节点中相同数据分块的重复读取请求,可有效地减少生产集群中网络传输的数据量,减轻整个网络的负载。
[0096]本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种集群下基于数据缓存的纠删码归档方法,其特征在于,所述纠删码归档方法具体包括以下步骤: (1)根据用户访问请求,将所需数据分块从生产节点读取到节点缓冲区,并将数据分块发送给访问节点,同时根据归档数据状态表将所述数据分块转发给归档节点; (2)归档节点根据接收到的数据分块,更新每个数据节点的数据分块个数;并判断归档节点是否接收到当前条带的全部数据分块,若是,则将当前条带进行归档;若否,则从生产集群读取冷数据块,将条带凑齐之后进行归档。2.如权利要求1所述的纠删码归档方法,其特征在于,所述步骤(I)具体包括如下子步骤: (1.1)访问节点从管理服务器获得所需的数据分块在生产集群中的地址; (1.2)对所述数据分块在生成集群中的地址对应节点发出读请求; (1.3)将数据分块从其所在生成集群中的生产节点读取到节点缓冲区; (1.4)判断所述数据分块是否已被转发到归档节点,若是,则将该数据分块转发到访问节点;若否,则将该数据分块同时转发到访问节点和归档节点。3.如权利要求1或2所述的纠删码归档方法,其特征在于,所述步骤(2)具体包括如下子步骤: (2.1)归档节点接收数据分块,更新归档节点中包含的每个数据节点的数据分块个数; (2.2)归档节点初始化当前条带,分析条带的节点组成,判断接收的数据块属于哪个数据节点,并初始化存储变量;所述节点包括数据节点和校验节点; (2.3)由归档节点判断是否接收到当前条带的全部数据分块,若是,进入步骤(2.7);若否,则进入步骤(2.4); (2.4)在时长为T的时间间隔内,归档节点从用户缓存接收数据分块; (2.5)判断当前条带的k个数据分块是否集齐,若是,进入步骤(2.7);若否,则进入步骤(2.6);其中,k值等于数据节点的个数; (2.6)归档节点从生产集群中直接读取冷数据,以凑齐μ个条带,然后进入步骤(2.3);其中,μ为归档节点在时间间隔T内所能归档的最大条带数; (2.7)归档当前条带,并将条带号i的值加1,并更新归档数据状态表; (2.8)根据归档数据状态表判断是否完成全部条带的归档,若否,则进入步骤(2.3);若是,则结束归档。
【专利摘要】本发明公开了一种集群下基于数据缓存的纠删码归档方法,包括以下步骤:(1)根据用户访问请求,将所需数据分块从其所在生产节点读取到节点缓冲区,并将数据分块发送给访问节点,同时根据归档数据状态表将其转发给归档节点;(2)归档节点根据接收到的数据分块,更新每个数据节点的数据分块个数;判断归档节点是否接收到当前条带的全部数据分块,若是,则将当前条带进行归档;若否,则从生产集群读取冷数据块,将条带凑齐之后进行归档;本发明提供的这种纠删码归档方法,由于采用了用户访问缓存的数据分块,相比于普通纠删码归档方法,可大幅度减少归档节点从生产集群中读取数据分块的次数,可以在不影响用户访问的情况下进行纠删码归档操作,提高归档效率。
【IPC分类】H04L29/08
【公开号】CN105610921
【申请号】CN201510979326
【发明人】黄建忠, 曹强, 谢长生, 蔡颖, 代尔卫, 夏杰
【申请人】华中科技大学
【公开日】2016年5月25日
【申请日】2015年12月23日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1