多线程差分刷写方法、装置、电子设备及存储介质与流程

文档序号:36409926发布日期:2023-12-18 20:50阅读:39来源:国知局
多线程差分刷写方法与流程

本申请涉及计算机,尤其涉及一种多线程差分刷写方法、装置、电子设备及存储介质。


背景技术:

1、bsdiff是一种二进制差量更新算法,该算法的基本步骤为:在服务器端运行bsdiff算法生成补丁文件,在客户端运行bspatch算法,将原始文件和补丁文件合成为更新文件。由于bspatch算法的线性限制,在更新时需要完整的对整个原始文件做差量更新,生成完整的更新文件后才能写入设备,这就导致了几个问题:1)在运行bspatch算法时,需要占用完整的更新文件大小的内存,占用内存空间大;2)在刷写到设备时,需要占用完整的更新文件大小的临时存储空间,占用临时存储空间大;3)在进行bspatch算法时,由于算法线性限制只能单线程处理,刷写效率低、时间长。


技术实现思路

1、有鉴于此,本申请的目的在于提出一种多线程差分刷写方法。

2、基于上述目的,本申请提供了一种多线程差分刷写方法,包括:创建至少两个线程;获取与目标文件相对应的刷写数据;利用所述至少两个线程根据预设的线程单次刷写长度以及实时监测得到的刷写完成长度并基于bsdiff算法将所述刷写数据写入所述目标文件;响应于所述刷写完成长度不小于预设的第一阈值,完成差分刷写;其中,所述第一阈值为根据所述刷写数据的长度确定的。

3、可选地,所述线程的数量与cpu核数相同。

4、可选地,所述获取与目标文件相对应的刷写数据,包括:获取与所述目标文件相对应的补丁文件;解析所述补丁文件中的控制块文件并得到控制块数据,根据所述控制块数据获取所述刷写数据。

5、可选地,所述利用所述至少两个线程根据预设的线程单次刷写长度以及实时监测得到的刷写完成长度并基于bsdiff算法将所述刷写数据写入所述目标文件,包括:根据所述线程单次刷写长度以及所述刷写完成长度确定每个所述线程的写入长度以及写入位置;利用所述至少两个线程根据所述写入长度以及所述写入位置并基于所述bsdiff算法将所述刷写数据写入所述目标文件。

6、可选地,根据所述线程单次刷写长度以及所述刷写完成长度确定每个所述线程的写入长度,包括:响应于所述第一阈值减去所述刷写完成长度大于等于所述单次刷写长度,确定所述写入长度等于所述线程单次刷写长度;响应于所述第一阈值减去所述刷写完成长度小于所述单次刷写长度,确定所述写入长度等于所述第一阈值减去所述刷写完成长度。

7、可选地,根据所述线程单次刷写长度以及所述刷写完成长度确定每个所述线程的写入位置,包括:获取所述目标文件的初始刷写位置;确定所述写入位置为所述初始刷写位置加上所述线程单次刷写长度再加上所述刷写完成长度。

8、可选地,所述刷写数据包括旧文件数据、差分数据以及额外添加数据;所述将所述刷写数据写入所述目标文件,包括:融合所述旧文件数据、所述差分数据以及所述额外添加数据,并将融合后的所述旧文件数据、所述差分数据以及所述额外添加数据写入所述目标文件。

9、基于同一发明构思,本申请还提供了一种多线程差分刷写装置,包括:创建模块,被配置为创建至少两个线程;获取模块,被配置为获取与目标文件相对应的刷写数据;刷写模块,被配置为利用所述至少两个线程根据预设的线程单次刷写长度以及实时监测得到的刷写完成长度并基于bsdiff算法将所述刷写数据写入所述目标文件;响应停止模块,被配置为响应于所述刷写完成长度不小于预设的第一阈值,完成差分刷写;其中,所述第一阈值为根据所述刷写数据的长度确定的。

10、可选地,所述线程的数量与cpu核数相同。

11、可选地,所述获取模块还被配置为:获取与所述目标文件相对应的补丁文件;解析所述补丁文件中的控制块文件并得到控制块数据,根据所述控制块数据获取所述刷写数据。

12、可选地,所述刷写模块还被配置为:根据所述线程单次刷写长度以及所述刷写完成长度确定每个所述线程的写入长度以及写入位置;利用所述至少两个线程根据所述写入长度以及所述写入位置并基于所述bsdiff算法将所述刷写数据写入所述目标文件。

13、可选地,所述刷写模块包括写入长度确定单元,所述写入长度确定单元被配置为:响应于所述第一阈值减去所述刷写完成长度大于等于所述单次刷写长度,确定所述写入长度等于所述线程单次刷写长度;响应于所述第一阈值减去所述刷写完成长度小于所述单次刷写长度,确定所述写入长度等于所述第一阈值减去所述刷写完成长度。

14、可选地,所述刷写模块还包括写入位置确定单元,所述写入位置确定单元被配置为:获取所述目标文件的初始刷写位置;确定所述写入位置为所述初始刷写位置加上所述线程单次刷写长度再加上所述刷写完成长度。

15、可选地,所述刷写数据包括旧文件数据、差分数据以及额外添加数据;所述刷写模块还被配置为:融合所述旧文件数据、所述差分数据以及所述额外添加数据,并将融合后的所述旧文件数据、所述差分数据以及所述额外添加数据写入所述目标文件。

16、从上面所述可以看出,本申请提供的一种多线程差分刷写方法,包括:创建至少两个线程;获取与目标文件相对应的刷写数据;利用所述至少两个线程根据预设的线程单次刷写长度以及实时监测得到的刷写完成长度并基于bsdiff算法将所述刷写数据写入所述目标文件;响应于所述刷写完成长度不小于预设的第一阈值,完成差分刷写。本申请提供的方法能够实现多线程并行、多次分区域刷写,使得bsdiff算法在进行刷写时可以灵活配置刷写数据占用的内存空间和设备临时存储空间,同时提高了刷写效率,减少刷写时间。



技术特征:

1.一种多线程差分刷写方法,其特征在于,包括:

2.根据权利要求1所述的多线程差分刷写方法,其特征在于:

3.根据权利要求1所述的多线程差分刷写方法,其特征在于,所述获取与目标文件相对应的刷写数据,包括:

4.根据权利要求1所述的多线程差分刷写方法,其特征在于,所述利用所述至少两个线程根据预设的线程单次刷写长度以及实时监测得到的刷写完成长度并基于bsdiff算法将所述刷写数据写入所述目标文件,包括:

5.根据权利要求4所述的多线程差分刷写方法,其特征在于,根据所述线程单次刷写长度以及所述刷写完成长度确定每个所述线程的写入长度,包括:

6.根据权利要求4所述的多线程差分刷写方法,其特征在于,根据所述线程单次刷写长度以及所述刷写完成长度确定每个所述线程的写入位置,包括:

7.根据权利要求1所述的多线程差分刷写方法,其特征在于,所述刷写数据包括旧文件数据、差分数据以及额外添加数据;

8.一种多线程差分刷写装置,其特征在于,包括:

9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任意一项所述的方法。

10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行权利要求1至7任一所述方法。


技术总结
本申请提供一种多线程差分刷写方法,包括:创建至少两个线程;获取与目标文件相对应的刷写数据;利用所述至少两个线程根据预设的线程单次刷写长度以及实时监测得到的刷写完成长度并基于BSDiff算法将所述刷写数据写入所述目标文件;响应于所述刷写完成长度不小于预设的第一阈值,完成差分刷写;其中,所述第一阈值为根据所述刷写数据的长度确定的。本申请提供的方法能够实现多线程并行、多次分区域刷写,使得BSDiff算法在进行刷写时可以灵活配置刷写数据占用的内存空间和设备临时存储空间,同时提高了刷写效率,减少刷写时间。

技术研发人员:吴秀峰
受保护的技术使用者:北京车和家信息技术有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1