CN115114251A - 插入/删除场景下的低冗余单轮文件同步方法 - Google Patents

插入/删除场景下的低冗余单轮文件同步方法 Download PDF

Info

Publication number
CN115114251A
CN115114251A CN202210896649.0A CN202210896649A CN115114251A CN 115114251 A CN115114251 A CN 115114251A CN 202210896649 A CN202210896649 A CN 202210896649A CN 115114251 A CN115114251 A CN 115114251A
Authority
CN
China
Prior art keywords
data block
vector
node
deletion
syndrome
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.)
Pending
Application number
CN202210896649.0A
Other languages
English (en)
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.)
Xidian University
Original Assignee
Xidian 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 Xidian University filed Critical Xidian University
Priority to CN202210896649.0A priority Critical patent/CN115114251A/zh
Publication of CN115114251A publication Critical patent/CN115114251A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种应用于插入/删除场景下的低冗余单轮文件同步方法,主要解决现有的单轮文件同步方法通信量较大的问题。其方案是:本地节点读取每个数据块中更短的子序列作为标记;计算数据块的VT校验子和散列值,并利用RS码进行编码传输给云节点;云节点根据周期性的标记序列建立网格图,推断每个数据块发生的插入/删除数量,并译码恢复每个数据块的VT校验子和散列值;对于连续多个未通过散列值校验的数据块,猜测数据块的边界和插入/删除数量;云节点传输未成功同步的数据块索引给本地节点,本地节点重传数据块给云节点完成文件同步。本发明减少了插入/删除场景下的单轮文件同步的通信量,可用于本地节点和云节点的数据传输。

Description

插入/删除场景下的低冗余单轮文件同步方法
技术领域
本发明属于通信技术领域,更进一步涉及一种低冗余单轮文件同步方法,可用于本地节点和云节点的数据传输。
背景技术
近年来,云存储被广泛用于存储各种数据文件。传输这些文件始终需要客户端和数据中心之间的大量通信带宽。在Dropbox等文件备份工具和Git等版本控制软件情况下,文件总是在客户端进行轻微编辑。如果将整个编辑的文件传输到数据中心,将浪费大量带宽。因此,需要具有最小信息交换的文件同步方法。
目前,插入/删除场景下同步方法的设计主要有两类方法:第一类是基于纠错码的同步方案设计方法,这些纠错码主要包括纠单个插入/删除错误的VT码、纠多个插入/删除错误的多层VT码与猜测校验码GC;第二类是不使用纠错码的文件同步方案RSYNC,该RSYNC方法是一种流行的Linux/Unix应用程序,被广泛用于一般文件同步。但是,由于RSYNC使用弱散列函数和强散列函数来确定原始文件与编辑文件之间的匹配段,并传输不匹配的段,因而对于随机插入/删除错误的同步无效。
目前,插入/删除场景下实用文件同步方案的设计成为近年来通信技术领域普遍关注的研究热点。
基于VT码与分治策略,Venkataramanan等人在其发表的论文“Low-complexityinteractive algorithms for synchronization from deletions,insertions,andsubstitutions”(IEEE Trans.Inf.Theory,2015,61(10),pp.5670–5689)中提出了t个插入/删除下基于VT码与散列函数的一种单轮文件同步方法,该方法在本地节点将文件划分为多个数据块,将数据块的长标记序列、VT校验子与散列函数值传输给云节点,在云节点使用长标记序列确定块的边界及插入/删除数量。但该文件同步方法由于使用长标记序列,因而所需要的通信量较大。
发明内容
本发明的目的是针对上述已有技术的不足,提出一种插入/删除场景下的低冗余单轮文件同步方法,以满足更低的通信量需求。
为了实现上述目的,本发明的技术思路是:通过借助于网格图及动态规划算法,使用更短的标记实现与长标记近似的性能;通过利用纠错码方案进一步压缩需要传输的VT校验子及散列值的数据量,从而降低文件同步中的所需要的通信量。
根据上述思路,本发明的实现方案如下:
1.一种插入/删除场景下的低冗余单轮文件同步方法,其特征在于,包括如下步骤:
A)本地节点调用编码模块对二进制文件X进行编码,构造同步消息M={S,T,C}并发送给云节点,其中S表示标记向量,T表示VT校验子的校验符号向量,C表示散列值的校验符号向量;
B)云节点通过译码模块从同步消息M中读取出标记向量S,利用标记向量建立表示每个数据块漂移状态的网格图;
C)根据节点间转移概率查找表计算网格图中的节点度量,并基于动态规划算法搜索网格图中最大似然度量的漂移状态路径,进而推断出每个数据块发生插入/删除数量:
C1)计算网格图中的节点度量值τ(dι,j):
Figure BDA0003769339780000021
其中,dι,j表示网格图中第ι行第j列处的节点,τ(dι,j)表示网格图中第ι行第j列处的节点度量值,τ(dλ,j-1)表示网格图中第λ行第j-1列处的节点度量值,τj,λ→ι表示网格图中由第λ行第j-1列转移为第ι行第j列的节点间转移概率,j∈[0,v]表示网格图中的第j列,也表示第j个数据块,ι∈[-t,t]表示网格图中第ι行,也表示数据块的漂移状态;
C2)计算网格图中的漂移状态的最大似然路径DML
Figure BDA0003769339780000022
其中,
Figure BDA0003769339780000023
表示网格图中由第δj-1行第j-1列转移为第δj行第j列的节点间转移概率,j∈[1,v]表示网格图中的第j列,也表示第j个数据块,δj∈[-t,t]表示网格图中第δj行,也表示第j个数据块的漂移状态;
C3)设置一个一维数组D,记录最大似然路径DML上各个节点之前发生的插入/删除数量到数组D中;
C4)计算每块发生的插入/删除数量:E=(E1,...,Ei,...,Ev)
其中,Ei=D[i]-D[i-1]表示第i块发生的插入/删除数量,D[i]表示数组D中第i个元素,也表示二进制文件X的第i块之前发生的插入/删除数量,D[i-1]表示数组D中第i-1个元素,也表示二进制文件X的第i-1块之前发生的插入/删除数量;
D)云节点调用译码模块读取同步消息M={S,T,C},并恢复出VT校验子向量和散列值向量;译码模块根据每个数据块发生插入/删除数量、VT校验子向量和散列值向量,恢复插入/删除数量E[i]=0的数据块,判断各数据块的状态并进行记录;
E)对于连续多个标记为未更新状态的数据块{Yi,Yi+1,...,Yi+j,...,Yi+a},遍历猜测所有数据块可行的插入/删除模式,译码并校验猜测的插入/删除模式对应的符号序列,其中j∈[0,a],a表示未更新状态的数据块数量;
F)云节点发送未更新状态的数据块索引给本地节点,要求本地节点进行重传;云节点收到本地节点重新发送的数据块后,根据数据块索引重组所有数据块,完成二进制文件X的同步。
本发明与现有技术相比具有以下优点:
本发明由于建立表示数据块漂移状态的网格图并结合动态规划算法,实现了传输更短的标记而达到与长标记接近的性能。同时由于本发明利用纠错码方案进一步压缩同步文件所需要的数据量,进一步减少了文件同步所需要的通信量。
附图说明
图1是本发明的实现流程图;
图2是本发明中每个数据块漂移状态的网格图;
图3是分别用本发明与现有方法进行文件同步传输的比特数对比图;
图4是分别用本发明与现有方法进行文件同步时本地节点重传的数据块数量对比图。
具体实施方式
下面结合附图,对本发明的实施例和效果作进一步描述。
参照图1,本实例的实现步骤包括如下:
步骤1,初始化编码参数。
将二进制文件X的长度设置为n;
将二进制文件X的数据块个数设置为
Figure BDA0003769339780000041
每块长度设置为k;
将系统码形式的RS码的校验符号数量设置为e;
将每个数据块的标记长度设置为s。
步骤2,本地节点调用编码模块对X进行编码,构造同步消息M={S,T,C}并发送给云节点。
2.1)将二进制文件X划分为长度为k的v个连续数据块(X1,...,Xi,...,Xv),其中,Xi表示二进制文件的第i个数据块,i的取值范围为[1,v];
2.2)读取数据块Xi末尾s个比特作为标记,得到标记向量S=(S1,...,Si,...,Sv),i的取值范围为[1,v];
2.3)对于每个长度为k的数据块Xi=(x1,x2,...,xk),根据
Figure BDA0003769339780000042
计算其VT校验子,得到VT校验子向量A=(A1,...,Ai,...,Av),i的取值范围为[1,v];
2.4)将VT校验子向量A=(A1,...,Ai,...,Av)映射为有限域GF(2p)上的符号向量(β1,…,βi,…,βv),其中,βi表示符号向量中第i个有限域GF(2p)上的符号,i的取值范围为[1,v];
2.5)将符号向量(β1,...,βi,...,βv)通过(v+e,v)RS码编码为VT校验子的校验符号向量T=(T1,T2,...,Te),其中,Ti表示VT校验子的校验符号向量中第i个校验符号,i的取值范围为[1,e];
2.6)基于随机散列函数F计算每个数据块Xi的散列值,并将散列值映射为有限域GF(2h)上的散列值符号向量B=(B1,...,Bi,...,Bv),其中,Bi表示散列值符号向量中第i个有限域GF(2h)上的符号,i的取值范围为[1,v];
2.7)将散列值符号向量B=(B1,...,Bi,...,Bv)通过(v+e,v)RS码编码为散列值的校验符号向量C=(C1,C2,...,Ce),其中,Ci表示散列值的校验符号向量中第i个校验符号,i的取值范围为[1,e];
2.8)根据标记向量S,VT校验子的校验符号向量T和散列值的校验符号向量C得到二进制同步消息M={S,T,C}。
步骤3,初始化译码参数。
设置云节点存储的二进制文件为Y;
设置一个二维数组Q表示网格图中的节点度量值;
设置Q[0][t]的初始值为0,剩余所有初始值设置为-∞;
设置二维数组L表示网格图的漂移状态;
设置一维数组D用来表示到网格图某一节点之前数据块的插入/删除总数;
设置一维数组E,用来表示各数据块的插入/删除数量,初始值设置为0。
步骤4,云节点通过译码模块从同步消息M中读取出标记向量S,利用标记向量,建立表示每个数据块漂移状态的网格图。
将二进制文件Y划分为v个数据块,先以初始状态列和数据块的数目v+1作为网格图的列数,以每个数据块前发生的所有插入/删除漂移状态总数2t+1作为网格图的行数;
再以第0列第t行节点作为初始节点,根据每个数据块对应的漂移状态连接各个节点,得到网格图,如图2所示。
步骤5,根据节点间转移概率查找表计算网格图中的节点度量Q,并基于动态规划算法计算网格图中最大似然度量的漂移状态路径D,进而推断出每个数据块发生插入/删除数量的向量E。
5.1)计算网格图中的节点度量值:
Q[j][ι+t]=Q[j-1][λ+t]+τj,λ→ι
Figure BDA0003769339780000051
其中,Q[j][ι+t]表示网格图中第ι+t行第j列处的节点度量值,Q[j-1][λ+t]表示网格图中第λ+t行第j-1列处的节点度量值,τj,λ→ι表示网格图中由第λ行第j-1列转移为第ι行第j列的节点间转移概率,λ作为临时变量表示网格图中第ι行第j列节点前漂移状态的值,j∈[0,v]表示网格图中的第j列,也表示第j个数据块,ι∈[-t,t]表示网格图中第ι行,也表示数据块的漂移状态;
5.2)计算网格图中的漂移状态:
L[j][ι+t]=λ+t
其中,L[j][ι+t]表示网格图中第ι+t行第j列处的漂移状态;
5.3)计算网格图中某一节点之前数据块的插入/删除总数:
D[j-1]=L[j][ι]
ι=D[j]-t
其中,D[j]表示到网格图第j个节点的插入/删除数量,L[j][ι]表示网格图中第ι行第j列处的漂移状态,j={v,v-1,...,1},D[j]和ι的初始值为n'-n+t,n'表示云节点存储的二进制文件Y的长度,n表示本地节点存储的二进制文件X的长度;
5.4)计算网格图中各个数据块的插入/删除数量:
E[i]=D[i]-D[i-1]
其中,E[i]表示二进制文件Y中的第i个块发生的插入/删除数量,i的取值范围为[1,v];
5.5)根据E[i]将二进制文件Y划分为v个数据块(Y1,...,Yi,...,Yv),其中
Figure BDA0003769339780000061
Figure BDA0003769339780000062
表示二进制文件Y中从位置(i-1)k+E[i-1]到位置ik+E[i]之间的数据。
步骤6,云节点调用译码模块读取同步消息M={S,T,C},恢复VT校验子向量A和散列值向量B,并判断各数据块的状态并进行记录。
6.1)恢复VT校验子向量A:
译码模块从同步消息M={S,T,C}中读取VT校验子的校验符号向量T,并将其映射为e个有限域GF(2p)上的VT校验子校验符号向量T';
利用步骤5中得到的每个数据块发生插入/删除数量E[i],判断数据块Yi的插入/删除数量E[i]是否为0:
如果E[i]=0,则译码模块计算数据块Yi的VT校验子A* i
否则,将其视为一个擦除错误;
6.2)译码模块根据VT校验子向量
Figure BDA0003769339780000071
和校验符号向量T',使用RS码译码并纠正擦除错误和符号错误,得到v个数据块的VT校验子向量A=(A1,...,Ai,...,Av);
6.3)恢复散列值向量B:
译码模块从同步消息M={S,T,C}中读取散列值校验符号C,并映射为e个有限域GF(2h)上的散列值校验符号向量C';
利用步骤5中得到的每个数据块发生插入/删除数量E[i],判断数据块Yi的插入/删除数量E[i]是否为0:
如果E[i]=0,则译码模块根据散列函数F计算每个数据块Yi的散列值
Figure BDA0003769339780000072
否则,将其视为一个擦除错误;
6.4)译码模块根据散列值向量
Figure BDA0003769339780000073
和散列值的校验符号向量C′,使用RS码译码并纠正擦除错误和符号错误,得到v个数据块的散列值向量B=(B1,...,Bi,...,Bv);
6.5)判断数据块的状态并进行记录:
对于E[i]=0的数据块Yi,判断译码模块检查散列值Bi是否正确:如果正确,则记录该数据块为已更新状态,否则,记录该数据块为未更新状态;
对于E[i]=±1的数据块Yi,译码模块利用VT校验子Ai对Yi进行译码,根据散列函数F计算译码后序列的散列值并检查散列值是否正确:如果正确,则记录该数据块为已更新状态,否则,记录该数据块为未更新状态。
步骤7,对于连续多个标记为未更新状态的数据块{Yi,Yi+1,...,Yi+a},遍历猜测所有数据块可行的插入/删除模式,译码并校验猜测的插入/删除模式对应的符号序列。
7.1)根据前一个数据块的状态Yj-1,猜测插入/删除模式:
如果Yj-1为已更新状态,则以r为Yj起始边界位置并猜测数据块Yj中存在{1个删除,1个插入},其中j∈[i,i+a],r表示数据块Yj-1的右边界位置;
如果Yj-1为未更新状态,则首先在[l+(j-i)k-s,l+(j-i)k+s]范围内猜测数据块Yj的起始边界位置,并基于每个猜测边界位置,猜测数据块Yj中存在{1个删除,0个插入/删除,1个插入},其中j∈[i,i+a],l表示在二进制文件Y中数据块{Yi,Yi+1,...,Yi+a}的左边界位置;
7.2)利用VT校验子Aj对Yj进行译码,根据散列函数F计算译码后序列的散列值并检查与Bj是否一致,如果一致,则记录该数据块为已更新状态并结束该数据块的猜测校验过程。
步骤8,云节点发送未更新状态的数据块索引给本地节点,要求本地节点进行重传。
8.1)云节点根据译码模块的结果,将被记录为未更新状态的数据块索引发送给本地节点;本地节点根据收到重传数据块索引后读取本地文件X中对应数据块,并将其上传到云节点;
8.2)云节点收到本地节点重传的数据块后,根据数据块索引将所有已更新状态的数据块和本地节点重传的数据块进行组合,完成云节点中文件X的同步。
本发明的效果可以通过以下仿真结果进一步说明:
一.仿真实验条件
1)仿真实验:硬件采用Intel i7-7700 3.6GHz CPU,8GB RAM,500GB硬盘;软件采用Windows 10家庭版,Visual Studio 2015,matlab;
2)仿真参数设置:
将二进制文件的长度n设置为106和107,对应的插入/删除数量t分别设置为20,50,100,200,300,400和500;分片数量v设置为1000和10000,每个分片长度
Figure BDA0003769339780000081
将标记的长度设置为3。
二.仿真内容
仿真1,分别用本发明和现有的基于VT码与散列函数的文件同步方法在不同的插入/删除数量下对不同长度和不同切片数量的二进制文件进行编译码,对其传输的平均比特数量进行统计并对比,结果如图3所示;
从图3可以看出:当二进制文件长度为107且分为104个数据块时,在相同的插入/删除信道下进行文件同步,本发明所需要的比特传输数量比现有方法少;当二进制文件长度为106且分为103个数据块时,在相同的插入/删除信道下进行文件同步,本发明所需要的比特传输数量比现有方法少。
仿真2,分别用本发明和现有的基于VT码与散列函数的文件同步方法在不同的插入/删除信道下对不同长度和不同切片数量的二进制文件进行编译码,对其数据块重传数量进行统计并对比,结果如图4所示;
从图4可以看出:当二进制文件长度为107且分为104个数据块时,在相同的插入/删除信道下进行文件同步,本发明所需要的数据块重传数量与现有方法几乎相同;当二进制文件长度为106且分为103个数据块时,在相同的插入/删除信道下进行文件同步,本发明所需要的数据块重传数量与现有方法几乎相同,表明本发明的比特传输数量显著减少的同时,本地节点重传到云节点的数据块数量不变。

Claims (5)

1.一种插入/删除场景下的低冗余单轮文件同步方法,其特征在于,包括如下步骤:
A)本地节点调用编码模块对二进制文件X进行编码,构造同步消息M={S,T,C}并发送给云节点,其中S表示标记向量,T表示VT校验子的校验符号向量,C表示散列值的校验符号向量;
B)云节点通过译码模块从同步消息M中读取出标记向量S,利用标记向量建立表示每个数据块漂移状态的网格图;
C)根据节点间转移概率查找表计算网格图中的节点度量,并基于动态规划算法搜索网格图中最大似然度量的漂移状态路径,进而推断出每个数据块发生插入/删除数量:
C1)计算网格图中的节点度量值τ(di,j):
Figure FDA0003769339770000011
其中,di,j表示网格图中第ι行第j列处的节点,τ(dι,j)表示网格图中第ι行第j列处的节点度量值,τ(dλ,j-1)表示网格图中第λ行第j-1列处的节点度量值,τj,λ→ι表示网格图中由第λ行第j-1列转移为第ι行第j列的节点间转移概率,j∈[0,v]表示网格图中的第j列,也表示第j个数据块,ι∈[-t,t]表示网格图中第ι行,也表示数据块的漂移状态;
C2)计算网格图中的漂移状态的最大似然路径DML
Figure FDA0003769339770000012
其中,
Figure FDA0003769339770000013
表示网格图中由第δj-1行第j-1列转移为第δj行第j列的节点间转移概率,j∈[0,v]表示网格图中的第j列,也表示第j个数据块,δj∈[-t,t]表示网格图中第δj行,也表示第j个数据块的漂移状态;
C3)设置一个一维数组D,记录最大似然路径DML上各个节点之前发生的插入/删除数量到数组D中;
C4)计算每块发生的插入/删除数量:E=(E1,...,Ei,...,Ev)
其中,Ei=D[i]-D[i-1]表示第i块发生的插入/删除数量,D[i]表示数组D中第i个元素,也表示二进制文件X的第i块之前发生的插入/删除数量,D[i-1]表示数组D中第i-1个元素,也表示二进制文件X的第i-1块之前发生的插入/删除数量;
D)云节点调用译码模块读取同步消息M={S,T,C},并恢复出VT校验子向量和散列值向量;译码模块根据每个数据块发生插入/删除数量、VT校验子向量和散列值向量,恢复插入/删除数量E[i]=0的数据块,判断各数据块的状态并进行记录;
E)对于连续多个标记为未更新状态的数据块{Yi,Yi+1,…,Yi+j,…,Yi+a},遍历猜测所有数据块可行的插入/删除模式,译码并校验猜测的插入/删除模式对应的符号序列,其中j∈[0,a],a表示未更新状态的数据块数量;
F)云节点发送未更新状态的数据块索引给本地节点,要求本地节点进行重传;云节点收到本地节点重新发送的数据块后,根据数据块索引重组所有数据块,完成二进制文件X的同步。
2.根据权利要求1所述的方法,其特征在于,步骤A)中构造同步消息M={S,T,C},实现如下:
A1)初始化编码参数:
将二进制文件X的长度设置为n;
将二进制文件X的数据块个数设置为
Figure FDA0003769339770000021
每块长度设置为k;
将系统码形式的RS码的校验符号数量设置为e;
将每个数据块的标记长度设置为s;
A2)将二进制文件X划分为长度为k的v个连续数据块(X1,...,Xi,...,Xv),读取数据块Xi末尾s个比特作为标记,得到标记向量S=(S1,...,Si,...,Sv);
A3)计算每个数据块Xi的VT校验子,得到VT校验子向量A=(A1,...,Ai,...,Av),将其映射为有限域GF(2p)上的符号向量(β1,...,βi,...,βv),再将符号向量(β1,...,βi,...,βv)通过(v+e,v)RS码编码为VT校验子的校验符号向量T=(T1,T2,...,Te);
A4)基于随机散列函数F计算每个数据块Xi的散列值,并将散列值映射为有限域GF(2h)上的散列值符号向量B=(B1,...,Bi,...,Bv),并将其通过(v+e,v)RS码编码为散列值的校验符号向量C=(C1,C2,...,Ce);
A5)根据标记向量S,VT校验子的校验符号向量T和散列值的校验符号向量C得到二进制同步消息M={S,T,C}。
3.根据权利要求1所述的方法,其特征在于,步骤B)利用标记向量建立表示每个数据块漂移状态的网格图,是先以初始状态列和数据块的数目作为列数,以每个数据块之前发生的插入/删除漂移状态总数作为网格图的行数;再以第0列第t行节点作为初始节点,根据每个数据块对应的漂移状态连接各个节点,得到网格图。
4.根据权利要求1所述的方法,其特征在于,步骤D)恢复插入/删除数量E[i]=0的数据块,判断各数据块的状态,实现如下:
D1)恢复VT校验子向量A:
D11)从同步消息M={S,T,C}中读取VT校验子的校验符号向量T,并将其映射为e个有限域GF(2p)上的VT校验子校验符号向量T';
D12)利用步骤C)中得到的每个数据块发生插入/删除数量E=(E1,...,Ei,...,Ev),判断数据块Yi的插入/删除数量Ei是否为0;
如果Ei=0,则译码模块计算Yi的VT校验子A* i
否则,将其视为一个擦除错误;
D13)译码模块根据VT校验子向量
Figure FDA0003769339770000031
和校验符号向量T',使用RS码译码并纠正擦除错误和符号错误,得到v个数据块的VT校验子向量A=(A1,...,Ai,...,Av);
D2)恢复散列值向量B:
D21)从同步消息M={S,T,C}中读取散列值校验符号C,并映射为e个有限域GF(2h)上的散列值校验符号向量C';
D22)利用步骤C)中得到的每个数据块发生插入/删除数量E=(E1,...,Ei,...,Ev)判断数据块Yi的插入/删除数量Ei是否为0;
如果Ei=0,则译码模块根据散列函数F计算Yi的散列值
Figure FDA0003769339770000041
否则,将其视为一个擦除错误;
D23)译码模块根据散列值向量
Figure FDA0003769339770000042
和散列值的校验符号向量C′,使用RS码译码并纠正擦除错误和符号错误,得到v个数据块的散列值向量B=(B1,...,Bi,...,Bv);
D3)恢复插入/删除数量E[i]=0的数据块,判断各数据块的状态并记录:
对于Ei=0的数据块Yi,译码模块检查散列值Bi是否正确:如果正确,则记录该数据块为已更新状态;
对于Ei=±1的数据块Yi,译码模块利用VT校验子Ai对Yi进行译码,根据散列函数F计算译码后序列的散列值并检查是否正确:如果正确,则记录该数据块为已更新状态;
其他情况,则记录该数据块为未更新状态。
5.根据权利要求1所述的方法,其特征在于,步骤E)中遍历猜测所有数据块可行的插入/删除模式,译码并校验猜测的插入/删除模式对应的符号序列,实现如下:
E1)猜测插入/删除模式:
根据步骤C)得到连续多个标记为未更新状态的数据块{Yi,Yi+1,...,Yi+a}:
如果Yj-1为已更新状态,则分别猜测数据块Yj中存在{1个删除,1个插入};
如果Yj-1为未更新状态,则首先在范围[l+(j-i)k-s,l+(j-i)k+s]内猜测数据块Yj的起始边界位置,并基于每个猜测边界位置,猜测数据块Yj中存在{1个删除,0个插入/删除,1个插入},其中j∈[i,i+a],l表示在二进制文件Y中数据块{Yi,Yi+1,...,Yi+a}的左边界位置;
E2)译码并校验猜测的插入/删除模式对应的符号序列:
利用VT校验子Aj对Yj进行译码,根据散列函数F计算译码后序列的散列值
Figure FDA0003769339770000051
并检查与Bj是否一致,如果一致,则记录该数据块为已更新状态并结束该数据块的猜测校验过程。
CN202210896649.0A 2022-07-28 2022-07-28 插入/删除场景下的低冗余单轮文件同步方法 Pending CN115114251A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210896649.0A CN115114251A (zh) 2022-07-28 2022-07-28 插入/删除场景下的低冗余单轮文件同步方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210896649.0A CN115114251A (zh) 2022-07-28 2022-07-28 插入/删除场景下的低冗余单轮文件同步方法

