一种基于纠删码集群存储系统的局部式数据更新方法技术方案

技术编号:7786224 阅读:258 留言:0更新日期:2012-09-21 07:10
本发明专利技术公开了一种基于纠删码集群存储系统的局部式数据更新方法,包括以下步骤:接收用户发出的对数据D0的更新请求,并根据更新请求将数据D0更新为D0’,将更新后的数据D0’发送到待更新的数据节点,待更新的数据节点从本地磁盘读取数据D0到内存中,在待更新的数据节点的内存中计算出所有m个冗余节点需要的临时数据块集合,数据节点将更新后的数据D0’写入本地磁盘,数据节点将m个临时数据块通过网络并行发送至m个冗余节点上,第j个冗余节点从本地磁盘读取原始的冗余数据Pj,并计算出新的校验数据Pj’,第j个冗余节点将计算得到的校验数据块Pj’写到本地磁盘上。本发明专利技术能有效减小带宽的消耗,降低更新服务器的负载压力,从而提高数据更新性能。

【技术实现步骤摘要】

本专利技术属于数据存储领域,更具体地,涉及。
技术介绍
近年来,多址传输已成为互联网的一个重 要组成成分,大型软件通过互联网传送给众多用户时要求用多址传输或广播传输。这些传输必须是完全可靠的,同时要有小的网络开销和支持众多各类用户的随机访问。达成这种目的需要借助一种编码的方法,即把传输的k比特的原数据编码为n (n > k)比特的数据后发送出去,若接受方接受到足够量的数据,则运用适当的译码方法就可恢复k个比特的源数据,称这种码为前向纠错码,或称纠删码。正是因为纠删码的这种高容错特性,其被广泛应用于大规模的集群存储系统之中。如图I所示,纠删码集群存储系统的磁盘被划分为k个数据节点和m个校验节点(k+m=η为总节点数)。其中k个数据节点存放的数据块为原始的数据,m个校验节点存放的数据块是经过特定矩阵运算出来的校验数据,其中,k+m个数据块组成的集合称之为条带。这样便保证了即使集群中m个任意节点发生故障的情况下,系统都能够做出正确的相应并且能够自我从故障中恢复。然而,现有纠删码集群存储系统存在着以下问题对于数据更新的策略只采用简单的更新管理器来进行管理,并没有对消耗的网络带宽及数据更新的耗时进行足够的优化;此外,由于纠删码的编码特性,当有数据更新时除了影响到自身数据节点的更新,也要对所有的校验节点更新,如果按照传统的更新方式,即在客户端读数据,计算出新的数据再写回,需要频繁的进行网络传输,则使得数据的更新很大程度受到网络带宽的影响,也就影响到了整个系统的响应时间和带宽损耗。
技术实现思路
针对现有技术的缺陷,本专利技术的目的在于提供,其能够在只有小型数据更新的情况下有效地提高系统的响应时间,并能有效减小带宽的消耗,减小更新服务器的负载,从而提高系统性能。为实现上述目的,本专利技术提供了,包括以下步骤(I)接收用户发出的对数据Dtl的更新请求,并根据更新请求将数据Dtl更新为Dtl’ ;(2)将更新后的数据D。’发送到待更新的数据节点;(3)待更新的数据节点从本地磁盘读取数据Dtl到内存中;(4)利用等式P/ = aj.o^Do^ -D0)在待更新的数据节点的内存中计算出所有m个冗余节点需要的临时数据块集合{ΡΛ P1*,, Pm-O,其中j = 0,...,m-1, P;表示第j个冗余节点所需要的临时数据块,aj,0表示纠删码的生成矩阵第j行第O列的元素;(5)数据节点将更新后的数据Dtl’写入本地磁盘;(6)数据节点将m个临时数据块通过网络并行发送至m个冗余节点上;(7)第j个冗余节点从本地磁盘读取原始的冗余数据Pp并利用接收到的临时数据块P/以及等式P/ = P;+Pj计算出新的校验数据P/,其中j = 0,...,m-1 ;(8)第j个冗余节点将计算得到的校验数据P/写到本地磁盘上,并向数据节点发送更新完毕的信号;(9)重复步骤(7)和(8),直到所有m个冗余节点都处理完毕为止;(10)数据节点接收完所有冗余节点发送的更新完毕的信号后,向纠删码集群存储系统发送更新完毕的信号。通过本专利技术所构思的以上技术方案,与现有技术相比,本专利技术具有以下的有益效果(I)节约带宽,减少了由更新带来的写回操作(即缩短了更新链),有效减少了数据在网络中的传输,节约了带宽;(2)分散计算,充分利用存储节点的计算能力,有效降低更新服务器负载,更新的计算并非全部集中于更新服务器上,而是被分散到各个存储节点(数据节点以及冗余节点)上计算,这样在一定程度上避免了更新服务器成为系统的瓶颈;(3)响应增速本专利技术通过利用纠删码的数学特性,通过特定策略使得进行局部式数据更新时减小了整个集群存储的读写操作,而系统的响应时间与读写操作的次数密切相关,因此采用此方法的系统能在数据局部式更新有着更加的响应性能,从而也提高了集群存储系统的读写速度与更新效率。附图说明图I是现有技术中纠删码集群存储系统的架构图。图2是本专利技术基于纠删码集群存储系统的局部式数据更新方法的示意图。图3是本专利技术基于纠删码集群存储系统的局部式数据更新方法的流程图。具体实施例方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图2和图3所示,本专利技术纠删码集群存储的局部式数据更新方法包括以下步骤(I)接收用户发出的对数据Dtl的更新请求,并根据更新请求将数据Dtl更新为Dtl’ ;需要理解的是,本专利技术出于示例清楚的目的,仅仅使用数据节点Dtl的数据更新方法来进行说明,但本专利技术绝不局限于此; (2)将更新后的数据Dtl’发送到待更新的数据节点;(3)待更新的数据节点从本地磁盘读取数据Dtl到内存中;若采用传统的更新方法,Dtl’会被节点O通过网络发送到专门的更新服务器上,而且所有的计算操作都将在更新服务器上进行,对于本专利技术的更新方法而言,本步骤的计算是在数据节点上实现的,并且没有通过网络,所以它有效减少了网络通信、分散了计算以及降低了更新服务器负载;(4)利用等式P/ = aj.o^Do^ -D0)在待更新的数据节点的内存中计算出所有m个冗余节点需要的临时数据块集合{ΡΛ P1*,, Pm-O,其中j = 0,...,m-1, P;表示第j个冗余节点所需要的临时数据块,aj,0表示纠删码的变换矩阵第j行第O列的元素;(5)数据节点将更新后的数据Dtl’写入本地磁盘;(6)数据节点将m个临时数据块通过网络并行发送至m个冗余节点上;(7)第j个冗余节点从本地磁盘读取原始的冗余数据Pp并利用接收到的临时数据块P/以及等式P/ = Pj*+PJ计算出新的校验数据P/,其中j = O,... ,m-1 ;在传统的更新方法中,这一步Pj同样是会被第j个冗余节点通过网络发送到专门的更新服务器上,而且该步的计算操作也将在更新服务器上进行,而对于本专利技术的更新方法,本步骤中的计算是在冗余节点上实现的,并且没有通过网络,所以它能有效减少了网络通信、分散了计算以及降低了更新服务器负载;(8)第j个冗余节点将计算得到的校验数据P/写到本地磁盘上,并向数据节点发送更新完毕的信号;(9)重复步骤(7)和⑶,直到所有m个冗余节点都处理完毕为止;(10)数据节点接收完所有冗余节点发送的更新完毕的信号后,向纠删码集群存储系统发送更新完毕的信号。下面对本专利技术方法中用到的公式做出详细的推导原始的校验数据是原始数据根据纠删码的算法特性经过矩阵变化而来的Zfe-I aj,xDx ,j(I) x—0其中P」表示校验数据,Dx表示原始的数据,表示纠删码的变换矩阵第j行第x列的元素。如果数据从Dtl更新为Dtl’,根据公式1,每个校验数据都需重新计算如下Pj _X ' Dx + +〉’,j e{0,1,…,m-1} (2)^Xz=Q■—其中P/表示新的校验数据。则由公式2减去公式I可得P/ = Bj,o* (D0,-D0) +Pj j e {0,1, , m-1} (3)在传统的更新方法中,该公式中所有的计算都是在更新服务器上完成的。对于本专利技术的方法,我们假设P/ = aj,0*(D0,-D0), j e {0,1,..., m-1} (4)这样将公式分成两个部分P/ = Bj,ο* (Doj -D0)本文档来自技高网...

【技术保护点】

【技术特征摘要】
1. 一种基于纠删码集群存储系统的局部式数据更新方法,其特征在于,包括以下步骤 (1)接收用户发出的对数据Dtl的更新请求,并根据所述更新请求将数据Dtl更新为Dtl’; (2)将更新后的数据Dtl’发送到待更新的数据节点; (3)所述待更新的数据节点从本地磁盘读取数据Dtl到内存中; (4)利用等式P/= aj.o^Do^ -D0)在所述待更新的数据节点的内存中计算出所有m个冗余节点需要的临时数据块集合{ΡΛ P1*,, Pm-O,其中j = O,…,m-1, P;表示第j个冗余节点所需要的临时数据块,aj,0表示纠删码的生成矩阵第j行第O列的元素; (5)...

【专利技术属性】
技术研发人员:黄建忠曹强谢长生张峰豪刘政泽
申请(专利权)人:华中科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1