CN116016486A - 一种同步文件的方法、装置、设备及存储介质 - Google Patents

一种同步文件的方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116016486A
CN116016486A CN202211541559.6A CN202211541559A CN116016486A CN 116016486 A CN116016486 A CN 116016486A CN 202211541559 A CN202211541559 A CN 202211541559A CN 116016486 A CN116016486 A CN 116016486A
Authority
CN
China
Prior art keywords
file
effective
files
synchronized
difference
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.)
Granted
Application number
CN202211541559.6A
Other languages
English (en)
Other versions
CN116016486B (zh
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.)
Guangzhou Weride Technology Co Ltd
Original Assignee
Guangzhou Weride Technology Co Ltd
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 Guangzhou Weride Technology Co Ltd filed Critical Guangzhou Weride Technology Co Ltd
Priority to CN202211541559.6A priority Critical patent/CN116016486B/zh
Publication of CN116016486A publication Critical patent/CN116016486A/zh
Application granted granted Critical
Publication of CN116016486B publication Critical patent/CN116016486B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了一种同步文件的方法、装置、设备及存储介质,方法包括:通过响应同步文件的任务指令,获取待同步文件信息,并读取本地的有效文件,针对每个有效文件,若有效文件不与待同步文件信息匹配,且具备基础文件,将有效文件加入增量列表,向计算服务器发送请求,以计算并确定差异文件并上传至存储服务器,通过下载器下载差异文件,根据基础文件和差异文件生成目标文件,并对每个目标文件建立硬链接。可见,将有效文件与待同步文件信息进行比较,方可得知哪些文件需要下载,仅需要在计算服务器中进行少量的文件差量计算即可确定所需下载的差异文件,无需整份文件包下载即可实现文件同步,节省了时间,提高了自动驾驶开发的测试效率。

Description

一种同步文件的方法、装置、设备及存储介质
技术领域
本申请涉及文件下载技术领域,更具体的说,是涉及一种同步文件的方法、装置、设备及存储介质。
背景技术
随着智能化技术的发展,自动驾驶已大量展开研究并逐步投入到现实生活中,由于自动驾驶对行驶安全的要求极高,在自动驾驶开发阶段需要严格把控,自动驾驶系统需要进行大量的开发测试。每次测试时,车载终端需要从服务端下载新版本的文件包,以同步本地文件。目前对文件包的下载有两种方式,第一种为全量下载,即将文件包的所有文件全部下载至车载终端然后解压,第二种为rsync的同步下载方式,通过在车载终端以及服务端上进行文件计算,对所需要的文件进行同步。
然而,所需同步至新版本的文件中可能仅需要一部分更新文件即可实现同步,那么通过全量下载的方式则浪费了大量的时间和流量,而rsync文件同步下载方式需要进行大量的计算,同样需要消耗大量的时间,使得自动驾驶开发测试阶段的效率低下。
发明内容
鉴于上述问题,提出了本申请以便提供一种同步文件的方法、装置、设备及存储介质,以在自动驾驶开发测试阶段高效地实现车载文件的同步。
为了实现上述目的,现提出具体方案如下:
一种同步文件的方法,包括:
响应同步文件的任务指令,获取服务端的待同步版本文件信息集合,并读取本地的本地文件表,并根据所述本地文件表确定若干有效文件,所述待同步版本文件信息集合包括若干待同步文件信息;
针对每个有效文件,当所述待同步版本文件信息集合中不存在与所述有效文件匹配的待同步文件信息时,判断所述有效文件是否具备与目标同步文件信息对应的基础版本文件,所述目标同步文件信息为所述待同步版本文件信息集合中与所述有效文件匹配的待同步文件信息;
若是,将所述有效文件加入增量下载文件列表;
向计算服务器发送包含所述增量下载文件列表的请求信息,以供所述服务器响应所述请求信息,计算并确定每个有效文件与其目标同步文件信息之间的差异文件,将与每个有效文件对应的差异文件上传至存储服务器;
通过下载器下载所述存储服务器中的差异文件集合,所述差异文件集合包括与每个有效文件对应的差异文件;
针对每个加入增量下载文件列表的有效文件,根据所述有效文件的基础版本文件和所述有效文件的差异文件,生成所述有效文件的目标文件;
对每个目标文件建立硬链接,以同步该目标文件。
可选的,在所述对每个目标文件建立硬链接之后,还包括:
根据每个已建立硬链接的目标文件,更新所述本地文件表,得到更新后的本地文件表。
可选的,根据所述本地文件表确定若干有效文件,包括:
确定所述本地文件表中每个文件地址对应的本地文件;
若检测到每个本地文件在其最近同步时间之后被修改,确定该个本地文件为无效文件;
删除各个本地文件中的无效文件,得到若干有效文件。
可选的,该方法还包括:
针对每个有效文件,若所述待同步版本文件信息集合中存在与所述有效文件匹配的待同步文件信息,对所述有效文件建立硬链接。
可选的,该方法还包括:
针对每个有效文件,当所述待同步版本文件信息集合中不存在与所述有效文件匹配的待同步文件信息时,若所述有效文件不具备与目标同步文件信息对应的基础版本文件,将所述有效文件加入全量下载文件列表;
根据所述全量下载文件列表,通过所述下载器下载所述存储服务器中的全量文件集合,所述全量文件集合包括与每个有效文件对应的全量文件;
对每个有效文件对应的全量文件建立硬链接,以同步该全量文件。
可选的,所述下载器包括写盘器和多个异步网络客户端;
所述通过下载器下载所述存储服务器中的差异文件集合,包括:
在差异文件集合被下载时,通过下载器的各个异步网络客户端对所述差异文件集合进行缓存;
对于每个已满缓存的异步网络客户端,驱动所述下载器的写盘器对所述异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放所述异步网络客户端的缓存。
可选的,所述对于每个已满缓存的异步网络客户端,驱动所述下载器的写盘器对所述异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放所述异步网络客户端的缓存,包括:
当每个异步网络客户端的缓存已满时,触发该个异步网络客户端的回调函数;
通过每个异步网络客户端的回调函数,驱动所述下载器的写盘器对与该回调函数对应的异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放该个异步网络客户端的缓存。
可选的,所述下载器还包括写盘请求队列;
所述对于每个已满缓存的异步网络客户端,驱动所述下载器的写盘器对所述异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放所述异步网络客户端的缓存,包括:
当每个异步网络客户端的缓存已满时,驱动所述写盘请求队列接收该个异步网络客户端请求落盘的任务请求;
若所述写盘请求队列中任务请求的数量不超过预设任务请求量,驱动所述下载器的写盘器通过接收所述写盘请求队列中的每个任务请求,对该个任务请求对应的异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放该个异步网络客户端的缓存。
可选的,该方法还包括:
若所述写盘请求队列中任务请求的数量超过预设任务请求量,驱动所述写盘请求队列暂停接收任务请求。
一种同步文件的装置,包括:
有效文件确定单元,用于响应同步文件的任务指令,获取服务端的待同步版本文件信息集合,并读取本地的本地文件表,并根据所述本地文件表确定若干有效文件,所述待同步版本文件信息集合包括若干待同步文件信息;
基础文件判断单元,用于针对每个有效文件,当所述待同步版本文件信息集合中不存在与所述有效文件匹配的待同步文件信息时,判断所述有效文件是否具备与目标同步文件信息对应的基础版本文件,若是,执行增量列表添加单元,所述目标同步文件信息为所述待同步版本文件信息集合中与所述有效文件匹配的待同步文件信息;
所述增量列表添加单元,用于将所述有效文件加入增量下载文件列表;
请求信息发送单元,用于向计算服务器发送包含所述增量下载文件列表的请求信息,以供所述服务器响应所述请求信息,计算并确定每个有效文件与其目标同步文件信息之间的差异文件,将与每个有效文件对应的差异文件上传至存储服务器;
差异文件下载单元,用于通过下载器下载所述存储服务器中的差异文件集合,所述差异文件集合包括与每个有效文件对应的差异文件;
目标文件生成单元,用于针对每个加入增量下载文件列表的有效文件,根据所述有效文件的基础版本文件和所述有效文件的差异文件,生成所述有效文件的目标文件;
硬链接建立单元,用于对每个目标文件建立硬链接,以同步该目标文件。
可选的,该装置还包括:
文件表更新单元,用于在所述硬链接建立单元对每个目标文件建立硬链接之后,根据每个已建立硬链接的目标文件,更新所述本地文件表,得到更新后的本地文件表。
可选的,所述有效文件确定单元,包括:
第一有效文件确定子单元,用于响应同步文件的任务指令,获取服务端的待同步版本文件信息集合,并读取本地的本地文件表,并确定所述本地文件表中每个文件地址对应的本地文件;
第二有效文件确定子单元,用于若检测到每个本地文件在其最近同步时间之后被修改,确定该个本地文件为无效文件;
第三有效文件确定子单元,用于删除各个本地文件中的无效文件,得到若干有效文件。
可选的,该装置还包括:
硬链接直接建立单元,用于针对每个有效文件,若所述待同步版本文件信息集合中存在与所述有效文件匹配的待同步文件信息,对所述有效文件建立硬链接。
可选的,该装置还包括:
全量列表添加单元,用于针对每个有效文件,当所述待同步版本文件信息集合中不存在与所述有效文件匹配的待同步文件信息时,若所述有效文件不具备与目标同步文件信息对应的基础版本文件,将所述有效文件加入全量下载文件列表;
全量文件下载单元,用于根据所述全量下载文件列表,通过所述下载器下载所述存储服务器中的全量文件集合,所述全量文件集合包括与每个有效文件对应的全量文件;
全量文件同步单元,用于对每个有效文件对应的全量文件建立硬链接,以同步该全量文件。
可选的,所述下载器包括任务列表、写盘器和多个异步网络客户端;
所述差异文件下载单元,包括:
缓存单元,用于在差异文件集合被下载时,通过下载器的各个异步网络客户端对所述差异文件集合进行缓存;
落盘单元,用于对于每个已满缓存的异步网络客户端,驱动所述下载器的写盘器对所述异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放所述异步网络客户端的缓存。
可选的,所述落盘单元,包括:
第一落盘子单元,用于当每个异步网络客户端的缓存已满时,触发该个异步网络客户端的回调函数。
第二落盘子单元,用于通过每个异步网络客户端的回调函数,驱动所述下载器的写盘器对与该回调函数对应的异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放该个异步网络客户端的缓存。
可选的,所述下载器还包括写盘请求队列;
所述落盘单元,包括:
第三落盘子单元,用于当每个异步网络客户端的缓存已满时,驱动所述写盘请求队列接收该个异步网络客户端请求落盘的任务请求;
第四落盘子单元,用于若所述写盘请求队列中任务请求的数量不超过预设任务请求量,驱动所述下载器的写盘器通过接收所述写盘请求队列中的每个任务请求,对该个任务请求对应的异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放该个异步网络客户端的缓存。
可选的,所述落盘单元,还包括:
第五落盘子单元,用于若所述写盘请求队列中任务请求的数量超过预设任务请求量,驱动所述写盘请求队列暂停接收任务请求。
一种同步文件的设备,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如上所述的同步文件的方法的各个步骤。
一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的同步文件的方法的各个步骤。
借由上述技术方案,本申请通过响应同步文件的任务指令,获取服务端的待同步版本文件信息集合,并读取本地的本地文件表,并根据所述本地文件表确定若干有效文件,所述待同步版本文件信息集合包括若干待同步文件信息,针对每个有效文件,当所述待同步版本文件信息集合中不存在与所述有效文件匹配的待同步文件信息时,判断所述有效文件是否具备与目标同步文件信息对应的基础版本文件,所述目标同步文件信息为所述待同步版本文件信息集合中与所述有效文件匹配的待同步文件信息,若是,将所述有效文件加入增量下载文件列表,向计算服务器发送包含所述增量下载文件列表的请求信息,以供所述服务器响应所述请求信息,计算并确定每个有效文件与其目标同步文件信息之间的差异文件,将与每个有效文件对应的差异文件上传至存储服务器,通过下载器下载所述存储服务器中的差异文件集合,所述差异文件集合包括与每个有效文件对应的差异文件,针对每个加入增量下载文件列表的有效文件,根据所述有效文件的基础版本文件和所述有效文件的差异文件,生成所述有效文件的目标文件,对每个目标文件建立硬链接,以同步该目标文件。由此可见,将本地的有效文件与待同步版本文件信息集合进行比较,无需计算方可得知哪些文件需要下载,仅需要在计算服务器中进行少量的文件差量计算,即可确定所需下载的差异文件,且无需整份文件包下载,即可实现文件的更新同步,节省了大量的时间,提高了自动驾驶开发阶段的测试效率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本申请实施例提供的一种同步文件的流程示意图;
图2为本申请实施例提供的一种同步文件的装置结构示意图;
图3为本申请实施例提供的一种同步文件的设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请方案可以基于具备数据处理能力的终端实现,该终端可以是应用于车载系统的客户端。
接下来,结合图1所述,本申请的同步文件的方法可以包括以下步骤:
步骤S110、响应同步文件的任务指令,获取服务端的待同步版本文件信息集合,并读取本地的本地文件表,并根据所述本地文件表确定若干有效文件。
具体的,每当客户端需要执行同步文件的任务时,可以从服务端获取待同步版本文件信息集合,待同步版本文件信息集合包括多个文件的最新版本文件信息,如version文件的信息,服务端可以实时记录最新版本文件的信息,有效文件可以表示在记录的最近一次更新之后没有发生过改动的文件。
可以理解的是,客户端所获取的最新版本文件信息可以跟本地所存储的各个文件逐一进行比对,以检查本地所存储的各个本地文件中,哪些本地文件需要更新,哪些本地文件是最新版本,其中,本地所存储的各个文件可以包含有效文件和无效文件,因此可以读取本地的本地文件表,本地文件表中可以记录本地所存储的各个本地文件的文件地址,因此可以根据本地文件表查找到所有的有效文件和无效文件。
其中,本地所存储的每个文件都可以具备该文件对应的元信息,每个元信息可以由该文件的md5值、该文件在软件包内的相对路径、该文件在服务端的存储路径、该文件的大小值以及该文件的权限组成。本地文件表可以是一个哈希表,该哈希表的键值可以由md5和文件的大小值组成,哈希表的值可以是一个列表,包含了所存储的各个本地文件的存储位置,以及各个本地文件的最近同步的时间。
步骤S120、判断所述有效文件是否具备与目标同步文件信息对应的基础版本文件,若是,则执行步骤S130。
具体的,可以针对每个有效文件,当所述待同步版本文件信息集合中不存在与所述有效文件匹配的待同步文件信息时,判断所述有效文件是否具备与目标同步文件信息对应的基础版本文件。
其中,所述目标同步文件信息可以为所述待同步版本文件信息集合中与所述有效文件匹配的待同步文件信息。
可以理解的是,若所述待同步版本文件信息集合中不存在与所述有效文件匹配的待同步文件信息,可以表示该个有效文件的当前版本并不是最新的版本,需要同步更新至最新版本。
进一步的,若每个有效文件具备与目标同步文件信息对应的基础版本文件,可以表示同步文件可以在该基础版本文件上进行更新,而无需对该个有效文件全量更新。
步骤S130、将所述有效文件加入增量下载文件列表。
具体的,增量下载文件列表可以表示需要进行文件增量更新的有效文件的列表。若每个有效文件具备与目标同步文件信息对应的基础版本文件,可以将所述有效文件加入增量下载文件列表。
步骤S140、向计算服务器发送包含所述增量下载文件列表的请求信息。
可以理解的是,通过向计算服务器发送包含所述增量下载文件列表的请求信息,可以使得服务器响应所述请求信息,计算并确定每个有效文件与其目标同步文件信息之间的差异文件,将与每个有效文件对应的差异文件上传至存储服务器。
具体的,所述计算服务器在接收到请求信息后,可以从云端的存储服务器中获取需要做增量更新的全量更新文件,计算其中的差异,并且将差异文件回传至该存储服务器。
进一步的,当计算服务器完成计算并且回传完成之后,可以向客户端返回成功计算的消息。
步骤S150、通过下载器下载所述存储服务器中的差异文件集合。
其中,所述差异文件集合包括与每个有效文件对应的差异文件。
具体的,客户端可以在接收到计算服务器发送的成功计算的消息后,通过下载器下载所述存储服务器中的差异文件集合。
步骤S160、针对每个加入增量下载文件列表的有效文件,根据所述有效文件的基础版本文件和所述有效文件的差异文件,生成所述有效文件的目标文件。
可以理解的是,每个有效文件的目标文件均符合最新版本文件的信息。
步骤S170、对每个目标文件建立硬链接,以同步该目标文件。
具体的,可以通过对目标文件建立硬链接的方式,实现对目标文件的同步。
本实施例提供的同步文件的方法,通过响应同步文件的任务指令,获取服务端的待同步版本文件信息集合,并读取本地的本地文件表,并根据所述本地文件表确定若干有效文件,所述待同步版本文件信息集合包括若干待同步文件信息,针对每个有效文件,当所述待同步版本文件信息集合中不存在与所述有效文件匹配的待同步文件信息时,判断所述有效文件是否具备与目标同步文件信息对应的基础版本文件,所述目标同步文件信息为所述待同步版本文件信息集合中与所述有效文件匹配的待同步文件信息,若是,将所述有效文件加入增量下载文件列表,向计算服务器发送包含所述增量下载文件列表的请求信息,以供所述服务器响应所述请求信息,计算并确定每个有效文件与其目标同步文件信息之间的差异文件,将与每个有效文件对应的差异文件上传至存储服务器,通过下载器下载所述存储服务器中的差异文件集合,所述差异文件集合包括与每个有效文件对应的差异文件,针对每个加入增量下载文件列表的有效文件,根据所述有效文件的基础版本文件和所述有效文件的差异文件,生成所述有效文件的目标文件,对每个目标文件建立硬链接,以同步该目标文件。由此可见,将本地的有效文件与待同步版本文件信息集合进行比较,无需计算方可得知哪些文件需要下载,仅需要在计算服务器中进行少量的文件差量计算,即可确定所需下载的差异文件,且无需整份文件包下载,即可实现文件的更新同步,节省了大量的时间,提高了自动驾驶开发阶段的测试效率。
在本申请的一些实施例中,考虑到下一次更新需要从本地所存储的文件中确认有效文件,在上述步骤S170、对每个目标文件建立硬链接之后,可以包括更新本地文件表的过程,该过程可以包括:
根据每个已建立硬链接的目标文件,更新所述本地文件表,得到更新后的本地文件表。
具体的,对于每个有效文件,可以在本地文件表中,更新该有效文件的目标文件,并记录更新的时间,得到更新后的本地文件表。
本实施例提供的同步文件的方法,根据每个已建立硬链接的目标文件,更新所述本地文件表,得到更新后的本地文件表,便于下一次更新需要从本地所存储的文件中确认有效文件。
本申请的一些实施例中,对上述实施例提到的、根据所述本地文件表确定若干有效文件的过程进行介绍,该过程可以包括:
S1、确定所述本地文件表中每个文件地址对应的本地文件。
可以理解的是,本地文件表中可以记录本地所存储的每个文件的文件地址,因此可以通过每个文件的文件地址查找到本地文件。
具体的,若每个本地文件经过更新,则具备其基础版本。
S2、若检测到每个本地文件在其最近同步时间之后被修改,确定该个本地文件为无效文件。
可以理解的是,本地所存储的各个本地文件仅在需要进行同步的时候才进行修改,且每次修改会更新同步时间,因此若检测到每个本地文件在其最近同步时间之后被修改,可以表示该个本地文件已经失效,并确定为无效文件。
S3、删除各个本地文件中的无效文件,得到若干有效文件。
可以理解的是,若检测到本地所存储的各个本地文件中已经失效的文件,可以将已经失效的文件删除,得到剩下的有效文件。
在本申请的一些实施例中,考虑到本地所存储的各个本地文件中,存在最新版本的本地文件,那么则不需要对这些最新版本的本地文件进行更新,可以直接同步文件,基于此,本申请所提供的同步文件的方法,还可以包括:
针对每个有效文件,若所述待同步版本文件信息集合中存在与所述有效文件匹配的待同步文件信息,对所述有效文件建立硬链接。
可以理解的是,待同步版本文件信息集合中可以包含多个文件的最新版本文件信息,这些最新版本文件信息对应的文件为客户端需要进行同步的。那么若客户端的本地已存储了最新版本的有效文件,则该有效文件无需进行版本更新,可以直接对该有效文件建立硬链接,从而实现文件同步。
在本申请的一些实施例中,考虑到有效文件不具备与目标同步文件信息对应的基础文件,那么无法基于基础文件,下载与对应的待同步版本文件信息之间的差异文件,并进行更新,需要通过全量文件进行更新,基于此,本申请所提供的同步文件的方法,还可以包括:
S1、针对每个有效文件,当所述待同步版本文件信息集合中不存在与所述有效文件匹配的待同步文件信息时,若所述有效文件不具备与目标同步文件信息对应的基础版本文件,将所述有效文件加入全量下载文件列表。
具体的,全量下载文件列表可以表示需要进行文件全量更新的有效文件的列表。
S2、根据所述全量下载文件列表,通过所述下载器下载所述存储服务器中的全量文件集合。
具体的,所述全量文件集合包括与每个有效文件对应的全量文件。
S3、对每个有效文件对应的全量文件建立硬链接,以同步该全量文件。
本申请的一些实施例中,上述实施例所提到的下载器可以包括有写盘器和多个异步网络客户端,在此基础上,对上述步骤S150、通过下载器下载所述存储服务器中的差异文件集合的过程进行介绍,该过程可以包括:
S1、在差异文件集合被下载时,通过下载器的各个异步网络客户端对所述差异文件集合进行缓存。
具体的,所述下载器可以是基于Boost Asio网络框架研制的,所述下载器还可以具备任务列表。当所述下载器初始化之后,可以接受用户添加的文件,所添加的文件会被添加至任务列表中。当所述下载器开始下载时,所述下载器可以根据用户预先指定的个数新建异步网络客户端。每个异步网络客户端可以具备一个缓存,缓存大小可以为4Kb,每个异步网络客户端可以缓存差异文件集合中的差异文件。
S2、对于每个已满缓存的异步网络客户端,驱动所述下载器的写盘器对所述异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放所述异步网络客户端的缓存。
可以理解的是,当每个异步网络客户端的缓存被填满时,可以将缓存的所有权提交给写盘器,写盘器可以负责缓存内容的最终落盘并释放缓存。
其中,缓存的地址可以是预先对齐的,以便写盘器使用O_DIRECT函数可以绕过文件系统缓存直接落盘。
本实施例提供的同步文件的方法,通过包含有写盘器和多个异步网络客户端的下载器对差异文件集合进行下载,使用多个异步网络客户端进行缓存以并行下载差异文件集合,提高了差异文件集合的下载效率,从而提高了同步文件的效率。
本申请的一些实施例中,对上述实施例提到的、对于每个已满缓存的异步网络客户端,驱动所述下载器的写盘器对所述异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放所述异步网络客户端的缓存的过程进行介绍,该过程可以包括:
S1、当每个异步网络客户端的缓存已满时,触发该个异步网络客户端的回调函数。
具体的,开发人员可以在下载器的开发阶段时,使用Boost的transfer_exactly函数来指定只有缓存满了之后才触发回调函数的功能。
S2、通过每个异步网络客户端的回调函数,驱动所述下载器的写盘器对与该回调函数对应的异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放该个异步网络客户端的缓存。
可以理解的是,通过响应每个异步网络客户端的回调函数,对写盘器的执行进行驱动,能够避免在网速慢的情况下频繁触发回调,维护了下载器的性能,同时能够方便维护每个异步网络客户端已接受数据的大小,一旦发生断连错误,也可以使用该个异步网络客户端已接受数据的大小,发送HTTP range request请求进行断点续传。
本申请的一些实施例中,上述实施例所提到的下载器还可以包括写盘请求队列,所述写盘请求队列可以接收每个异步网络客户端请求落盘的任务请求,并可以向写盘器提供任务请求,基于此,对上述实施例提到的、对于每个已满缓存的异步网络客户端,驱动所述下载器的写盘器对所述异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放所述异步网络客户端的缓存的过程进行介绍,该过程可以包括:
S1、当每个异步网络客户端的缓存已满时,驱动所述写盘请求队列接收该个异步网络客户端请求落盘的任务请求。
具体的,当每个异步网络客户端的缓存已满时,该个异步网络客户端可以向写盘请求队列发送请求落盘的任务请求,以向写盘器请求缓存落盘及释放缓存。
在每个异步网络客户端的缓存释放后,若差异文件集合仍未下载完,可以继续对差异文件集合进行缓存。
S2、若所述写盘请求队列中任务请求的数量不超过预设任务请求量,驱动所述下载器的写盘器通过接收所述写盘请求队列中的每个任务请求,对该个任务请求对应的异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放该个异步网络客户端的缓存。
具体的,预设任务请求量可以表示写盘请求队列所能够接受任务请求的数量的上限。若写盘请求队列中任务请求的数量不超过预设任务请求量,可以表示写盘器的工作压力正常,可以继续接受缓存内容落盘及释放缓存的请求,相反的,若所述写盘请求队列中任务请求的数量超过预设任务请求量,可以表示写盘器的工作压力过大,将可能导致整体下载进程缓慢,则可以驱动所述写盘请求队列暂停接收任务请求,以当写盘器处理部分任务请求后,写盘请求队列方可回复接收任务请求。
本实施例提供的同步文件的方法,通过写盘请求队列对写盘器的写盘行为进行管理,使得写盘器在工作压力过大时能够暂缓写盘,有效地保证了下载器的下载效率,从而保证了同步文件的效率。
下面对本申请实施例提供的实现同步文件的装置进行描述,下文描述的实现同步文件的装置与上文描述的实现同步文件的方法可相互对应参照。
参见图2,图2为本申请实施例公开的一种实现同步文件的装置结构示意图。
如图2所示,该装置可以包括:
有效文件确定单元11,用于响应同步文件的任务指令,获取服务端的待同步版本文件信息集合,并读取本地的本地文件表,并根据所述本地文件表确定若干有效文件,所述待同步版本文件信息集合包括若干待同步文件信息;
基础文件判断单元12,用于针对每个有效文件,当所述待同步版本文件信息集合中不存在与所述有效文件匹配的待同步文件信息时,判断所述有效文件是否具备与目标同步文件信息对应的基础版本文件,若是,执行增量列表添加单元13,所述目标同步文件信息为所述待同步版本文件信息集合中与所述有效文件匹配的待同步文件信息;
所述增量列表添加单元13,用于将所述有效文件加入增量下载文件列表;
请求信息发送单元14,用于向计算服务器发送包含所述增量下载文件列表的请求信息,以供所述服务器响应所述请求信息,计算并确定每个有效文件与其目标同步文件信息之间的差异文件,将与每个有效文件对应的差异文件上传至存储服务器;
差异文件下载单元15,用于通过下载器下载所述存储服务器中的差异文件集合,所述差异文件集合包括与每个有效文件对应的差异文件;
目标文件生成单元16,用于针对每个加入增量下载文件列表的有效文件,根据所述有效文件的基础版本文件和所述有效文件的差异文件,生成所述有效文件的目标文件;
硬链接建立单元17,用于对每个目标文件建立硬链接,以同步该目标文件。
可选的,该装置还包括:
文件表更新单元,用于在所述硬链接建立单元对每个目标文件建立硬链接之后,根据每个已建立硬链接的目标文件,更新所述本地文件表,得到更新后的本地文件表。
可选的,所述有效文件确定单元,包括:
第一有效文件确定子单元,用于响应同步文件的任务指令,获取服务端的待同步版本文件信息集合,并读取本地的本地文件表,并确定所述本地文件表中每个文件地址对应的本地文件;
第二有效文件确定子单元,用于若检测到每个本地文件在其最近同步时间之后被修改,确定该个本地文件为无效文件;
第三有效文件确定子单元,用于删除各个本地文件中的无效文件,得到若干有效文件。
可选的,该装置还包括:
硬链接直接建立单元,用于针对每个有效文件,若所述待同步版本文件信息集合中存在与所述有效文件匹配的待同步文件信息,对所述有效文件建立硬链接。
可选的,该装置还包括:
全量列表添加单元,用于针对每个有效文件,当所述待同步版本文件信息集合中不存在与所述有效文件匹配的待同步文件信息时,若所述有效文件不具备与目标同步文件信息对应的基础版本文件,将所述有效文件加入全量下载文件列表;
全量文件下载单元,用于根据所述全量下载文件列表,通过所述下载器下载所述存储服务器中的全量文件集合,所述全量文件集合包括与每个有效文件对应的全量文件;
全量文件同步单元,用于对每个有效文件对应的全量文件建立硬链接,以同步该全量文件。
可选的,所述下载器包括任务列表、写盘器和多个异步网络客户端;
所述差异文件下载单元,包括:
缓存单元,用于在差异文件集合被下载时,通过下载器的各个异步网络客户端对所述差异文件集合进行缓存;
落盘单元,用于对于每个已满缓存的异步网络客户端,驱动所述下载器的写盘器对所述异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放所述异步网络客户端的缓存。
可选的,所述落盘单元,包括:
第一落盘子单元,用于当每个异步网络客户端的缓存已满时,触发该个异步网络客户端的回调函数。
第二落盘子单元,用于通过每个异步网络客户端的回调函数,驱动所述下载器的写盘器对与该回调函数对应的异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放该个异步网络客户端的缓存。
可选的,所述下载器还包括写盘请求队列;
所述落盘单元,包括:
第三落盘子单元,用于当每个异步网络客户端的缓存已满时,驱动所述写盘请求队列接收该个异步网络客户端请求落盘的任务请求;
第四落盘子单元,用于若所述写盘请求队列中任务请求的数量不超过预设任务请求量,驱动所述下载器的写盘器通过接收所述写盘请求队列中的每个任务请求,对该个任务请求对应的异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放该个异步网络客户端的缓存。
可选的,所述落盘单元,还包括:
第五落盘子单元,用于若所述写盘请求队列中任务请求的数量超过预设任务请求量,驱动所述写盘请求队列暂停接收任务请求。
本申请实施例提供的同步文件的装置可应用于同步文件的设备,如车载系统的客户端。可选的,图3示出了同步文件的设备的硬件结构框图,参照图3,同步文件的设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:
响应同步文件的任务指令,获取服务端的待同步版本文件信息集合,并读取本地的本地文件表,并根据所述本地文件表确定若干有效文件,所述待同步版本文件信息集合包括若干待同步文件信息;
针对每个有效文件,当所述待同步版本文件信息集合中不存在与所述有效文件匹配的待同步文件信息时,判断所述有效文件是否具备与目标同步文件信息对应的基础版本文件,所述目标同步文件信息为所述待同步版本文件信息集合中与所述有效文件匹配的待同步文件信息;
若是,将所述有效文件加入增量下载文件列表;
向计算服务器发送包含所述增量下载文件列表的请求信息,以供所述服务器响应所述请求信息,计算并确定每个有效文件与其目标同步文件信息之间的差异文件,将与每个有效文件对应的差异文件上传至存储服务器;
通过下载器下载所述存储服务器中的差异文件集合,所述差异文件集合包括与每个有效文件对应的差异文件;
针对每个加入增量下载文件列表的有效文件,根据所述有效文件的基础版本文件和所述有效文件的差异文件,生成所述有效文件的目标文件;
对每个目标文件建立硬链接,以同步该目标文件。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
本申请实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:
响应同步文件的任务指令,获取服务端的待同步版本文件信息集合,并读取本地的本地文件表,并根据所述本地文件表确定若干有效文件,所述待同步版本文件信息集合包括若干待同步文件信息;
针对每个有效文件,当所述待同步版本文件信息集合中不存在与所述有效文件匹配的待同步文件信息时,判断所述有效文件是否具备与目标同步文件信息对应的基础版本文件,所述目标同步文件信息为所述待同步版本文件信息集合中与所述有效文件匹配的待同步文件信息;
若是,将所述有效文件加入增量下载文件列表;
向计算服务器发送包含所述增量下载文件列表的请求信息,以供所述服务器响应所述请求信息,计算并确定每个有效文件与其目标同步文件信息之间的差异文件,将与每个有效文件对应的差异文件上传至存储服务器;
通过下载器下载所述存储服务器中的差异文件集合,所述差异文件集合包括与每个有效文件对应的差异文件;
针对每个加入增量下载文件列表的有效文件,根据所述有效文件的基础版本文件和所述有效文件的差异文件,生成所述有效文件的目标文件;
对每个目标文件建立硬链接,以同步该目标文件。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (12)

1.一种同步文件的方法,其特征在于,包括:
响应同步文件的任务指令,获取服务端的待同步版本文件信息集合,并读取本地的本地文件表,并根据所述本地文件表确定若干有效文件,所述待同步版本文件信息集合包括若干待同步文件信息;
针对每个有效文件,当所述待同步版本文件信息集合中不存在与所述有效文件匹配的待同步文件信息时,判断所述有效文件是否具备与目标同步文件信息对应的基础版本文件,所述目标同步文件信息为所述待同步版本文件信息集合中与所述有效文件匹配的待同步文件信息;
若是,将所述有效文件加入增量下载文件列表;
向计算服务器发送包含所述增量下载文件列表的请求信息,以供所述服务器响应所述请求信息,计算并确定每个有效文件与其目标同步文件信息之间的差异文件,将与每个有效文件对应的差异文件上传至存储服务器;
通过下载器下载所述存储服务器中的差异文件集合,所述差异文件集合包括与每个有效文件对应的差异文件;
针对每个加入增量下载文件列表的有效文件,根据所述有效文件的基础版本文件和所述有效文件的差异文件,生成所述有效文件的目标文件;
对每个目标文件建立硬链接,以同步该目标文件。
2.根据权利要求1所述的方法,其特征在于,在所述对每个目标文件建立硬链接之后,还包括:
根据每个已建立硬链接的目标文件,更新所述本地文件表,得到更新后的本地文件表。
3.根据权利要求1所述的方法,其特征在于,根据所述本地文件表确定若干有效文件,包括:
确定所述本地文件表中每个文件地址对应的本地文件;
若检测到每个本地文件在其最近同步时间之后被修改,确定该个本地文件为无效文件;
删除各个本地文件中的无效文件,得到若干有效文件。
4.根据权利要求1所述的方法,其特征在于,还包括:
针对每个有效文件,若所述待同步版本文件信息集合中存在与所述有效文件匹配的待同步文件信息,对所述有效文件建立硬链接。
5.根据权利要求1所述的方法,其特征在于,还包括:
针对每个有效文件,当所述待同步版本文件信息集合中不存在与所述有效文件匹配的待同步文件信息时,若所述有效文件不具备与目标同步文件信息对应的基础版本文件,将所述有效文件加入全量下载文件列表;
根据所述全量下载文件列表,通过所述下载器下载所述存储服务器中的全量文件集合,所述全量文件集合包括与每个有效文件对应的全量文件;
对每个有效文件对应的全量文件建立硬链接,以同步该全量文件。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述下载器包括写盘器和多个异步网络客户端;
所述通过下载器下载所述存储服务器中的差异文件集合,包括:
在差异文件集合被下载时,通过下载器的各个异步网络客户端对所述差异文件集合进行缓存;
对于每个已满缓存的异步网络客户端,驱动所述下载器的写盘器对所述异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放所述异步网络客户端的缓存。
7.根据权利要求6所述的方法,其特征在于,所述对于每个已满缓存的异步网络客户端,驱动所述下载器的写盘器对所述异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放所述异步网络客户端的缓存,包括:
当每个异步网络客户端的缓存已满时,触发该个异步网络客户端的回调函数;
通过每个异步网络客户端的回调函数,驱动所述下载器的写盘器对与该回调函数对应的异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放该个异步网络客户端的缓存。
8.根据权利要求6所述的方法,其特征在于,所述下载器还包括写盘请求队列;
所述对于每个已满缓存的异步网络客户端,驱动所述下载器的写盘器对所述异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放所述异步网络客户端的缓存,包括:
当每个异步网络客户端的缓存已满时,驱动所述写盘请求队列接收该个异步网络客户端请求落盘的任务请求;
若所述写盘请求队列中任务请求的数量不超过预设任务请求量,驱动所述下载器的写盘器通过接收所述写盘请求队列中的每个任务请求,对该个任务请求对应的异步网络客户端所对差异文件集合的缓存内容进行落盘,并释放该个异步网络客户端的缓存。
9.根据权利要求8所述的方法,其特征在于,还包括:
若所述写盘请求队列中任务请求的数量超过预设任务请求量,驱动所述写盘请求队列暂停接收任务请求。
10.一种同步文件的装置,其特征在于,包括:
有效文件确定单元,用于响应同步文件的任务指令,获取服务端的待同步版本文件信息集合,并读取本地的本地文件表,并根据所述本地文件表确定若干有效文件,所述待同步版本文件信息集合包括若干待同步文件信息;
基础文件判断单元,用于针对每个有效文件,当所述待同步版本文件信息集合中不存在与所述有效文件匹配的待同步文件信息时,判断所述有效文件是否具备与目标同步文件信息对应的基础版本文件,若是,执行增量列表添加单元,所述目标同步文件信息为所述待同步版本文件信息集合中与所述有效文件匹配的待同步文件信息;
所述增量列表添加单元,用于将所述有效文件加入增量下载文件列表;
请求信息发送单元,用于向计算服务器发送包含所述增量下载文件列表的请求信息,以供所述服务器响应所述请求信息,计算并确定每个有效文件与其目标同步文件信息之间的差异文件,将与每个有效文件对应的差异文件上传至存储服务器;
差异文件下载单元,用于通过下载器下载所述存储服务器中的差异文件集合,所述差异文件集合包括与每个有效文件对应的差异文件;
目标文件生成单元,用于针对每个加入增量下载文件列表的有效文件,根据所述有效文件的基础版本文件和所述有效文件的差异文件,生成所述有效文件的目标文件;
硬链接建立单元,用于对每个目标文件建立硬链接,以同步该目标文件。
11.一种同步文件的设备,其特征在于,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如权利要求1-9任一项的同步文件的方法的各个步骤。
12.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-9任一项的同步文件的方法的各个步骤。
CN202211541559.6A 2022-12-02 2022-12-02 一种同步文件的方法、装置、设备及存储介质 Active CN116016486B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211541559.6A CN116016486B (zh) 2022-12-02 2022-12-02 一种同步文件的方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211541559.6A CN116016486B (zh) 2022-12-02 2022-12-02 一种同步文件的方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN116016486A true CN116016486A (zh) 2023-04-25
CN116016486B CN116016486B (zh) 2024-06-18

Family

ID=86036175

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211541559.6A Active CN116016486B (zh) 2022-12-02 2022-12-02 一种同步文件的方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116016486B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118677910A (zh) * 2024-08-23 2024-09-20 博世汽车部件(苏州)有限公司 在车载操作系统之间同步车辆属性数据的方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103237062A (zh) * 2013-04-10 2013-08-07 何钦淋 文件管理系统及方法
CN112749236A (zh) * 2020-12-29 2021-05-04 食亨(上海)科技服务有限公司 数据仓库的数据维护方法
CN114637527A (zh) * 2022-05-18 2022-06-17 海马云(天津)信息技术有限公司 云应用的热更新资源提取与更新方法和装置
CN115086345A (zh) * 2022-05-13 2022-09-20 北京百度网讯科技有限公司 文件同步的方法、装置、电子设备及可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103237062A (zh) * 2013-04-10 2013-08-07 何钦淋 文件管理系统及方法
CN112749236A (zh) * 2020-12-29 2021-05-04 食亨(上海)科技服务有限公司 数据仓库的数据维护方法
CN115086345A (zh) * 2022-05-13 2022-09-20 北京百度网讯科技有限公司 文件同步的方法、装置、电子设备及可读存储介质
CN114637527A (zh) * 2022-05-18 2022-06-17 海马云(天津)信息技术有限公司 云应用的热更新资源提取与更新方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118677910A (zh) * 2024-08-23 2024-09-20 博世汽车部件(苏州)有限公司 在车载操作系统之间同步车辆属性数据的方法和装置

Also Published As

Publication number Publication date
CN116016486B (zh) 2024-06-18

Similar Documents

Publication Publication Date Title
US11403262B2 (en) Local networked storage linked to remote networked storage system
CN105049486B (zh) 静态文件的版本管理方法、装置及系统
CN109739810B (zh) 文件同步方法、服务器、客户端及具有存储功能的装置
EP2936342B1 (en) Application programming interfaces for data synchronization with online storage systems
CN106161523B (zh) 一种数据处理方法和设备
JP6062987B2 (ja) ネットワークストレージ管理システム
JP5814436B2 (ja) キャッシング情報のシステム及び方法
US20140164453A1 (en) Cloud based file system surpassing device storage limits
CN104239575A (zh) 一种虚拟机镜像文件存储、分发方法及装置
CN111200634B (zh) 缓存资源联动更新方法、系统及服务器
CN111176549B (zh) 基于云存储的数据存储方法、装置和存储介质
CN111273863B (zh) 高速缓存管理
CN116016486B (zh) 一种同步文件的方法、装置、设备及存储介质
US8732355B1 (en) Dynamic data prefetching
CN114051056B (zh) 数据缓存及读取方法、数据存取系统
CN106817388B (zh) 虚拟机、宿主机获取数据的方法、装置及访问数据的系统
CN113254394B (zh) 一种快照处理方法、系统、设备及存储介质
CN113792885A (zh) 一种深度学习训练的执行方法及相关装置
CN112748877A (zh) 一种文件的整合上传方法及装置、文件的下载方法及装置
CN115987759B (zh) 数据处理方法、装置、电子设备及存储介质
US20120303590A1 (en) Management of deduplicated data during restoration in a network archival and retrieval system
CN113746881A (zh) 容器镜像下载方法及系统
CN106407320B (zh) 文件处理方法、装置及系统
CN114125060B (zh) 资源缓存方法、装置、电子设备及可读存储介质
JP7568266B2 (ja) ストレージ装置

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