CN115344284A - 自动驾驶软件升级方法、装置、存储介质及计算机设备 - Google Patents
自动驾驶软件升级方法、装置、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN115344284A CN115344284A CN202210982955.6A CN202210982955A CN115344284A CN 115344284 A CN115344284 A CN 115344284A CN 202210982955 A CN202210982955 A CN 202210982955A CN 115344284 A CN115344284 A CN 115344284A
- Authority
- CN
- China
- Prior art keywords
- file
- software
- version
- version software
- downloaded
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种自动驾驶软件升级方法、装置、存储介质及计算机设备。该方法包括:根据目标版本软件的版本信息获取目标版本软件的元数据;根据本地版本软件的版本信息获取本地版本软件的版本记录;基于元数据与版本记录,确定待下载文件和待拷贝文件;在系统分区下创建新的存储目录;根据每个待拷贝文件的文件名、文件指纹、相对路径,创建从待拷贝文件的原始存储目录指向新的存储目录的硬链接;根据每个待下载文件的文件名、文件指纹及存储路径,创建下载链接;基于每个待下载文件的下载链接下载对应的待下载文件至新的存储目录。本申请能够节省系统的存储空间、并节省下载所需的网络资源和计算资源,提高系统分区实现软件升级的效率。
Description
技术领域
本申请涉及自动驾驶技术领域,尤其涉及一种自动驾驶软件升级方法、装置、存储介质及计算机设备。
背景技术
自动驾驶车辆根据执行的任务不同,需要下载不同版本的自动驾驶软件,或是自动驾驶软件进行了版本更新,也需要进行下载。
但自动驾驶软件的体积比较大,通常为几十个Gb,特别是需要使用测试车辆进行测试的版本,经常需要大规模更新,而且下载软件的频率较高。但对于系统分区的文件,在运行时这些文件为只读文件,无法更改,要实现软件的升级需要完整下载自动驾驶软件,需要占用车端大量的系统存储空间,并且消耗大量的网络资源和计算资源,所需时间较长,不利于向车端高效分发自动驾驶软件。
发明内容
本申请实施例提供了一种自动驾驶软件升级方法、装置、存储介质及计算机设备,能够节省系统的存储空间、并节省下载所需的网络资源和计算资源,提高系统分区实现软件升级的效率。
第一方面,本申请提供了一种自动驾驶软件升级方法,应用于自动驾驶车辆,所述方法包括:
根据目标版本软件的版本信息获取所述目标版本软件的元数据;其中,所述元数据包括所述目标版本软件中每个文件的文件名、文件更新时间、文件指纹及其在分布式存储系统的存储路径;
根据本地版本软件的版本信息获取本地版本软件的版本记录;所述版本记录包括所述本地版本软件中的每个文件的文件名、文件更新时间及文件指纹;
基于所述元数据与所述版本记录,确定待下载文件和待拷贝文件;其中,所述待拷贝文件为所述目标版本软件中与所述本地版本软件中一致的文件;
在系统分区下创建新的存储目录;
根据每个待拷贝文件的文件名、文件指纹、相对路径,创建从所述待拷贝文件的原始存储目录指向所述新的存储目录的硬链接;
根据每个待下载文件的文件名、文件指纹及存储路径,创建下载链接;所述下载链接用于从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统下载对应的待下载文件;
基于每个待下载文件的下载链接下载对应的待下载文件至所述新的存储目录。
在其中一个实施例中,所述方法还包括:
若判断所述目标版本软件运行正常,则删除所述原始存储目录中存储的所述本地版本软件的各文件。
在其中一个实施例中,所述若判断所述目标版本软件运行正常,则删除所述原始存储目录中存储的所述本地版本软件的各文件,包括:
在调用所述目标版本软件完成运行的次数达到预设的运行次数,且每次运行均没有发生运行故障时,则删除所述原始存储目录中存储的所述本地版本软件的各文件;
或,
在从初次调用所述目标版本软件运行至当前时刻达到预设时间,且运行所述目标版本软件没有发生运行故障时,则删除所述原始存储目录中存储的所述本地版本软件的各文件。
在其中一个实施例中,所述根据目标版本软件的版本信息获取所述目标版本软件的元数据,包括:
根据所述目标版本软件的版本信息及预设的元数据文件名生成第一加载路径;
根据所述第一加载路径从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统加载所述目标版本软件的元数据。
在其中一个实施例中,所述根据本地版本软件的版本信息获取所述本地版本软件的版本记录,包括:
根据所述本地版本软件的版本信息及预设的版本记录文件名生成第二加载路径;
根据所述第二加载路径从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统加载所述版本记录。
在其中一个实施例中,所述基于所述元数据与所述版本记录,确定待下载文件和待拷贝文件,包括:
若根据所述元数据与所述版本记录,确定所述目标版本软件的任一文件与所述本地版本软件中其中一个文件的文件指纹、文件更新时间相同,则将该文件确定为待拷贝文件;
若根据所述元数据与所述版本记录,确定所述目标版本软件中的任一文件与所述本地版本软件中任一文件的文件指纹不同,或,所述目标版本软件中的任一文件与所述本地版本软件中其中一个文件的文件指纹相同但文件更新时间不同,则将所述目标版本软件中的该文件确定为待下载文件。
在其中一个实施例中,所述分布式存储系统为对象存储系统,所述分布式缓存系统为web缓存系统。
第二方面,本申请还提供了一种自动驾驶软件升级装置,应用于自动驾驶车辆,所述装置包括:
第一获取模块,用于根据目标版本软件的版本信息获取所述目标版本软件的元数据;其中,所述元数据包括所述目标版本软件中每个文件的文件名、文件更新时间、文件指纹及其在分布式存储系统的存储路径;
第二获取模块,用于根据本地版本软件的版本信息获取本地版本软件的版本记录;所述版本记录包括所述本地版本软件中的每个文件的文件名、文件更新时间及文件指纹;
确定模块,用于基于所述元数据与所述版本记录,确定待下载文件和待拷贝文件;其中,所述待拷贝文件为所述目标版本软件中与所述本地版本软件中一致的文件;
存储目录创建模块,用于在系统分区下创建新的存储目录;
硬链接创建模块,用于根据每个待拷贝文件的文件名、文件指纹、相对路径,创建从所述待拷贝文件的原始存储目录指向所述新的存储目录的硬链接;
下载链接创建模块,用于根据每个待下载文件的文件名、文件指纹及存储路径,创建下载链接;所述下载链接用于从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统下载对应的待下载文件;
文件下载模块,用于基于每个待下载文件的下载链接下载对应的待下载文件至所述新的存储目录。
第三方面,本申请提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述任一项实施例所述自动驾驶软件升级方法的步骤。
第四方面,本申请提供了一种计算机设备,包括:一个或多个处理器,以及存储器;
所述存储器中存储有计算机可读指令,所述一个或多个处理器执行时所述计算机可读指令时,执行如上述任一项实施例所述自动驾驶软件升级方法的步骤。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请提供的自动驾驶软件升级方法、装置、存储介质及计算机设备,应用于需要对系统分区进行软件升级的自动驾驶车辆,分别获取目标版本软件的元数据和本地版本软件的版本记录,元数据包括目标版本软件中每个文件的文件名、文件更新时间、文件指纹及其在分布式存储系统的存储路径,版本记录包括本地版本软件中的每个文件的文件名、文件更新时间及文件指纹;基于元数据和版本记录确定本地软件版本中没有的待下载文件,以及本地软件版本中已有的待拷贝文件,并在系统分区下创建新的存储目录,创建从带靠背文件的原始存储目录指向新的存储目录的硬链接,利用硬链接实现调用,减少系统级别的I/O,根据待下载文件的文件名、文件指纹及存储路径创建用于从存储目标版本软件的分布式存储系统或与分布式存储系统连接的分布式缓存系统下载对应的待下载文件的下载链接,基于下载链接将待下载文件下载至新的存储目录,完成升级,即仅需下载本地版本软件中缺少的文件,减少下载体量,在车端只需要进行元数据与版本记录的比对,无需读入目标版本软件的所有文件与本地版本软件进行计算和比对,节省自动驾驶软件分发至车辆所需的网络资源和计算资源,提高软件升级效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为一个实施例中,自动驾驶软件升级方法的应用环境图;
图2为一个实施例中,自动驾驶软件升级方法的流程图;
图3为一个实施例中,根据目标版本软件的版本信息获取所述目标版本软件的元数据步骤的流程图;
图4为一个实施例中,根据本地版本软件的版本信息获取所述本地版本软件的版本记录步骤的流程图;
图5为一个实施例中,自动驾驶软件升级装置的结构框图;
图6为一个实施例中,计算机设备的内部结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为一个实施例中自动驾驶软件升级方法的应用环境示意图。如图1所示,该应用环境包括自动驾驶车辆101和自动驾驶云平台的服务器102。其中,自动驾驶车辆101通过网络与服务器102进行通信。分布式存储系统可以存储服务器102需要处理的数据。在编译完成一个自动驾驶软件后,计算自动驾驶软件中的每个文件的内容生成每个文件的文件指纹,将每个文件存储至分布式存储系统,完成后生成自动驾驶软件的元数据,元数据包括每个文件的文件名、文件更新时间、文件指纹及其在分布式存储系统的存储路径。自动驾驶车辆在要进行软件升级时,从分布式存储系统或与分布式存储系统连接的分布式缓存系统下载升级所需的文件。其中,服务器102可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,本申请实施例提供了一种自动驾驶软件升级方法,应用于自动驾驶车辆,所述方法包括步骤S201-S207,其中:
步骤S201,根据目标版本软件的版本信息获取目标版本软件的元数据。
其中,元数据包括目标版本软件中每个文件的文件名、文件更新时间、文件指纹及其在分布式存储系统的存储路径。目标版本软件的版本信息包括目标版本软件的版本号,版本号与元数据相关联,通过版本号可以获取元数据。目标版本软件中各文件的文件指纹为自动驾驶软件云平台对文件内容进行计算得到的,可以采用MD5算法(Message-DigestAlgorithm,信息摘要算法)、SHA256算法(Secure Hash Algorithm 256,安全散列256算法)、CRC算法(Cyclic Redundancy Check,循环冗余校验算法)计算文件指纹,不需要自动驾驶车辆在同步时读入新版软件进行计算,车端直接获取元数据即可。
在其中一个实施例中,分布式存储系统为对象存储系统、数据库或文件存储系统。
在其中一个实施例中,目标版本软件中每个文件在分布式存储系统中的存储路径根据每个文件的文件指纹创建,使存储路径与文件指纹关联,便于定位目标文件。
步骤S202,根据本地版本软件的版本信息获取本地版本软件的版本记录。
其中,版本记录包括本地版本软件中的每个文件的文件名、文件更新时间及文件指纹。版本记录为编译本地版本软件时生成,通过本地版本软件的版本信息可以从分布式存储系统中获取。
步骤S203,基于元数据与版本记录,确定待下载文件和待拷贝文件。
其中,待拷贝文件为目标版本软件中与本地版本软件中一致的文件,由于系统分区下的文件在运行时不能随意进行修改,因此不能直接对本地版本软件的文件进行处理,并且为了增加系统的健壮性,需要将与目标版本软件中相同的文件拷贝一份,与下载的待下载文件共同构成目标版本软件的相关文件。
文件指纹是基于文件的内容计算得到的,但相比直接对比文件内容而言,对比文件指纹的运算量大幅减少,通过比较结果文件中的文件指纹和元数据中的文件指纹、文件名、文件更新时间,即可确定自动驾驶车辆当前版本的自动驾驶软件与目标版本软件相比所缺少的文件以及相同的文件,缺少的文件即为待下载文件,相同文件即为待拷贝文件。
在其中一个实施例中,若根据元数据与版本记录,确定目标版本软件的任一文件与本地版本软件中其中一个文件的文件指纹、文件更新时间相同,则将该文件确定为待拷贝文件;若根据元数据与版本记录,确定目标版本软件中的任一文件与本地版本软件中任一文件的文件指纹不同,或,目标版本软件中的任一文件与本地版本软件中其中一个文件的文件指纹相同但文件更新时间不同,则将目标版本软件中的该文件确定为待下载文件。
步骤S204,在系统分区下创建新的存储目录。
步骤S205,根据每个待拷贝文件的文件名、文件指纹、相对路径,创建从待拷贝文件的原始存储目录指向新的存储目录的硬链接。
其中,相对路径是是指文件在系统分区下的相对路径,原始存储目录是用于存储本地版本软件的存储位置。利用硬链接实现调用,而不进行数据的真实复制,能够减少系统级别的I/O,还能减少系统内存的占用。
步骤S206,根据每个待下载文件的文件名、文件指纹及存储路径,创建下载链接。
在其中一个实施例中,下载链接用于从分布式存储系统下载对应的待下载文件。
在其中一个实施例中,在架构中设置有拓扑上更靠近车端的分布式缓存系统时,下载链接用于从与分布式存储系统连接的分布式缓存系统下载对应的待下载文件。分布式缓存系统能够提高对象读取速度,会管理用户要读取的文件,并将最近高频使用的文件加载到分布式缓存系统的内存中,提高读取近期使用率较高文件的速度,对于内存中没有缓存过文件,分布式缓存系统根据下载链接再从分布式存储系统加载。在其中一个实施例中,分布式缓存系统为web缓存系统。
步骤S207,基于每个待下载文件的下载链接下载对应的待下载文件至新的存储目录。
本申请提供的自动驾驶软件升级方法,应用于需要对系统分区进行软件升级的自动驾驶车辆,分别获取目标版本软件的元数据和本地版本软件的版本记录,元数据包括目标版本软件中每个文件的文件名、文件更新时间、文件指纹及其在分布式存储系统的存储路径,版本记录包括本地版本软件中的每个文件的文件名、文件更新时间及文件指纹;基于元数据和版本记录确定本地软件版本中没有的待下载文件,以及本地软件版本中已有的待拷贝文件,并在系统分区下创建新的存储目录,创建从带靠背文件的原始存储目录指向新的存储目录的硬链接,利用硬链接实现调用,减少系统级别的I/O,根据待下载文件的文件名、文件指纹及存储路径创建用于从存储目标版本软件的分布式存储系统或与分布式存储系统连接的分布式缓存系统下载对应的待下载文件的下载链接,基于下载链接将待下载文件下载至新的存储目录,完成升级,即仅需下载本地版本软件中缺少的文件,减少下载体量,在车端只需要进行元数据与版本记录的比对,无需读入目标版本软件的所有文件与本地版本软件进行计算和比对,节省自动驾驶软件分发至车辆所需的网络资源和计算资源,提高软件升级效率。
在其中一个实施例中,所述方法还包括:
若判断所述目标版本软件运行正常,则删除原始存储目录中存储的本地版本软件的各文件。
本实施例中,需要确定目标版本软件能够在车端正常运行时,才将原始存储目录中存储的本地版本软件的各文件删除,若期间目标版本软件无法正常运行,能够回退至本地版本软件,保证系统运行的稳定性。
在其中一个实施例中,在调用所述目标版本软件完成运行的次数达到预设的运行次数,且每次运行均没有发生运行故障时,判断所述目标版本软件运行正常,删除所述原始存储目录中存储的所述本地版本软件的各文件。
在其中一个实施例中,在从初次调用所述目标版本软件运行至当前时刻达到预设时间,且运行所述目标版本软件没有发生运行故障时,判断所述目标版本软件运行正常,删除所述原始存储目录中存储的所述本地版本软件的各文件。
如图3所示,在其中一个实施例中,所述根据目标版本软件的版本信息获取所述目标版本软件的元数据,包括:
步骤S301,根据目标版本软件的版本信息及预设的元数据文件名生成第一加载路径。
根据预设的规则,任意版本软件的元数据的文件名固定,但在分布式存储系统中存储在不同的路径,元数据在分布式存储系统的相对路径通常为版本号与元数据文件名组合生成,例如,目标版本软件的版本为v,预设的元数据文件名为version.txt,则相对路径为v/version.txt,基于相对路径以及云平台发布的服务器地址生成第一加载路径,例如https://cache.server.com/v/version.txt。
步骤S302,根据第一加载路径从分布式存储系统或与分布式存储系统连接的分布式缓存系统加载目标版本软件的元数据。
在其中一个实施例中,第一加载路径用于从分布式存储系统加载元数据。
在其中一个实施例中,在架构中设置有拓扑上更靠近车端的分布式缓存系统时,第一加载路径用于从与分布式存储系统连接的分布式缓存系统下载对应的元数据。分布式缓存系统能够提高对象读取速度,会管理用户要读取的文件,并将最近高频使用的文件加载到分布式缓存系统的内存中,提高读取近期使用率较高文件的速度,对于内存中没有缓存过文件,分布式缓存系统根据第一加载路径再从分布式存储系统加载。在其中一个实施例中,分布式缓存系统为web缓存系统。
如图4所示,在其中一个实施例中,所述根据本地版本软件的版本信息获取所述本地版本软件的版本记录,包括:
步骤S401,根据本地版本软件的版本信息及预设的版本记录文件名生成第二加载路径。
根据预设的规则,任意版本软件的版本记录的文件名固定,但在分布式存储系统中存储在不同的路径,版本记录在分布式存储系统的相对路径通常为版本号与版本记录文件名组合生成,例如,本地版本软件的版本为x,预设的版本记录文件名为record.txt,则相对路径为x/record.txt,基于相对路径以及云平台发布的服务器地址生成第二加载路径,例如https://cache.server.com/x/record.txt。
步骤S402,根据第二加载路径从分布式存储系统或与分布式存储系统连接的分布式缓存系统加载版本记录。
在其中一个实施例中,第二加载路径用于从分布式存储系统加载版本记录。
在其中一个实施例中,在架构中设置有拓扑上更靠近车端的分布式缓存系统时,第二加载路径用于从与分布式存储系统连接的分布式缓存系统下载对应的版本记录。分布式缓存系统能够提高对象读取速度,会管理用户要读取的文件,并将最近高频使用的文件加载到分布式缓存系统的内存中,提高读取近期使用率较高文件的速度,对于内存中没有缓存过的文件,分布式缓存系统根据第二加载路径再从分布式存储系统加载。在其中一个实施例中,分布式缓存系统为web缓存系统。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
下面对本申请实施例提供的自动驾驶软件升级装置进行描述,下文描述的自动驾驶软件升级装置与上文描述的自动驾驶软件升级方法可相互对应参照。
如图5所示,本申请实施例提供了一种自动驾驶软件升级装置500,应用于自动驾驶车辆,所述装置包括:
第一获取模块501,用于根据目标版本软件的版本信息获取所述目标版本软件的元数据;其中,所述元数据包括所述目标版本软件中每个文件的文件名、文件更新时间、文件指纹及其在分布式存储系统的存储路径;
第二获取模块502,用于根据本地版本软件的版本信息获取本地版本软件的版本记录;所述版本记录包括所述本地版本软件中的每个文件的文件名、文件更新时间及文件指纹;
确定模块503,用于基于所述元数据与所述版本记录,确定待下载文件和待拷贝文件;其中,所述待拷贝文件为所述目标版本软件中与所述本地版本软件中一致的文件;
存储目录创建模块504,用于在系统分区下创建新的存储目录;
硬链接创建模块505,用于根据每个待拷贝文件的文件名、文件指纹、相对路径,创建从所述待拷贝文件的原始存储目录指向所述新的存储目录的硬链接;
下载链接创建模块506,用于根据每个待下载文件的文件名、文件指纹及存储路径,创建下载链接;所述下载链接用于从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统下载对应的待下载文件;
文件下载模块507,用于基于每个待下载文件的下载链接下载对应的待下载文件至所述新的存储目录。
在其中一个实施例中,自动驾驶软件升级装置还包括:
版本文件删除模块,用于在判断所述目标版本软件运行正常时,删除所述原始存储目录中存储的所述本地版本软件的各文件。
在其中一个实施例中,版本文件删除模块被配置为用于执行:
在调用所述目标版本软件完成运行的次数达到预设的运行次数,且每次运行均没有发生运行故障时,则删除所述原始存储目录中存储的所述本地版本软件的各文件;
或,
在从初次调用所述目标版本软件运行至当前时刻达到预设时间,且运行所述目标版本软件没有发生运行故障时,则删除所述原始存储目录中存储的所述本地版本软件的各文件。
在其中一个实施例中,第一获取模块包括:
第一路径生成单元,用于根据所述目标版本软件的版本信息及预设的元数据文件名生成第一加载路径;
元数据获取单元,用于根据所述第一加载路径从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统加载所述目标版本软件的元数据。
在其中一个实施例中,第二获取模块包括:
第二路径生成单元,用于根据所述本地版本软件的版本信息及预设的版本记录文件名生成第二加载路径;
版本记录获取单元,用于根据所述第二加载路径从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统加载所述版本记录。
在其中一个实施例中,确定模块被配置为用于执行:
若根据所述元数据与所述版本记录,确定所述目标版本软件的任一文件与所述本地版本软件中其中一个文件的文件指纹、文件更新时间相同,则将该文件确定为待拷贝文件;
若根据所述元数据与所述版本记录,确定所述目标版本软件中的任一文件与所述本地版本软件中任一文件的文件指纹不同,或,所述目标版本软件中的任一文件与所述本地版本软件中其中一个文件的文件指纹相同但文件更新时间不同,则将所述目标版本软件中的该文件确定为待下载文件。
上述自动驾驶软件升级装置中各个模块的划分仅仅用于举例说明,在其他实施例中,可将自动驾驶软件升级装置按照需要划分为不同的模块,以完成上述自动驾驶软件升级装置的全部或部分功能。上述自动驾驶软件升级装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,本申请还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:
根据目标版本软件的版本信息获取所述目标版本软件的元数据;其中,所述元数据包括所述目标版本软件中每个文件的文件名、文件更新时间、文件指纹及其在分布式存储系统的存储路径;
根据本地版本软件的版本信息获取本地版本软件的版本记录;所述版本记录包括所述本地版本软件中的每个文件的文件名、文件更新时间及文件指纹;
基于所述元数据与所述版本记录,确定待下载文件和待拷贝文件;其中,所述待拷贝文件为所述目标版本软件中与所述本地版本软件中一致的文件;
在系统分区下创建新的存储目录;
根据每个待拷贝文件的文件名、文件指纹、相对路径,创建从所述待拷贝文件的原始存储目录指向所述新的存储目录的硬链接;
根据每个待下载文件的文件名、文件指纹及存储路径,创建下载链接;所述下载链接用于从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统下载对应的待下载文件;
基于每个待下载文件的下载链接下载对应的待下载文件至所述新的存储目录。
在其中一个实施例中,计算机可读指令被处理器执行时还实现以下步骤:
若判断所述目标版本软件运行正常,则删除所述原始存储目录中存储的所述本地版本软件的各文件。
在其中一个实施例中,计算机可读指令被处理器执行时还实现以下步骤:
在调用所述目标版本软件完成运行的次数达到预设的运行次数,且每次运行均没有发生运行故障时,则删除所述原始存储目录中存储的所述本地版本软件的各文件;
或,
在从初次调用所述目标版本软件运行至当前时刻达到预设时间,且运行所述目标版本软件没有发生运行故障时,则删除所述原始存储目录中存储的所述本地版本软件的各文件。
在其中一个实施例中,计算机可读指令被处理器执行时还实现以下步骤:
根据所述目标版本软件的版本信息及预设的元数据文件名生成第一加载路径;
根据所述第一加载路径从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统加载所述目标版本软件的元数据。
在其中一个实施例中,计算机可读指令被处理器执行时还实现以下步骤:
根据所述本地版本软件的版本信息及预设的版本记录文件名生成第二加载路径;
根据所述第二加载路径从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统加载所述版本记录。
在其中一个实施例中,计算机可读指令被处理器执行时还实现以下步骤:
若根据所述元数据与所述版本记录,确定所述目标版本软件的任一文件与所述本地版本软件中其中一个文件的文件指纹、文件更新时间相同,则将该文件确定为待拷贝文件;
若根据所述元数据与所述版本记录,确定所述目标版本软件中的任一文件与所述本地版本软件中任一文件的文件指纹不同,或,所述目标版本软件中的任一文件与所述本地版本软件中其中一个文件的文件指纹相同但文件更新时间不同,则将所述目标版本软件中的该文件确定为待下载文件。
在一个实施例中,本申请还提供了一种计算机设备,所述计算机设备中存储有计算机可读指令,所述一个或多个处理器执行所述计算机可读指令时,执行以下步骤:
根据目标版本软件的版本信息获取所述目标版本软件的元数据;其中,所述元数据包括所述目标版本软件中每个文件的文件名、文件更新时间、文件指纹及其在分布式存储系统的存储路径;
根据本地版本软件的版本信息获取本地版本软件的版本记录;所述版本记录包括所述本地版本软件中的每个文件的文件名、文件更新时间及文件指纹;
基于所述元数据与所述版本记录,确定待下载文件和待拷贝文件;其中,所述待拷贝文件为所述目标版本软件中与所述本地版本软件中一致的文件;
在系统分区下创建新的存储目录;
根据每个待拷贝文件的文件名、文件指纹、相对路径,创建从所述待拷贝文件的原始存储目录指向所述新的存储目录的硬链接;
根据每个待下载文件的文件名、文件指纹及存储路径,创建下载链接;所述下载链接用于从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统下载对应的待下载文件;
基于每个待下载文件的下载链接下载对应的待下载文件至所述新的存储目录。
在其中一个实施例中,处理器执行计算机可读指令时还执行以下步骤:
若判断所述目标版本软件运行正常,则删除所述原始存储目录中存储的所述本地版本软件的各文件。
在其中一个实施例中,处理器执行计算机可读指令时还执行以下步骤:
在调用所述目标版本软件完成运行的次数达到预设的运行次数,且每次运行均没有发生运行故障时,则删除所述原始存储目录中存储的所述本地版本软件的各文件;
或,
在从初次调用所述目标版本软件运行至当前时刻达到预设时间,且运行所述目标版本软件没有发生运行故障时,则删除所述原始存储目录中存储的所述本地版本软件的各文件。
在其中一个实施例中,处理器执行计算机可读指令时还执行以下步骤:
根据所述目标版本软件的版本信息及预设的元数据文件名生成第一加载路径;
根据所述第一加载路径从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统加载所述目标版本软件的元数据。
在其中一个实施例中,处理器执行计算机可读指令时还执行以下步骤:
根据所述本地版本软件的版本信息及预设的版本记录文件名生成第二加载路径;
根据所述第二加载路径从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统加载所述版本记录。
在其中一个实施例中,处理器执行计算机可读指令时还执行以下步骤:
若根据所述元数据与所述版本记录,确定所述目标版本软件的任一文件与所述本地版本软件中其中一个文件的文件指纹、文件更新时间相同,则将该文件确定为待拷贝文件;
若根据所述元数据与所述版本记录,确定所述目标版本软件中的任一文件与所述本地版本软件中任一文件的文件指纹不同,或,所述目标版本软件中的任一文件与所述本地版本软件中其中一个文件的文件指纹相同但文件更新时间不同,则将所述目标版本软件中的该文件确定为待下载文件。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种自动驾驶软件升级方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种自动驾驶软件升级方法,其特征在于,应用于自动驾驶车辆,所述方法包括:
根据目标版本软件的版本信息获取所述目标版本软件的元数据;其中,所述元数据包括所述目标版本软件中每个文件的文件名、文件更新时间、文件指纹及其在分布式存储系统的存储路径;
根据本地版本软件的版本信息获取本地版本软件的版本记录;所述版本记录包括所述本地版本软件中的每个文件的文件名、文件更新时间及文件指纹;
基于所述元数据与所述版本记录,确定待下载文件和待拷贝文件;其中,所述待拷贝文件为所述目标版本软件中与所述本地版本软件中一致的文件;
在系统分区下创建新的存储目录;
根据每个待拷贝文件的文件名、文件指纹、相对路径,创建从所述待拷贝文件的原始存储目录指向所述新的存储目录的硬链接;
根据每个待下载文件的文件名、文件指纹及存储路径,创建下载链接;所述下载链接用于从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统下载对应的待下载文件;
基于每个待下载文件的下载链接下载对应的待下载文件至所述新的存储目录。
2.根据权利要求1所述的自动驾驶软件升级方法,其特征在于,所述方法还包括:
若判断所述目标版本软件运行正常,则删除所述原始存储目录中存储的所述本地版本软件的各文件。
3.根据权利要求2所述的自动驾驶软件升级方法,其特征在于,所述若判断所述目标版本软件运行正常,则删除所述原始存储目录中存储的所述本地版本软件的各文件,包括:
在调用所述目标版本软件完成运行的次数达到预设的运行次数,且每次运行均没有发生运行故障时,则删除所述原始存储目录中存储的所述本地版本软件的各文件;
或,
在从初次调用所述目标版本软件运行至当前时刻达到预设时间,且运行所述目标版本软件没有发生运行故障时,则删除所述原始存储目录中存储的所述本地版本软件的各文件。
4.根据权利要求1所述的自动驾驶软件升级方法,其特征在于,所述根据目标版本软件的版本信息获取所述目标版本软件的元数据,包括:
根据所述目标版本软件的版本信息及预设的元数据文件名生成第一加载路径;
根据所述第一加载路径从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统加载所述目标版本软件的元数据。
5.根据权利要求1所述的自动驾驶软件升级方法,其特征在于,所述根据本地版本软件的版本信息获取所述本地版本软件的版本记录,包括:
根据所述本地版本软件的版本信息及预设的版本记录文件名生成第二加载路径;
根据所述第二加载路径从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统加载所述版本记录。
6.根据权利要求1至5任一项所述的自动驾驶软件升级方法,其特征在于,所述基于所述元数据与所述版本记录,确定待下载文件和待拷贝文件,包括:
若根据所述元数据与所述版本记录,确定所述目标版本软件的任一文件与所述本地版本软件中其中一个文件的文件指纹、文件更新时间相同,则将该文件确定为待拷贝文件;
若根据所述元数据与所述版本记录,确定所述目标版本软件中的任一文件与所述本地版本软件中任一文件的文件指纹不同,或,所述目标版本软件中的任一文件与所述本地版本软件中其中一个文件的文件指纹相同但文件更新时间不同,则将所述目标版本软件中的该文件确定为待下载文件。
7.根据权利要求1所述的自动驾驶软件升级方法,其特征在于,所述分布式存储系统为对象存储系统,所述分布式缓存系统为web缓存系统。
8.一种自动驾驶软件升级装置,其特征在于,应用于自动驾驶车辆,所述装置包括:
第一获取模块,用于根据目标版本软件的版本信息获取所述目标版本软件的元数据;其中,所述元数据包括所述目标版本软件中每个文件的文件名、文件更新时间、文件指纹及其在分布式存储系统的存储路径;
第二获取模块,用于根据本地版本软件的版本信息获取本地版本软件的版本记录;所述版本记录包括所述本地版本软件中的每个文件的文件名、文件更新时间及文件指纹;
确定模块,用于基于所述元数据与所述版本记录,确定待下载文件和待拷贝文件;其中,所述待拷贝文件为所述目标版本软件中与所述本地版本软件中一致的文件;
存储目录创建模块,用于在系统分区下创建新的存储目录;
硬链接创建模块,用于根据每个待拷贝文件的文件名、文件指纹、相对路径,创建从所述待拷贝文件的原始存储目录指向所述新的存储目录的硬链接;
下载链接创建模块,用于根据每个待下载文件的文件名、文件指纹及存储路径,创建下载链接;所述下载链接用于从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统下载对应的待下载文件;
文件下载模块,用于基于每个待下载文件的下载链接下载对应的待下载文件至所述新的存储目录。
9.一种存储介质,其特征在于:所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项所述自动驾驶软件升级方法的步骤。
10.一种计算机设备,其特征在于,包括:一个或多个处理器,以及存储器;
所述存储器中存储有计算机可读指令,所述一个或多个处理器执行时所述计算机可读指令时,执行如权利要求1至7中任一项所述自动驾驶软件升级方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210982955.6A CN115344284A (zh) | 2022-08-16 | 2022-08-16 | 自动驾驶软件升级方法、装置、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210982955.6A CN115344284A (zh) | 2022-08-16 | 2022-08-16 | 自动驾驶软件升级方法、装置、存储介质及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115344284A true CN115344284A (zh) | 2022-11-15 |
Family
ID=83951291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210982955.6A Pending CN115344284A (zh) | 2022-08-16 | 2022-08-16 | 自动驾驶软件升级方法、装置、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115344284A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117055936A (zh) * | 2023-02-27 | 2023-11-14 | 武汉路特斯科技有限公司 | 增量升级方法、系统、计算机设备及可读存储介质 |
CN117251898A (zh) * | 2023-11-17 | 2023-12-19 | 中建科工集团有限公司 | 基于云存储的Revit链接方法及系统 |
-
2022
- 2022-08-16 CN CN202210982955.6A patent/CN115344284A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117055936A (zh) * | 2023-02-27 | 2023-11-14 | 武汉路特斯科技有限公司 | 增量升级方法、系统、计算机设备及可读存储介质 |
CN117251898A (zh) * | 2023-11-17 | 2023-12-19 | 中建科工集团有限公司 | 基于云存储的Revit链接方法及系统 |
CN117251898B (zh) * | 2023-11-17 | 2024-01-23 | 中建科工集团有限公司 | 基于云存储的Revit链接方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115344284A (zh) | 自动驾驶软件升级方法、装置、存储介质及计算机设备 | |
CN109086388B (zh) | 区块链数据存储方法、装置、设备及介质 | |
CN111177143B (zh) | 键值数据存储方法、装置、存储介质与电子设备 | |
CN110781214A (zh) | 数据库读写方法、装置、计算机设备和存储介质 | |
US8983908B2 (en) | File link migration for decommisioning a storage server | |
CN113504918A (zh) | 设备树配置优化方法、装置、计算机设备和存储介质 | |
CN110597552B (zh) | 项目持续集成流水线的配置方法、装置、设备及存储介质 | |
CN110058923B (zh) | 一种基于动态预取策略的Docker容器COW机制优化方法及系统 | |
US20180260155A1 (en) | System and method for transporting a data container | |
CN113253932B (zh) | 一种分布式存储系统的读写控制方法和系统 | |
CN112882746B (zh) | 应用程序的更新方法、装置、存储介质及计算机设备 | |
US11429311B1 (en) | Method and system for managing requests in a distributed system | |
CN115576903B (zh) | 一种文件系统构建方法、计算设备及存储介质 | |
CN115134238B (zh) | 业务系统发布方法、装置、计算机设备和存储介质 | |
CN111090701A (zh) | 业务请求处理方法、装置、可读存储介质和计算机设备 | |
CN116048609A (zh) | 配置文件更新方法、装置、计算机设备和存储介质 | |
CN115061726A (zh) | 脚本文件批量处理方法、装置、设备、介质和程序产品 | |
CN114756293A (zh) | 业务处理方法、装置、计算机设备和存储介质 | |
CN111400243B (zh) | 基于流水线服务的研发管理系统以及文件存储方法、装置 | |
CN115344544A (zh) | 自动驾驶软件同步方法、装置、存储介质及计算机设备 | |
CN114416689A (zh) | 数据迁移方法、装置、计算机设备、存储介质 | |
CN114489481A (zh) | 硬盘存储数据并访问的方法及系统 | |
CN115344543A (zh) | 自动驾驶软件同步方法、装置、存储介质及计算机设备 | |
CN113411395B (zh) | 访问请求路由方法、装置、计算机设备和存储介质 | |
CN113641449B (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 |