Publications (1)

Publication Number Publication Date
CN115114251A true CN115114251A (zh) 2022-09-27

Family

ID=83333938

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210896649.0A Pending CN115114251A (zh) 2022-07-28 2022-07-28 插入/删除场景下的低冗余单轮文件同步方法

Country Status (1)

Country Link
CN (1) CN115114251A (zh)

Similar Documents

Publication Publication Date Title
US10270468B2 (en) Method for file updating and version control for linear erasure coded and network coded storage
CN107046812B (zh) 一种数据保存方法和装置
CN109586896B (zh) 一种基于哈希前缀树的数据完整性验证方法
CN100499824C (zh) 防止非字节对齐和/或位移位位置起始码仿效的方法和系统
US9141679B2 (en) Cloud data storage using redundant encoding
WO2018148257A1 (en) Apparatus, method and system for digital information storage in deoxyribonucleic acid (dna)
CN103444087A (zh) 使用弹性代码与柔性源块映射进行编码和解码
CN105991227B (zh) 数据编码方法及装置
CN110515541B (zh) 分布式存储中纠删码非对齐数据更新方法
CN101563874A (zh) 支持对因特网协议网络上的音频以及视频数据进行前向纠错的方法
CN103401795B (zh) 一种内容中心网络中传输内容冗余的消除方法
CN101019326A (zh) 文件下载和流系统
NO300519B1 (no) Fremgangsmåter og apparater for koding og dekoding av en rekke binærsifre
CN107689983B (zh) 基于低修复带宽的云存储系统及方法
CN104303470A (zh) 在广播和通信系统中发送和接收分组的装置和方法
CN112380383B (zh) 一种实时视频流数据的容错索引方法
CN109274462B (zh) 一种基于改进在线喷泉码的图像传输方法
CN112131609A (zh) 基于Merkle树的电能质量数据交换格式文件完整性校验方法及系统
CN101729198B (zh) 一种编解码方法、装置及系统
CN105450712A (zh) 一种数据传输方法及装置
CN103152606B (zh) 视频文件处理方法及装置、系统
CN108762978B (zh) 一种局部部分重复循环码的分组构造方法
Vajha et al. Small-d MSR Codes With Optimal Access, Optimal Sub-Packetization, and Linear Field Size
CN115114251A (zh) 插入/删除场景下的低冗余单轮文件同步方法
CN107317844B (zh) 基于锯齿可解码的最小存储开销的分布式存储方法及系统

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