CN110032470B - 一种基于哈夫曼树的异构部分重复码的构造方法 - Google Patents
一种基于哈夫曼树的异构部分重复码的构造方法 Download PDFInfo
- Publication number
- CN110032470B CN110032470B CN201910204203.5A CN201910204203A CN110032470B CN 110032470 B CN110032470 B CN 110032470B CN 201910204203 A CN201910204203 A CN 201910204203A CN 110032470 B CN110032470 B CN 110032470B
- Authority
- CN
- China
- Prior art keywords
- data
- blocks
- huffman tree
- repetition
- different access
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Error Detection And Correction (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种基于哈夫曼树的异构部分重复(Huffman Variable Fractional Repetition,HVFR)码的构造方法,包括以下步骤:将一定时间内的分布式***的轨迹数据进行统计分析,分为不同访问频率的数据块;将这些不同访问频率的数据块当作哈夫曼树带有确定权值的叶子结点,根据哈夫曼算法构造哈夫曼树;再根据构造的哈夫曼树来确定不同访问频率数据块的重复度;对不同访问频率的数据块进行MDS编码,最后,利用成对平衡设计构造异构FR码。本发明的方法避免了热数据并行访问的瓶颈,达到负载均衡,同时提高***存储效率,降低故障节点的修复局部性与修复带宽,且计算复杂度低,构造更加简单直观。
Description
技术领域
本发明属于计算机领域,涉及一种基于哈夫曼树的异构部分重复码的构造方法。
背景技术
在分布式存储***中,Rouayheb和Ramchandran于2010年提出一种精确修复的部分重复(Fractional Repetition,FR)码。FR码能容忍多故障节点的低复杂度无编码修复,使修复带宽开销和磁盘I/O开销最小,***故障修复性能得到明显改进。但传统FR码主要针对静态分布式存储***,节点存储容量和数据块重复度保持不变。然而,实际的分布式存储***大多属于动态存储***,节点存储容量也不一样,且分布式存储***对数据的访问往往是不均衡的,“热”数据经常被访问,“冷”数据很少被访问。如果单单使用一种存储机制,往往会限制存储***某方面的表现,如***的存储空间占用,整体的数据访问吞吐量等。
发明内容
本发明的目的在于提供一种基于哈夫曼树的异构部分重复码的构造方法,解决现有技术存在冷热数据采用一样的重复度,存储开销大,热数据访问拥挤的瓶颈问题。
一种基于哈夫曼树的异构部分重复码的构造方法,包括以下步骤:
步骤1,对一定时间内的分布式存储***的轨迹数据进行统计分析,得到不同访问频率的k个数据块;
步骤2,将不同访问频率的k个数据块作为哈夫曼树的叶子结点,通过哈夫曼算法构造得到哈夫曼树;
步骤3,根据公式
步骤4,对不同访问频率的k个数据块进行MDS编码产生p个校验块,并将第y个校验块的重复度设置为ρy,y=1,2,…p;
步骤5,通过成对平衡设计算法构造异构FR码:
步骤5.1,将得到的p个校验块及其重复度添加到不同访问频率的k个数据块及其重复度,得到p+k个数据节点及第x个数据节点对应的重复度ρx, x=1,2,…p+k;
步骤5.2,定义一个成对平衡设计,并将成对平衡设计中的区组B的大小设置为第x个数据节点对应的重复度ρx即|Bx|=ρx;
步骤5.3,根据以下公式构造异构FR码:
Nj={x:j∈Bx}
其中,Nj表示第j个异构FR的存储节点,j=1,2…v,x表示第x个数据节点。
进一步地,步骤4所述的将第y个校验块的重复度设置为ρy具体为 min(ρi)≤ρy≤max(ρi)-1,i=1,2,…,k。
进一步地,所述的成对平衡设计具体为定义一个V集合,V集合中的元素个数为v,Ω为V的区组集合,Ω={B1,…,Bp+k},当Ω中区组的大小(数)均在某个正整数集合S中,V的任意两个元素恰含于Ω的λ个区组中,则将二元组(V,Ω)称为成对平衡设计。
进一步地,步骤5所述的数据节点包括数据块和校验块。
与现有技术相比,本发明的有益效果是:
(1)考虑到实际分布式存储***中不同数据块的访问频率不一样的特点,本发明加入了热度不同数据块重复度也不同的思想。对于热数据块,可以采用重复度较高的复制,从而提高热数据的并行访问速度,使***负载均衡。对于冷数据块,可以采用重复度较低的复制,从而提高空间利用率。
(2)本发明利用成对平衡设计构造一种新的成对平衡设计(New PairwiseBalanced Design,NPBD)算法,利用该算法来构造FR码更加简单高效。
附图说明
图1是不同访问频率数据块构造的一棵哈夫曼树;
图2是由哈夫曼树确定数据块的重复度示意图;
图3是成对平衡设计构造异构FR的转换图;
图4是由NPBD算法对哈夫曼树构造不同重复度数据块的存储;
图5是基于哈夫曼树可变重复度的异构FR码与一般FR码存储效率比较。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
一种基于哈夫曼树的异构部分重复码的构造方法,包括以下步骤:
步骤1,对一定时间内的分布式存储***的轨迹数据进行统计分析,得到不同访问频率的k个数据块;
在过去一段时间内,对分布式存储***中的轨迹数据进行统计分析,分为不同访问频率的k个数据块{d1,d2,…,dk},在本实施例中k=8,在一定时间内8个数据块的访问次数分别是d1=10,d2=20,d3=50,d4=60,d5=70, d6=90,d7=150,d8=200。
步骤2,将不同访问频率的k个数据块作为哈夫曼树的叶子结点,通过哈夫曼算法构造得到哈夫曼树;
哈夫曼树,指的是给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为哈夫曼树(Huffman Tree)。
如图1,将步骤1得到的不同访问频率的数据块当做哈夫曼树带有确定权值的叶子结点,根据哈夫曼算法,即将确定权值的叶子结点中最小的两个结点作为左右子树构造一棵二叉树,构造的二叉树的结点为左右子树权值之和;再将这二个权值最小的叶子结点删除,把新生成的二叉树节点跟剩余的叶子节点继续通过哈夫曼算法构造,以此循环直至仅剩一棵树,即为哈夫曼树。
步骤3,根据公式
得到第i个数据块的重复度ρi,i=1,2,…k,其中k为不同访问频率的数据块的数量,即哈夫曼树的叶子节点的个数,Li为哈夫曼树的第i个数据块的路径长度,即第i个叶子节点的路径长度,ε为重复度因子(ε∈N+),l为修正因子(l∈Z),在本实施例中ε=2,l=1,表示向下取整,得到重复度如图2所示。
步骤4,对不同访问频率的k个数据块进行MDS编码产生p个校验块,并将第y个校验块的重复度设置为ρy,y=1,2,…p;
为了增加数据的鲁棒性,对步骤1中不同访问频率的数据块采用MDS 编码,设置第y个校验块的重复度为ρy,其中第y个校验块的重复度ρy的取值范围是min(ρi)≤ρy≤max(ρi)-1,i=1,2,…,k。在本实施例中,对8个不同访问频率的数据块分别产生2个校验块P1和P2,它们的重复度分别是3和2。
步骤5,通过成对平衡设计算法构造异构FR码:
步骤5.1,将得到的p个校验块及其重复度添加到不同访问频率的k个数据块及其重复度,得到p+k个数据节点及第x个数据节点对应的重复度ρx, x=1,2,…p+k;
如图2所示,本实施例中为8个数据块及其重复度和2个校验块及其重复度,将其进行叠加,得到10个数据节点及数据节点对应的重复度ρx, x=1,2,…10,在这里数据节点的包括数据块与校验块。
步骤5.2,定义一个成对平衡设计,并将成对平衡设计中的区组B的大小设置为第x个数据节点对应的重复度ρx,具体地,第x个区组Bx的大小设置为第x个数据节点对应的重复度ρx,即|Bx|=ρx,x=1,2,…p+k;
成对平衡设计(pairwise balanced design)指的是,定义一个V集合,V集合中的元素个数为v,Ω为V的区组集合,Ω={B1,…,Bp+k},Ω中区组的大小(数) 均在某个正整数集合S中,若V的任意两个元素恰含于Ω的λ个区组中,则将二元组(V,Ω)称为成对平衡设计,记为(v,S,λ)-PBD。其中v叫做成对平衡设计的阶,λ叫做相遇数。
即:
(1)|V|=v;
(2)对任意区组B∈Ω,都有|B|=S;
(3)V中任意一对不同的点都恰好同时包含在λ个区组中。
在本实施例中,采用(6,{2,3,4},2)-PBD为一个成对平衡设计,如图3(a),其中V={1,2,…,6},S={2,3,4},λ=2即任意二个元素存在2个块中, V每个元素的对应的重复度为r1=4,r2=5,r3=5,r4=5,r5=4,r6=6,根据|Bx|=ρx可以得到集合(6,{2,3,4},2)生成的区组集合Ω={B1,…,B10}具体为:
B1={3,6},B2={4,6},B3={2,3,4},B4={3,4,5},B5={2,5,6} B6={1,4,6},B7={1,3,5,6},B8={1,2,4,5},B9={1,2,3},B10={2,6}
步骤5.3,根据以下公式构造异构FR码:
Nj={x:j∈Bx} (2)
j=1,2…v,其中Nj表示异构FR的存储节点,每个节点存储容量是V每个元素的对应的重复度,且FR每个数据节点的重复度是每个区组的元素个数。 x表示第x个数据节点,j表示第j个FR节点,即V的元素个数,j=1,2…,6。
如图3(b),根据公式2得到
N1={6,7,8,9}
N2={3,5,8,9,10}
N3={1,3,4,7,9}
N4={2,3,4,6,8}
N5={4,5,7,8}
N6={1,2,5,6,7,10}
可以看出第一个节点存储容量是4,第二个节点存储容量是5,第三个节点存储容量是5,第四个节点存储容量是5,第五个节点存储容量是4,第六个节点存储容量是6。
最后利用生成的异构FR码对10个数据节点,即8个数据块和2个校验块,进行存储。数据节点与异构FR码中数据块的对应关系如图4(a),数据节点在由NPBD算法构造的异构FR码中的存储结构如图4(b)所示。
可以看出传统FR对每个数据块都采用一样的重复度复制,而HVFR码采用的是可变的重复度。对于热数据采用较高的重复度,对于冷数据采用较低的重复度,这样不但可以提高热数据的并行读取效率,还可以提高***的存储利用率。假设存储10个数据块,传统FR码如果对每个数据都复制3 份,总共需要存储30个数据块,对每个数据块复制4份,总共需要存储40 个数据块;如果采用图4(b)的HVFR码,只需要存储29个数据块。如图 5所示是他们的对比图,明显可见,HVFR码在较高重复度时存储效率大大提高了。HVFR码在提高存储效率的同时,也保证了热数据的并行读取,比一般的FR码更适应实际的分布式存储***,而且花费的存储成本更低。
Claims (4)
1.一种基于哈夫曼树的异构部分重复码的构造方法,其特征在于,包括以下步骤:
步骤1,对一定时间内的分布式***的轨迹数据进行统计分析,得到不同访问频率的k个数据块;
步骤2,将不同访问频率的k个数据块作为哈夫曼树的叶子结点,通过哈夫曼算法构造得到哈夫曼树;
步骤3,根据公式
步骤4,对不同访问频率的k个数据块进行MDS编码产生p个校验块,并将第y个校验块的重复度设置为ρy,y=1,2,…p;
步骤5,通过成对平衡设计算法构造异构FR码:
步骤5.1,将得到的p个校验块及其重复度添加到不同访问频率的k个数据块及其重复度,得到p+k个数据节点及第x个数据节点对应的重复度ρx,x=1,2,…p+k;
步骤5.2,定义一个成对平衡设计,并将成对平衡设计中的区组B的大小设置为第x个数据节点对应的重复度ρx即|Bx|=ρx;
步骤5.3,根据以下公式构造异构FR码:
Nj={x:j∈Bx}
其中,Nj表示第j个异构FR的存储节点,j=1,2…v,x表示第x个数据节点。
2.如权利要求1所述的一种基于哈夫曼树的异构部分重复码的构造方法,其特征在于,步骤4所述的将第y个校验块的重复度设置为ρy具体为min(ρi)≤ρy≤max(ρi)-1。
3.如权利要求1所述的一种基于哈夫曼树的异构部分重复码的构造方法,其特征在于,所述的成对平衡设计具体为定义一个V集合,V集合中的元素个数为v,Ω为V的区组集合,Ω={B1,…,Bp+k},当Ω中区组的大小均在某个正整数集合S中,V的任意两个元素恰含于Ω的λ个区组中,则将二元组(V,Ω)称为成对平衡设计。
4.如权利要求1所述的一种基于哈夫曼树的异构部分重复码的构造方法,其特征在于,步骤5所述的数据节点包括数据块和校验块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910204203.5A CN110032470B (zh) | 2019-03-18 | 2019-03-18 | 一种基于哈夫曼树的异构部分重复码的构造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910204203.5A CN110032470B (zh) | 2019-03-18 | 2019-03-18 | 一种基于哈夫曼树的异构部分重复码的构造方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110032470A CN110032470A (zh) | 2019-07-19 |
CN110032470B true CN110032470B (zh) | 2023-02-28 |
Family
ID=67236116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910204203.5A Active CN110032470B (zh) | 2019-03-18 | 2019-03-18 | 一种基于哈夫曼树的异构部分重复码的构造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110032470B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990188B (zh) * | 2019-11-19 | 2023-03-24 | 长安大学 | 一种基于Hadamard矩阵的部分重复码的构造方法 |
CN112000278B (zh) * | 2020-07-23 | 2023-07-25 | 哈尔滨工业大学(深圳) | 一种热数据存储的自适应局部重构码设计方法及云存储*** |
CN112463435A (zh) * | 2020-12-07 | 2021-03-09 | 广东工业大学 | 一种基于数据块访问频度的局部修复方法 |
CN112835896B (zh) * | 2021-01-27 | 2022-07-05 | 浙江中智达科技有限公司 | 一种实时数据库数据热点均衡方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103702133A (zh) * | 2013-12-19 | 2014-04-02 | Tcl集团股份有限公司 | 一种图像压缩展示方法及其装置 |
US9432298B1 (en) * | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
CN107003933A (zh) * | 2014-05-27 | 2017-08-01 | 北京大学深圳研究生院 | 部分复制码的构建方法、装置及其数据修复的方法 |
CN107565973A (zh) * | 2017-08-01 | 2018-01-09 | 中国人民解放军国防科学技术大学 | 一种结点可扩展的哈夫曼编码的实现方法及电路结构 |
CN108958966A (zh) * | 2018-09-27 | 2018-12-07 | 合肥达博科技有限公司 | 一种无损数据压缩的数据保护方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7006699B2 (en) * | 2002-03-27 | 2006-02-28 | Microsoft Corporation | System and method for progressively transforming and coding digital data |
US8566354B2 (en) * | 2010-04-26 | 2013-10-22 | Cleversafe, Inc. | Storage and retrieval of required slices in a dispersed storage network |
CN102624866B (zh) * | 2012-01-13 | 2014-08-20 | 北京大学深圳研究生院 | 一种存储数据的方法、装置及分布式网络存储*** |
CN106611284A (zh) * | 2016-06-20 | 2017-05-03 | 四川用联信息技术有限公司 | 一种哈夫曼物料采购决策算法 |
-
2019
- 2019-03-18 CN CN201910204203.5A patent/CN110032470B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9432298B1 (en) * | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
CN103702133A (zh) * | 2013-12-19 | 2014-04-02 | Tcl集团股份有限公司 | 一种图像压缩展示方法及其装置 |
CN107003933A (zh) * | 2014-05-27 | 2017-08-01 | 北京大学深圳研究生院 | 部分复制码的构建方法、装置及其数据修复的方法 |
CN107565973A (zh) * | 2017-08-01 | 2018-01-09 | 中国人民解放军国防科学技术大学 | 一种结点可扩展的哈夫曼编码的实现方法及电路结构 |
CN108958966A (zh) * | 2018-09-27 | 2018-12-07 | 合肥达博科技有限公司 | 一种无损数据压缩的数据保护方法和装置 |
Non-Patent Citations (4)
Title |
---|
An improvement of dynamic Huffman coding with a simple repetition finder;H. Yokoo等;《IEEE Transactions on Communications 》;19910131;全文 * |
哈夫曼编码译码功能的简单实现;许子明;《科技风》;20180629(第18期);全文 * |
基于Fano图的局部循环码构造;王淑霞等;《信息通信》;20190115;全文 * |
异构分布式存储***中部分重复码的构造;王甜甜等;《信息通信》;20190115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110032470A (zh) | 2019-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110032470B (zh) | 一种基于哈夫曼树的异构部分重复码的构造方法 | |
CN103814361B (zh) | 针对小块的可伸缩重复数据的删除方法及*** | |
US10680645B2 (en) | System and method for data storage, transfer, synchronization, and security using codeword probability estimation | |
CN113535706B (zh) | 两阶段布谷鸟过滤器及基于两阶段布谷鸟过滤器的重复数据删除方法 | |
CN111625534A (zh) | 用于哈希运算的数据结构及基于该结构的哈希表存储、查询方法 | |
JP6973150B2 (ja) | 最短経路行列生成プログラム、装置、及び方法 | |
CN102356554B (zh) | Turbo码数据交织处理方法和用于交织Turbo码数据的交织器 | |
US20160285476A1 (en) | Method for encoding and decoding of data based on binary reed-solomon codes | |
CN114281989B (zh) | 基于文本相似度的数据去重方法、装置及存储介质和服务器 | |
CN111104457A (zh) | 基于分布式数据库的海量时空数据管理方法 | |
Dolgorsuren et al. | StarZIP: Streaming graph compression technique for data archiving | |
CN115879152A (zh) | 基于最小均方误差准则的自适应隐私保护方法、装置及*** | |
Li et al. | Building fast and compact sketches for approximately multi-set multi-membership querying | |
CN101478313B (zh) | 一种ldpc译码器的最小值计算装置及其构造方法 | |
CN113258936B (zh) | 一种基于循环移位的双重编码的构造方法 | |
Bao et al. | Reducing network cost of data repair in erasure-coded cross-datacenter storage | |
Ma et al. | BCH–LSH: a new scheme of locality‐sensitive hashing | |
Bennenni et al. | Greedy construction of DNA codes and new bounds | |
US9824105B2 (en) | Adaptive probabilistic indexing with skip lists | |
CN107026652B (zh) | 基于分区的正整数序列压缩方法 | |
CN113220214A (zh) | 多节点存储***及其数据去重方法 | |
Chen et al. | Oasis: An Optimal Disjoint Segmented Learned Range Filter | |
CN117459070A (zh) | 一种数据聚类压缩方法 | |
Xie et al. | Non-sequential striping encoder from replication to erasure coding for distributed storage system | |
Fu et al. | False-positive probability and compression optimization for tree-structured Bloom filters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |