修复纠删码存储系统中失效存储块的方法及相关设备

文档序号:29418022发布日期:2022-03-26 13:38阅读:175来源:国知局
修复纠删码存储系统中失效存储块的方法及相关设备

1.本技术涉及纠删码存储系统,尤其涉及一种修复纠删码存储系统中失效存储块的方法及相关设备。


背景技术:

2.纠删码是一种低成本的容错机制,被许多现实中的分布式存储系统(dss)广泛采用。与基于副本的容错方案相比,纠删码的部署可以为dss节省pb级的空间开销。然而,当一个存储块由于节点故障而不可用时,修复这个失效块需要从其他存储节点提取许多相关的存储块,导致巨大的incast流量。这种incast传输方式不仅会导致较高的网络延迟,还会给网络带来沉重的流量负担。导致对于大规模dss来说,设备和组件发生故障是一种常态。
3.为了解决这个难题,业界和学术界都付出了很多努力。现有的方法基本上可以分为两类,即传输规划和网内聚合。前者侧重于规划如何引导incast传输涉及的存储块,以避免潜在的网络瓶颈。一个代表性的工作是部分并行修复机制(ppr),ppr将修复操作划分为顺序子操作,并将它们调度到多个已经参与修复过程的服务器上,然后由一个分布式协议逐步聚合这些部分结果来重建失效块。这样,ppr可以有效地避免incast传输造成的拥塞,从而减少修复时间。然而,ppr并不能减少修复过程的带宽消耗;而且ppr是基于数据块层面的操作,因此在一般情况下,其修复时间仍然显著高于正常的块读取时间。
4.相比之下,网内聚合的方法将服务器或交换机上的来自多个块的小的编码单元聚合为一个单元,然后将聚合后的单元发送到下一跳。这种聚合是可行的,因为相关的单元拥有相同的大小,而且是编码相关的;因此,将它们进行异或操作将生成一个大小相同的单元。这样,聚合后的流量可以自然地减少。由于占用的每条链路只传输标准大小的块,因此也可以避免incast传输的瓶颈问题。按照这种设计理念,提出了修复流水线(repair pipelining,rp),它以流水线的方式串行化跨存储节点的失效块修复操作,大大提高了修复速度,使修复时间与同构环境中相同数据量的正常读取时间相对一致。然而,rp上的中间服务器必须从其相邻的交换机接收/发送中间数据,这也带来了巨大的传输代价。
5.随着软件定义网络(sdn)和可编程交换机的出现,dss可以直接用交换机聚合这些块,而不是只在服务器上进行。因此,提出了一种用于失效块修复的交换机内聚合解决方案——修复树(repair tree,rt)。rt将网络建模为一个加权无向图,并计算出一个连接相关存储节点的最小代价的斯坦纳树。当相关的块单元经过同一个交换机时,该交换机聚合相关数据然后转发聚合后的数据,从而减少了修复流量。然而,修复树会可能会遭受报文异步到达的问题。第一个到达的报文必须在被聚合之前等待其他相关的报文。因此,该方法很难实现有效的修复速度保障。此外,rt忽略了网络的内生特征,即任意一对节点之间的并行路径,这使得其修复性能受到单个路径的带宽阈值的严重限制。
6.为解决上述问题,需要提出一种能够有效修复纠删码存储系统中失效存储块的方法,达到降低传输代价、避免单个路径的带宽阈值对修复性能的限制的目的。


技术实现要素:

7.有鉴于此,本技术的目的在于提出一种修复纠删码存储系统中失效存储块的方法及相关设备。
8.基于上述目的,本技术提供了一种修复纠删码存储系统中失效存储块的方法,其特征在于,包括:
9.根据所述纠删码存储系统构成的网络的有向图,确定与所述失效存储块位于同一条带上的可用于修复所述失效存储块的一个修复节点和多个候选供给节点;
10.根据所述有向图,分别确定所述多个候选供给节点到所述修复节点的多条最短有向路径,并计算所述多条最短有向路径各自的带宽;
11.将所述多条最短有向路径按所述带宽的降序排列,获取排列后的所述多条最短有向路径中前k条最短有向路径,其中k等于所述条带上的数据块的数量;
12.将所述多个候选供给节点中分别与所述前k条最短有向路径对应的k个候选供给节点作为k个第一供给节点,并将排列后的所述多条最短有向路径中的第k条最短有向路径的所述带宽作为带宽阈值;
13.根据所述前k条最短有向路径,生成所述有向图中连接所述k个第一供给节点与所述修复节点的初始有向斯坦纳树,所述初始有向斯坦纳树的宽度等于所述带宽阈值;
14.迭代地执行下列操作,直至满足预设的迭代结束条件:
15.响应于确定先前生成的α个有向斯坦纳树占用了同一个链路,将该链路的可用带宽更新为所述可用带宽的1/α,其中α为正整数;
16.根据更新后的所述可用带宽,生成新的有向斯坦纳树;
17.利用分别在所述k个第一供给节点上存储的k个有效存储块,并利用所生成的多个有向斯坦纳树作为并行的多个树状修复流水线,并行地修复所述失效存储块。
18.在一些实施方式中,根据所述前k条最短有向路径生成所述初始有向斯坦纳树包括:
19.对于所述k个第一供给节点中的每个第一供给节点,
20.采用路径生成函数生成从该第一供给节点到所述修复节点的候选有向路径;
21.计算所述候选有向路径的带宽和传输代价;
22.响应于确定所述候选有向路径的带宽大于所述前k条最短有向路径中与该第一供给节点对应的目标最短有向路径的带宽,或者响应于确定所述候选有向路径的带宽等于所述目标最短有向路径的带宽且所述候选有向路径的传输代价小于所述目标最短有向路径的传输代价,用所述候选有向路径替换所述目标最短有向路径。
23.在一些实施方式中,所述迭代结束条件包括最新生成的有向斯坦纳树的宽度小于所述带宽阈值与预设参数值的比值。
24.在一些实施方式中,计算所述多条最短有向路径各自的带宽包括:
25.对于所述多条最短有向路径中的每条最短有向路径,计算组成这条最短有向路径的各个链路的带宽中的最小值,作为这条最短有向路径的带宽。
26.在一些实施方式中,并行地修复所述失效存储块包括:
27.对于所述k个有效存储块中的每个有效存储块,将该有效存储块分割成多个存储单元以分别分配给所述多个树状修复流水线传输,其中,利用所述多个树状修复流水线中
的可编程交换机聚合相关联的所述存储单元;
28.对于所述多个树状修复流水线中的每个树状修复流水线,在所述修复节点上利用该树状修复流水线传输的所述存储单元来修复所述失效存储块上的一部分数据。
29.在一些实施方式中,将该有效存储块分割成多个存储单元以分别分配给所述多个树状修复流水线传输包括:
30.计算分别分配给所述多个树状修复流水线的多个传输带宽以及所述多个传输带宽的总和;
31.对于所述多个树状修复流水线中的每个树状修复流水线,按照该树状修复流水线的传输带宽占所述总和的比例,从该有效存储块中分割出一部分作为所述存储单元分配给该树状修复流水线传输。
32.基于同一发明目的,本技术还提供了一种用于修复纠删码存储系统中失效存储块的装置,其特征在于,包括:
33.节点确定模块,被配置为:根据所述纠删码存储系统构成的网络的有向图,确定与所述失效存储块位于同一条带上的可用于修复所述失效存储块的一个修复节点和多个候选供给节点;
34.路径计算模块,被配置为:根据所述有向图,分别确定所述多个候选供给节点到所述修复节点的多条最短有向路径,并计算所述多条最短有向路径各自的带宽;
35.路径选择模块,被配置为:将所述多条最短有向路径按所述带宽的降序排列,获取排列后的所述多条最短有向路径中前k条最短有向路径,其中k等于所述条带上的数据块的数量;
36.节点选择模块,被配置为:将所述多个候选供给节点中分别与所述前k条最短有向路径对应的k个候选供给节点作为k个第一供给节点,并将排列后的所述多条最短有向路径中的第k条最短有向路径的所述带宽作为带宽阈值;
37.初始有向斯坦纳树生成模块,被配置为:根据所述前k条最短有向路径,生成所述有向图中连接所述k个第一供给节点与所述修复节点的初始有向斯坦纳树,所述初始有向斯坦纳树的宽度等于所述带宽阈值;
38.迭代生成模块,被配置为:迭代地执行下列操作,直至满足预设的迭代结束条件:响应于确定先前生成的α个有向斯坦纳树占用了同一个链路,将该链路的可用带宽更新为所述可用带宽的1/α,其中α为正整数;根据更新后的所述可用带宽,生成新的有向斯坦纳树;
39.并行修复模块,被配置为:利用分别在所述k个第一供给节点上存储的k个有效存储块,并利用所生成的多个有向斯坦纳树作为并行的多个树状修复流水线,并行地修复所述失效存储块。
40.在一些实施方式中,所述初始有向斯坦纳树生成模块被配置为:
41.对于所述k个第一供给节点中的每个第一供给节点,
42.采用路径生成函数生成从该第一供给节点到所述修复节点的候选有向路径;
43.计算所述候选有向路径的带宽和传输代价;
44.响应于确定所述候选有向路径的带宽大于所述前k条最短有向路径中与该第一供给节点对应的目标最短有向路径的带宽,或者响应于确定所述候选有向路径的带宽等于所
述目标最短有向路径的带宽且所述候选有向路径的传输代价小于所述目标最短有向路径的传输代价,用所述候选有向路径替换所述目标最短有向路径。
45.基于同一发明目的,本技术还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现修复纠删码存储系统中失效存储块的方法。
46.基于同一发明目的,本技术还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行修复纠删码存储系统中失效存储块的方法。
47.从上面所述可以看出,本技术提供的修复纠删码存储系统中失效存储块的方法及相关设备,根据对纠删码存储系统建模得到的有向图、候选供给节点修复节点,计算出修复纠删码存储系统需要的第一供给节点和带宽阈值。根据所有第一供给节点、带宽阈值计算宽度为带宽阈值的初始有向斯坦树,并迭代计算出全部宽度大于等于第一比值的有向斯坦纳树与初始有向斯坦纳树组成有向斯坦纳树组,由有向斯坦纳树组中的每个有向斯坦纳树并行地传输数据来修复失效存储块,达到了将修复失效存储块地操作拆分为多个并行的树状修复流水线来进行修复从而提高修复吞吐量的目的,提高了传输性能;并且依靠有向斯坦纳树中路径上的交换机聚合数据传输过程的中间数据,降低了带宽占用,提高了纠删码存储系统对失效存储块的修复性能。且通过与现有的修复方法进行性能对比和评估后,本技术提供的修复纠删码存储系统中失效存储块的方法可以显著提高修复性能,特别是在具有大量冗余路径的网络中,实现了比现有修复方法3倍以上的吞吐量提升。
附图说明
48.为了更清楚地说明本技术或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
49.图1为存在失效存储块的纠删码存储系统的示意图;
50.图2a至图2f为分别采用多种相关方法修复失效存储块的示意图;
51.图3为本技术实施例提供的采用多个最小最宽有向斯坦纳树修复失效存储块的示意图;
52.图4为本技术实施例提供的修复纠删码存储系统中失效存储块的方法的流程图;
53.图5为本技术实施例提供的生成有向图中连接k个第一供给节点与修复节点的初始有向斯坦纳树的流程图;
54.图6为本技术实施例提供的根据更新后的可用带宽,生成新的有向斯坦纳树的流程图;
55.图7为本技术实施例提供的通过用所生成的多个有向斯坦纳树作为多个并行的树状修复流水线,并行地修复所述失效存储块的流程图;
56.图8为本技术实施例提供的采用本技术提供的方法修复多个失效存储块的流程图;
57.图9a和图9b为不同修复方法在不同的地理分布式拓扑下对单个失效存储块的修
复性能的对比图;
58.图10a和图10b为不同修复方法在不同数据中心拓扑下对单个失效存储块的修复性能的对比图;
59.图11a和图11b为不同修复方法在不同纠删码编码下对地理分布式拓扑中单个失效存储块的修复性能的对比图;
60.图12a和图12b为不同修复方法在不同纠删码编码下对数据中心拓扑中单个失效存储块的修复性能的对比图;
61.图13a和图13b为在不同链路利用率下不同修复方法对地理分布式拓扑中单个失效存储块的修复性能的对比图;
62.图14a和图14b为本技术实施例提供的方法和rt方法对多个失效存储块的修复性能的对比图;
63.图15为本技术实施例提供的用于修复纠删码存储系统中失效存储块的装置的结构图;
64.图16为本技术实施例提供的电子设备的结构图。
具体实施方式
65.为使本技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本技术进一步详细说明。
66.需要说明的是,除非另外定义,本技术实施例使用的技术术语或者科学术语应当为本技术所属领域内具有一般技能的人士所理解的通常意义。本技术实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
67.现实中的纠删码满足线性,包括rs编码,lrc编码,msr编码和mbr编码等。具体来说,可以将k个同一条带上的存储块表示为b1,b2,...,bk。那么,在同一条带上的任意一个块b
*
都可以通过这k个存储块的线性组合计算获得。而在实际部署中,存储块的编码和解码以较小的单位执行,以获得更好的性能。因此,当修复一个失效存储块时,纠删码存储系统可以在接收到每个存储块的一小部分后就执行解码操作,而不是等待接收到整个数据块在进行处理。
68.参照图1,图1示出的纠删码存储系统的在节点h4上存在失效存储块,节点h1、h2和h3为修复失效存储块的供给节点,节点h5为修复节点,s1至s7为纠删码存储系统中的交换机。
69.参照图2a至图2f示出的失效存储块的不同修复方法,其中图2a为采用常规修复方法来修复含失效存储块的节点h4的示意图,由于这种方法中所有涉及到的块都需要通过节点h5的链路{s7,h5}进行传输,这会导致严重的拥塞,而且产生的传输代价也较高。
70.图2b和图2c为采用ppr修复含失效存储块的节点h4的示意图,其中图2b为ppr修复过程的第一轮,由节点h1和节点h3将存储块乘以对应的解码系数后沿图2b中对应的路径分别发送到节点h2和节点h5;图2c为ppr修复过程的第二轮,由节点h2将存储块乘以对应的解码系数后与从节点h1接收到的存储块聚合,并把聚合结果沿图2c中的路径发送至节点h5,
由节点h5将接收到的内容聚合到一起,完成失效存储块的修复。其中,ppr利用部分并行机制来避免拥塞,存储块首先乘以对应的解码系数,然后利用不同的时序传输到其他相关节点,使得这种方法的性能优于常规修复方法。然而,ppr并不能减少修复过程的带宽消耗;而且ppr是基于数据块层面的操作,因此在一般情况下,其修复时间仍然显著高于正常的块读取时间。
71.图2d为采用rp修复含失效存储块的节点h4的示意图,其中供给节点把每个相关的块被分割成许多小的单元,使这些小单元在沿途路径的供给节点上聚合。当供给节点发送完成整个块时,修复过程完成。rp以流水线的方式串行化跨存储节点的失效存储块修复操作,大大提高了修复速度,使修复时间与同构环境中相同数据量的正常读取时间相对一致。然而,rp上的中间服务器必须从其相邻的交换机接收/发送中间数据,这也带来了巨大的传输代价。
72.图2e为采用rt修复含失效存储块的节点h4的示意图,其中构建了树形的修复流水线,使路径上的交换机也参与中间数据的处理,从而进一步削减传输流量。具体来说,rt给每个链路设置一个与带宽和延迟相关的代价,然后计算最小斯坦纳树来连接供给节点和修复节点。我们将其扩展到具有非对称链接的有向图。根据图2e可以看出,由于修复流量在路径上的交换机中进行聚合,因此可以有效地降低带宽消耗。rt相比与rp可以实现更低的传输代价,但是由于rt会盲目地选择延迟较低的链路,报文可能会异步到达交换机。第一个到达的报文必须等待其他相关的报文到达之后才能被聚合,就会导致许多不必要的链路被添加到传输路径中,从而导致额外的带宽消耗。
73.参照图2f,为了改进rt,可以通过最小最宽有向斯坦纳树(minimum-widest directed steiner tree,mwdst)来进行失效存储块h4的修复。其中,与repair tree相比较,两者拥有相同的修复吞吐量,而采用mwdst修复含失效存储块的节点h4的传输代价更小。
74.图2f示出了一个包含源节点{h1,h2,h3}和目的节点h5的mwdst:通过寻找一个mwdst,可以较好地解决含失效存储块的节点h4的修复问题。然而在实际纠删码存储系统的网络中,任何一对节点之间存在都有多条路径,这使得寻找多个这样的斯坦纳树成为可能。因此,并发地利用多个mwdst可以潜在地增加修复吞吐量。参照图3,在这种情况下,每个斯坦纳树的代价是其传输的数据量和其链路代价的乘积,例如图3中斯坦纳树1的传输代价是斯坦纳树2的传输代价是因此,当确定传输的总数据量时,我们的目的是找到多个mwdst,使它们的带宽之和最大,且它们的总代价最小。我们称之为打包最小最宽有向斯坦纳树(packing minimum-widest directed steiner trees,pmwdst)问题。
75.有鉴于此,本技术一个或多个实施例提供了一种修复纠删码存储系统中失效存储块的方法,把修复纠删码存储系统中失效存储块的操作拆分后由多个并行的mwdst执行,从而提高了修复纠删码存储系统时的修复吞吐量。并利用传输路径上的交换机节点实现数据的网络内聚合,降低了传输代价,使本技术提供的修复方法相较于现有的修复方法在修复吞吐量和传输代价上都有显著的优势。
76.作为一个可选的实施例,参照图4,本技术提供的修复纠删码存储系统中失效存储
块的方法,包括:
77.步骤s401,根据所述纠删码存储系统构成的网络的有向图,确定与所述失效存储块位于同一条带上的可用于修复所述失效存储块的一个修复节点和多个候选供给节点。
78.在纠删码存储系统中,文件被存储为固定大小的块,作为基本的读写单元。通常,在(k,m)纠删码存储系统中,一个条带(stripe)上的每个k原始块被一起编码,产生m个冗余块。这k个原始块来自原始文件,称为数据块(data block),而m个冗余块称为校验块(parity block),主要是为了容错的目的。同一条带上的k+m个存储块以分布式的方式存储在k+m个存储节点上。每个块可以通过解码该条带上的任何k个块重新生成。因此,系统可以容忍高达m个节点故障而不丢失数据。
79.其中,对纠删码存储系统网络建模得到具有非对称链路的有向图g=(v,e),vi∈v是有向图中的一个节点,可以是服务器或交换机;e
ij
∈e是节点vi到vj的一条边,其中每条边e
ij
被赋以两个实数,b
ij
∈b是可用带宽,称为带宽,c
ij
∈c是每单位数据的传输代价。由于链路是非对称的,b
ij
不一定等于b
ji
,c
ij
不一定等于c
ji
。如果节点之间没有链路,则b
ij
=b
ji
=0且c
ij
=c
ji
=∞。对于任何一条从节点vi到vj的有向路径p
ij
={vi,v
x
,vy,...,vz,vj},路径的带宽width(p
ij
)定义为width(p
ij
)=min{b
ix
,b
xy
,...,b
zj
}。路径的代价定义为cost(p
ij
)=γ
×
(c
ix
+c
xy
+,...,+c
zj
),其中γ是在此路径上传输的数据大小。具体来说,当不同的路径传输相同数量的数据时,我们可以直接计算它们的链路代价之和来对比它们的传输代价。
80.步骤s402,根据所述有向图,分别确定所述多个候选供给节点到所述修复节点的多条最短有向路径,并计算所述多条最短有向路径各自的带宽。
81.其中,计算多条有向路径的带宽时,队医每条最短有向路径,计算组成这条最短有向路径的全部链路的带宽,比较每条链路的带宽获取最小值,作为这条最短有向路径的带宽。
82.步骤s403,将所述多条最短有向路径按所述带宽的降序排列,获取排列后的所述多条最短有向路径中前k条最短有向路径,其中k等于所述条带上的数据块的数量。
83.步骤s404,将所述多个候选供给节点中分别与所述前k条最短有向路径对应的k个候选供给节点作为k个第一供给节点,并将排列后的所述多条最短有向路径中的第k条最短有向路径的所述带宽作为带宽阈值。
84.步骤s405,根据所述前k条最短有向路径,生成所述有向图中连接所述k个第一供给节点与所述修复节点的初始有向斯坦纳树,所述初始有向斯坦纳树的宽度等于所述带宽阈值。
85.其中,基于步骤s401中得到的有向图g=(v,e),给出有向斯坦纳树的定义为:给定一个有向图g=(v,e),一组源节点集合s和一个目的节点d,有向斯坦纳树t=(v
t
,e
t
)是g的一个子图,其中使得而且在t中从s中每个节点到d都有一条有向路径,而且对于所有节点v∈v
t-{d}有degree
out
(v)=1,对于所有节点v∈v
t-s有degree
out
(d)=0,degree
in
(v)≥1。degree
in
(v)表示节点v的边e
uv
的个数,degree
out
(v)表示节点v的边e
vu
的个数。
86.其中,将有向斯坦纳树t=(v
t
,e
t
)的带宽定义为有向斯坦纳树中所有边的最小带宽,即width(t)=min{b
ij
},其中b
ij
为边e
ij
的带宽。有向斯坦纳树t的代价是该有向斯坦纳
树传输一个单位数据时它所有边的代价之和。将具有最大带宽的有向斯坦纳树称为最宽的有向斯坦纳树(widest directed steiner tree,wdst),并进一步给出如下定义:mwdst是所有wdst中传输代价最小的一个。
87.参照图5,步骤s405中根据所述前k条最短有向路径,生成所述有向图中连接所述k个第一供给节点与所述修复节点的初始有向斯坦纳树时,对每一个第一供给节点执行相同的操作,包括:
88.步骤s501,采用路径生成函数生成从该第一供给节点到所述修复节点的候选有向路径。
89.步骤s502,计算所述候选有向路径的带宽和传输代价。
90.响应于所述生成的有向路径的带宽大于所述k个第一供给节点之一到所述修复节点的最短有向路径的带宽,用所述生成的有向路径替换所述k个第一供给节点之一到所述修复节点的最短有向路径。
91.步骤s503,响应于确定所述候选有向路径的带宽大于所述前k条最短有向路径中与该第一供给节点对应的目标最短有向路径的带宽,或者响应于确定所述候选有向路径的带宽等于所述目标最短有向路径的带宽且所述候选有向路径的传输代价小于所述目标最短有向路径的传输代价,用所述候选有向路径替换所述目标最短有向路径。
92.其中,用带宽较高的有向路径替换带宽较低的有向路径,可以提高生成的初始有向斯坦纳树的修复吞吐量,进而提高传输性能;用传输代价较小的有向路径替换传输代价较大的有向路径,在带宽不变的情况下降低了传输代价,从而提高了传输性能。
93.步骤s406,迭代地执行下列操作,直至满足预设的迭代结束条件:响应于确定先前生成的α个有向斯坦纳树占用了同一个链路,将该链路的可用带宽更新为所述可用带宽的1/α,其中α为正整数;根据更新后的所述可用带宽,生成新的有向斯坦纳树。
94.其中,所述预设的迭代结束条件为:计算带宽阈值与预设阈值的第一比值,当迭代生成的有向斯坦纳树的宽度小于第一比值时,即为满足迭代结束条件,并把迭代生成的宽度大于等于第一比值的有向斯坦纳树和初始有向斯坦纳树记录在有向斯坦纳树组中。
95.参照图6,步骤s406中根据更新后的可用带宽,生成新的有向斯坦纳树包括:
96.步骤s601,根据更新后的所述可用带宽、所述k个第一供给节点和所述修复节点分别计算所述k个第一供给节点到所述修复节点的k条最短有向路径。
97.步骤s602,分别计算所述k条最短有向路径的带宽,降序排列所述k条最短有向路径的带宽,获取第k条最短有向路径的带宽。
98.步骤s603,根据所述k条最短有向路径生成宽度为所述第k条最短有向路径的带宽的所述新的有向斯坦纳树。
99.其中,在步骤s603中生成新的有向斯坦纳树时,也会按照图5示出的方法,尽量降低新的有向斯坦纳树的传输代价。第k条最短有向路径的带宽即为本次生成的有向斯坦纳树的贷款阈值。
100.步骤s407,利用分别在所述k个第一供给节点上存储的k个有效存储块,并利用所生成的多个有向斯坦纳树作为并行的多个树状修复流水线,并行地修复所述失效存储块。
101.其中,对于所述k个有效存储块中的每个有效存储块,将该有效存储块分割成多个存储单元以分别分配给所述多个树状修复流水线传输。并利用所述多个树状修复流水线中
的可编程交换机聚合相关联的所述存储单元,避免了由交换机发送数据到第一供给节点进行聚合,再接收聚合后的数据进行转发而浪费的修复流量,从而降低每条树状修复流水线的带宽占用,进一步提高了修复性能。
102.所述多个树状修复流水线在修复存储块时,其中的每个树状修复流水线,在所述修复节点上利用该树状修复流水线传输的所述存储单元来修复所述失效存储块上的一部分数据。其中,根据有向斯坦纳树组记录的每个有向斯坦纳树的形状和有向图来获取每个有向斯坦纳树的带宽,并根据每个有向斯坦纳树的带宽占有全部有向斯坦纳树的带宽总和的占比来确定每个有向斯坦纳树需要传输的数据量,使每个有向斯坦纳树并行地传输对应数量的数据来修复失效存储块,从而使相关联的数据包能够在一个相对一致的时间到达交换机。参照图7,这一过程包括:
103.步骤s701,计算分别分配给所述多个树状修复流水线的多个传输带宽以及所述多个传输带宽的总和。
104.其中,根据有向图和有向图的带宽矩阵计算得到每个有向斯坦纳树的传输带宽;把各个树状修复流水线的传输带宽相加获得传输带宽总合。
105.步骤s702,对于所述多个树状修复流水线中的每个树状修复流水线,按照该树状修复流水线的传输带宽占所述总和的比例,从该有效存储块中分割出一部分作为所述存储单元分配给该树状修复流水线传输。
106.其中,首先分别计算每个树状修复流水线的传输带宽与传输带宽总和的比值作为每个树状修复流水线的传输带宽占比。分别计算待修复的失效存储块的大小和每个树状修复流水线的传输带宽占比的乘积作为每个树状修复流水线在修复过程中需要传输的数据量,进行修复时,每个树状修复流水线传输相应的数据量至修复节点,由修复节点完成对失效存储块的修复。
107.本技术实施例提供的修复纠删码存储系统中失效存储块的方法,根据对纠删码存储系统建模得到的有向图、候选供给节点和修复节点,计算出修复纠删码存储系统需要的第一供给节点和带宽阈值。根据所有第一供给节点、带宽阈值计算宽度为带宽阈值的初始有向斯坦树,并迭代计算出全部宽度大于等于第一比值的有向斯坦纳树与初始有向斯坦纳树组成有向斯坦纳树组,由有向斯坦纳树组中的每个有向斯坦纳树并行地传输数据来修复失效存储块,达到了将修复失效存储块地操作拆分为多个并行的树状修复流水线来进行修复,从而提高修复吞吐量的目的,提高了传输性能;并且依靠有向斯坦纳树中路径上的交换机聚合数据传输过程的中间数据,降低了带宽占用,提高了纠删码存储系统对失效存储块的修复性能。
108.作为一个可选的实施例,还可以采用下述的阈值约束最短最宽路径算法(threshold constrained shortest-widest path,tcswp)来执行步骤s402至步骤s404:
[0109][0110]
在上述tcswp算法中,输入项为修复节点dst、可用网络带宽矩阵bandwidth、链路开销矩阵cost和指定的带宽阈值bot
init
。其中,为了得到从候补供给节点到修复节点dst的最短最宽有向路径,需要把bot
init
设为无穷大。经过算法的运算后输出的变量prenode是一个由n个节点组成的序列,n是有向图g=(v,e)中的节点总数;变量prenode中第i个位置的元素表示第i个节点的前一个节点,输出的变量bot和cst也都是是n个值的序列,分别表示从变量prenode中的相应节点到修复节点dst的最短最宽路径的带宽和传输代价。
[0111]
作为一个可选的实施例,为了执行步骤s405获取初始有向斯坦纳树还可以通过对优先选择最近终端算法(selective closest terminal first,sctf)进行改良,得到下述的改良sctf算法(modified sctf,msctf)进行运算得出mwdst。
[0112][0113]
上述msctf算法中,算法的输入项在tcswp算法的基础上添加了旋钮参数κ。旋钮参数κ是在1和n之间的指定值,n为纠删码存储系统一个条带上的存储块的总数;根据sctf算法可知,κ的值越高,精度越高,但计算时间也会相应增加,而且κ的小幅增加可以带来准确性的显著提高。msctf算法运行时首先根据tcswp算法计算得到每个候补供给节点到修复节点的最短最宽有向路径,选择前k个带宽最大的有向路径对应的节点作为第一供给节点,记为h
temp
,并记录下第k个带宽最大的有向路径的带宽bot
tree
。msctf算法最终输出带宽为bot
tree
的有向斯坦纳树作为初始有向斯坦纳树。
[0114]
作为一个可选的实施例,为执行步骤s406迭代生成有向斯坦纳树组,采用了保形斯坦纳树打包算法(shape reserved steiner tree packing,srstp)。根据输入的预设阈值旋钮参数κ、修复节点dst、可以修复失效存储块的供给节点的集合h、纠删码的参数k、可用网络带宽矩阵bandwidth和链路开销矩阵cost,进行迭代计算,得出用来传输数据修复失效存储块的有向斯坦纳树组。而且通过srstp算法得到的有向斯坦纳树组中带宽最小的
有向斯坦纳树的带宽也大于等于初始有向斯坦纳树的带宽与预设阈值的比值。
[0115][0116]
作为一个可选的实施例,本技术提供的方法,还可用于修复所述纠删码存储系统中的多个失效存储块,参照图8,包括:
[0117]
步骤s801,根据所述有向图为所述多个失效存储块生成对应的有向斯坦纳树组。
[0118]
其中,首先根据有向图计算出每个失效存储块对应的k个第一供给节点和修复节点,并计算出每个失效存储块对应的初始有向斯坦纳树及带宽阈值。然后根据每个失效存储块对应的初始有向斯坦纳树及带宽阈值分别迭代生成新的有向斯坦纳树,直到生成的对应每个失效存储块的新的有向斯坦纳树的宽度均小于每个失效存储块对应的带宽阈值与预设阈值的比值。
[0119]
且在一次迭代过程中,首先生成每个失效存储块对应的新的有向斯坦纳树,然后根据所有已生成的有向斯坦纳树的占用的链路来更新可用带宽。
[0120]
步骤s802,通过用所生成的分别与所述多个失效存储块生成对应的有向斯坦纳树组分别并行地修复所述多个失效存储块。
[0121]
下面,通过对比现有的修复方法和本技术提供的修复方法来说明本技术提供的修复纠删码存储系统中失效存储块的方法的性能。
[0122]
采用表1中列出的拓扑来评估本技术提供的修复纠删码存储系统中失效块的方法和现有的修复方法的性能。其中,表1中r1至r6拓扑分别是defo数据集中多个真实的地理分布式拓扑(isp);拓扑f7-f8是胖树拓扑(fat-tree),拓扑b9-b10是bcube拓扑,两者均为数据中心拓扑,前者是以交换机为中心的拓扑,而后者是以服务器为中心的拓扑。
[0123]
表1实验拓扑
[0124][0125]
在进行修复性能评估时,需要把背景流量添加到上述拓扑中,以模拟不同的网络状态。对于defo数据集,背景流量来自其自身的需求数据。随机抽取需求数据的一部分来模拟不同的网络负载。对于其他情况,基于具有同分布指数随机变量的重力模型,生成流量矩阵。生成的流量是相当真实的。每个链路都被分配一个代价相关的值,这个值包含在defo数据集中;而对于其他情况,假设每个链路的使用代价相同,且背景流量采用最短路径路由。如果存在多条开销相同的路径,选择带宽较大的路径,以达到更好的负载平衡。当最短路径的可用带宽不能满足传输需求时,选择较长的路径。然后计算每个链路的可用带宽来监控网络的状态。由于defo数据集中的带宽是无量纲的,实验结果主要基于归一化值。
[0126]
首先分别评估对纠删码存储系统中单节点故障和多节点故障的修复性能。具体来说,对于t个故障节点,我们分配k+m-t个可用的供给节点并指定t个修复节点。每个请求者选择k+m-t个供给节点中的k个来修复相应的失效存储块。在isp拓扑中,可用的供给节点和修复节点是随机选择的,而在数据中心拓扑中,供给节点和修复节点都仅限于服务器节点。分别使用rs(6,3)、rs(8,4)、rs(10,4)和rs(12,4)纠删码编码进行评估,这些编码方式广泛应用于许多实际的纠删码存储系统中。路由算法以集中式的方式实现,假设交换机可以聚合中间数据,设置旋钮参数κ=20和预设阈值结果是基于多轮实验的平均值和标准偏差。实验在台式机上运行,配备intel(r)core(tm)i7 cpu,3.8ghz 8核cpu和64gb内存。
[0127]
可以选用四种现有的修复方法与本技术提供的修复纠删码存储系统中失效块的方法进行性能的对比和评估,选用的现有方法分别为:常规修复方法(conventional repair,cr),在纠删码存储系统的带有失效存储块的节点所在的条带上随机选择k个第一供给节点,通过最短路径将相关的数据块发送给修复节点;采用单个mwdst修复失效存储块的方法(mw);rp方法和rt方法。其中,为了部署rt方法,取链路传输的数据量与可用带宽的比率作为链路的延迟代价。链路的上行和下行方向根据该方向的可用带宽分配不同的开销,且由于rt方法假设k个第一供给节点是预先指定的,所以选择到修复节点延迟最低的前k个候补供给节点来评估rt方法。且由于本技术提供的修复纠删码存储系统中失效块的方法是一种并行化的网内聚合修复方法(parallelized in-network aggregation scheme,paint)
[0128]
其中,首先评估不同方法在不同拓扑下的对单个失效存储块的修复性能,对表1中的每个拓扑采用rs(6,3)编码进行了多轮实验,分别计算每种方法修复单个失效存储块时
的修复吞吐量和修复代价进行对比,对比结果如图9a和图9b所示。图9a和图9b的横坐标为不同的isp拓扑,图9a的纵坐标为不同方法的修复吞吐量,图9b的纵坐标为不同方法耗费的修复代价。图9a和图9b分别示出了6个isp拓扑的修复吞吐量和修复代价。显然,paint始终保持最佳的修复吞吐量和较为满意的带宽开销。相比之下,rp可以达到接近mw的吞吐量,但它的修复代价最高,原因是其必须在供给节点之间传输大量的中间数据来进行聚合。paint和其他方法都利用传输路径上的节点来聚合中间数据,从而显著减少修复流量。其中rt的开销最小。然而,它不能达到令人满意的修复速度。这可能是在选择供给节点方面存在缺陷的原因。
[0129]
参照图10a和图10b,图10a和图10b的横坐标为不同的数据中心拓扑,图10a的纵坐标为不同方法的修复吞吐量,图10b的纵坐标为不同方法耗费的修复代价。在数据中心拓扑中进行的评估也得出了类似的结论,而且在bcube拓扑中,paint显示了极高的修复吞吐量优势(比b10中的对比方法高出3倍以上),而修复代价的增加是轻微的。这是因为在以服务器为中心的拓扑中,服务器是通过多个链路互相连接的。因此,节点之间有大量的并行路径,这为并行化提供了动力。相比之下,paint在fat-tree拓扑中的优势较弱,因为在fat-tree拓扑中每个服务器只与一个带宽有限的单一链路相连,这导致并行修复的概率很低,无法体现并行修复的优势。
[0130]
可以选择一个isp拓扑r2来评估不同纠删码下单个节点故障的修复性能,参照图11a和图11b,图11a和图11b的横坐标为不同的纠删码编码,图11a的纵坐标为不同方法的修复吞吐量,图11b的纵坐标为不同方法耗费的修复代价。根据图像可得,随着纠删码编码块数量的增加,paint的并行性收益减少,但在修复吞吐量方面仍然优于其他方法。根本原因是修复一个失效块需要更多的供给节点,而这些供给节点之间的可用带宽可能非常低。
[0131]
然而,这种影响的程度取决于底层拓扑结构。我们选择bcube拓扑b10来验证这一点。参照图12a和图12b示出的结果,图12a和图12b的横坐标为不同的纠删码编码,图12a的纵坐标为不同方法的修复吞吐量,图10b的纵坐标为不同方法耗费的修复代价。随着存储块数量的增加,paint仍然压倒性地优于其他方法。原因是在bcube网络中有大量的并行路径,部分拥塞的链路对我们的并行度没有太大的影响。因此,即使某些链路发生拥塞,paint也可以通过多条并行路径保证足够的吞吐量。此外,我们发现无论是在bcube还是fat-tree中,paint的修复代价都没有像rp方法或cr方法那样呈线性增长。
[0132]
还可以向拓扑网络加入不同数量的背景流量来模拟不同的网络负载。计算不同修复方法的最大链路利用率,即每条链路占用的带宽与总可用带宽的比值,用来反映网络的负载水平。如图13a和图13b所示,图13a和图13b的横坐标为链路利用率,图13a的纵坐标为不同方法的修复吞吐量,图13b的纵坐标为不同方法耗费的修复代价。图13a中显示了r2拓扑的结果,其中最大链路利用率范围为20%到95%,rt方法和cr方法对网络负载比较敏感,而mw方法和rp方法的吞吐量仅略有下降,与上述几种方法相比,paint的修复性能并没有明显下降。造成这一现象的原因是实际的流量是高度倾斜的,严重的拥塞通常发生在部分链路上;此外,对后台流量的负载均衡机制也保证了大多数链路不发生明显拥塞。因此,paint和其他方法可以通过选择合适的供给节点来减轻拥塞的影响,而rt方法和cr方法则受到拥塞的影响。但是网络负载的变化对修复代价的影响很小,如图13b所示,随着负载的增加,修复代价不会急剧增加,因为这些方法主要根据可用带宽而不是代价来选择供给节点;而拥
塞的链路在整个网络中随机出现,因此,这些方法的修复代价不受网络负载的显著影响。此外,cr方法总是根据最短路选择供给节点,因此,修复代价对网络负载的敏感性也较小。
[0133]
作为一个可选的实施例,paint也适用于同一条带上多个失效块的同时修复,尽管这种情况是相当罕见的。而rp方法的多故障修复采用传统的修复方法。。具体来说,首先根据给出的单个故障节点的修复方法得到一棵修复树。然后,其余的请求者通过最短路径连接到最后一个聚合节点,需要注意的是,这里的最短路径是指延迟最低,从而尽可能地减少延迟和代价。采用rs(6,3)编码来评估paint和rt方法在不同拓扑下的多故障修复性能。如图14a和图14b所示,图14a和图14b的横坐标为不同的isp拓扑,图14a和图14b的纵坐标为不同方法的修复吞吐量。图14a为同时修复两个故障块的吞吐量,图14b为同时修复三个失效块的吞吐量。在多故障修复场景下,paint仍然显示出其修复速度的优越性。当同时修复2个失效块时,paint的修复吞吐量明显高于rt方法。特别是在r5和r6中,paint的修复吞吐量几乎是rt方法的两倍。这是因为paint采用了有效的机制来减少掉队者的影响,通过这种方式,可以尽可能地缩短最大完成时间。在并发修复3个失效块的情况下,paint修复吞吐量低于2个失效块的场景,因为一些瓶颈链路在更多的修复节点之间共享,但与rt方法进行比较后,paint仍然能够保持优势。
[0134]
综上所述,本技术提供的修复纠删码存储系统中失效存储块的方法,根据对纠删码存储系统建模得到的有向图、候选供给节点修复节点,计算出修复纠删码存储系统需要的第一供给节点和带宽阈值。根据所有第一供给节点、带宽阈值计算宽度为带宽阈值的初始有向斯坦树,并迭代计算出全部宽度大于等于第一比值的有向斯坦纳树与初始有向斯坦纳树组成有向斯坦纳树组,由有向斯坦纳树组中的每个有向斯坦纳树并行地传输数据来修复失效存储块,达到了将修复失效存储块地操作拆分为多个并行的树状修复流水线来进行修复从而提高修复吞吐量的目的,提高了传输性能;并且依靠有向斯坦纳树中路径上的交换机聚合数据传输过程的中间数据,降低了带宽占用,提高了纠删码存储系统对失效存储块的修复性能。且通过与现有的修复方法进行性能对比和评估后,本技术提供的修复纠删码存储系统中失效存储块的方法可以显著提高修复性能,特别是在具有大量冗余路径的网络中,实现了比现有修复方法3倍以上的吞吐量提升。
[0135]
需要说明的是,本技术实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本技术实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本技术实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
[0136]
需要说明的是,上述对本技术的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0137]
基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种修复纠删码存储系统中失效存储块的装置。
[0138]
参考图15,所述修复纠删码存储系统中失效存储块的装置,包括:
[0139]
节点确定模块151,被配置为:根据所述纠删码存储系统构成的网络的有向图,确
定与所述失效存储块位于同一条带上的可用于修复所述失效存储块的一个修复节点和多个候选供给节点;
[0140]
路径计算模块152,被配置为:根据所述有向图,分别确定所述多个候选供给节点到所述修复节点的多条最短有向路径,并计算所述多条最短有向路径各自的带宽;
[0141]
路径选择模块153,被配置为:将所述多条最短有向路径按所述带宽的降序排列,获取排列后的所述多条最短有向路径中前k条最短有向路径,其中k等于所述条带上的数据块的数量;
[0142]
节点选择模块154,被配置为:将所述多个候选供给节点中分别与所述前k条最短有向路径对应的k个候选供给节点作为k个第一供给节点,并将排列后的所述多条最短有向路径中的第k条最短有向路径的所述带宽作为带宽阈值;
[0143]
初始有向斯坦纳树生成模块155:被配置为,根据所述前k条最短有向路径,生成所述有向图中连接所述k个第一供给节点与所述修复节点的初始有向斯坦纳树,所述初始有向斯坦纳树的宽度等于所述带宽阈值;
[0144]
迭代生成模块156,被配置为:迭代地执行下列操作,直至满足预设的迭代结束条件:响应于确定先前生成的α个有向斯坦纳树占用了同一个链路,将该链路的可用带宽更新为所述可用带宽的1/α,其中α为正整数;根据更新后的所述可用带宽,生成新的有向斯坦纳树;
[0145]
并行修复模块157,被配置为:利用分别在所述k个第一供给节点上存储的k个有效存储块,并利用所生成的多个有向斯坦纳树作为并行的多个树状修复流水线,并行地修复所述失效存储块。
[0146]
其中,所述所述初始有向斯坦纳树生成模块被配置为:对于所述k个第一供给节点中的每个第一供给节点,
[0147]
采用路径生成函数生成从该第一供给节点到所述修复节点的候选有向路径;
[0148]
计算所述候选有向路径的带宽和传输代价;
[0149]
响应于确定所述候选有向路径的带宽大于所述前k条最短有向路径中与该第一供给节点对应的目标最短有向路径的带宽,或者响应于确定所述候选有向路径的带宽等于所述目标最短有向路径的带宽且所述候选有向路径的传输代价小于所述目标最短有向路径的传输代价,用所述候选有向路径替换所述目标最短有向路径。
[0150]
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本技术时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
[0151]
上述实施例的装置用于实现前述任一实施例中相应的修复纠删码存储系统中失效存储块的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0152]
基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的修复纠删码存储系统中失效存储块的方法。
[0153]
图16示出了本技术实施例所提供的一种电子设备的结构示意图。该电子设备可以包括:处理器1610、存储器1620、输入/输出接口1630、通信接口1640和总线1650。其中处理器1610、存储器1620、输入/输出接口1630和通信接口1640通过总线1650实现彼此之间在设备内部的通信连接。
[0154]
处理器1610可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
[0155]
存储器1620可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1620可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1620中,并由处理器1610来调用执行。
[0156]
输入/输出接口1630用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
[0157]
通信接口1640用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
[0158]
总线1650包括一通路,在设备的各个组件(例如处理器1610、存储器1620、输入/输出接口1630和通信接口1640)之间传输信息。
[0159]
需要说明的是,尽管上述设备仅示出了处理器1610、存储器1620、输入/输出接口1630、通信接口1640以及总线1650,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
[0160]
上述实施例的电子设备用于实现前述任一实施例中相应的修复纠删码存储系统中失效存储块的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0161]
基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的修复纠删码存储系统中失效存储块的方法。
[0162]
本技术实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
[0163]
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的修复纠删码存储系统中失效存储块的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0164]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本技术的范围(包括权利要求)被限于这些例子;在本技术的思路下,以上实施例
或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
[0165]
另外,为简化说明和讨论,并且为了不会使本技术实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本技术实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本技术实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本技术的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本技术实施例。因此,这些描述应被认为是说明性的而不是限制性的。
[0166]
尽管已经结合了本技术的具体实施例对本技术进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
[0167]
本技术实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本技术实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1