CN111949604A - 一种文件存储方法、装置、电子设备及可读存储介质 - Google Patents
一种文件存储方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN111949604A CN111949604A CN202010859392.2A CN202010859392A CN111949604A CN 111949604 A CN111949604 A CN 111949604A CN 202010859392 A CN202010859392 A CN 202010859392A CN 111949604 A CN111949604 A CN 111949604A
- Authority
- CN
- China
- Prior art keywords
- file
- difference data
- data
- version file
- target
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000004590 computer program Methods 0.000 claims description 7
- 238000013500 data storage Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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
- G06F16/113—Details of archiving
-
- 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
- G06F16/162—Delete operations
-
- 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/18—File system types
- G06F16/1873—Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of 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)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种文件存储方法、装置、电子设备及可读存储介质,获取待录入文件以及与所述待录入文件对应的至少一个历史版本文件;针对于每个历史版本文件,确定所述待录入文件与所述历史版本文件之间的目标差异性数据;将确定出的至少一个所述目标差异性数据中占用存储空间最小的目标差异性数据,确定为所述待录入文件对应的待构造差异性数据;存储所述待构造差异性数据,并将所述待构造差异性数据对应的历史版本文件记录为所述待录入文件的基准版本文件。这样,当有需要录入的文件时,仅需要存储待录入与相应的历史版本文件之间的差异性数据,可以减少数据的存储量,有助于节约数据存储所占用空间。
Description
技术领域
本申请涉及文件处理技术领域,尤其是涉及一种文件存储方法、装置、电子设备及可读存储介质。
背景技术
在人们的日常生活和工作中,对图片、视频、机器学习模型这些类型的文件会有不同版本的存储需求。对于一个文件来说,可以存在多个不同的版本,例如,修改后的版本和修改前的版本。每个版本的文件在存储的过程中均需要占据一定的存储空间,对于一些多次修改的文件来说,反复的全量存储不同版本的文件,会使得内存的占用空间较大,因此,如何降低多个版本文件的存储空间成为了亟待解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种文件存储方法、装置、电子设备及可读存储介质,可以仅存储待录入文件与相应的历史版本文件之间的差异性数据,可以减少数据的存储量,有助于节约数据的占用空间。
本申请实施例提供了一种文件存储方法,所述文件存储方法包括:
获取待录入文件以及与所述待录入文件对应的至少一个历史版本文件;
针对于每个历史版本文件,确定所述待录入文件与所述历史版本文件之间的目标差异性数据;
将确定出的至少一个所述目标差异性数据中占用存储空间最小的目标差异性数据,确定为所述待录入文件对应的待构造差异性数据;
存储所述待构造差异性数据,并将所述待构造差异性数据对应的历史版本文件记录为所述待录入文件的基准版本文件。
进一步的,在所述存储所述待构造差异性数据,并将所述待构造差异性数据对应的历史版本文件记录为所述待录入文件的基准版本文件之后,所述文件存储方法还包括:
在接收到目标版本文件的文件读取指令时,获取所述目标版本文件对应的基准版本文件以及待构造差异性数据;
基于所述目标版本文件对应的基准版本文件以及所述待构造差异性数据,得到所述目标版本文件。
进一步的,所述基于所述基准版本文件以及所述待构造差异性数据,得到所述目标版本文件,包括:
将所述待构造差异性数据中所述目标版本文件与所述基准版本文件之间的差异数据,从所述基准版本文件中删除;
将所述待构造差异性数据中所述目标版本文件的新增数据,添加至删除后的基准版本文件中,得到所述目标版本文件。
进一步的,所述针对于每个历史版本文件,确定所述待录入文件与所述历史版本文件之间的目标差异性数据,包括:
确定所述待录入文件与所述历史版本文件之间至少一个子公共序列;
针对于每个子公共序列,确定所述待录入文件在该子公共序列下对应的候选差异性数据;
将确定出的至少一个所述候选差异性数据中占用存储空间最小的候选差异性数据,确定为所述待录入文件与所述历史版本文件之间的目标差异性数据。
进一步的,所述针对于每个子公共序列,确定所述待录入文件在该子公共序列下对应的候选差异性数据,包括:
基于所述子公共序列,确定出所述待录入文件与所述历史版本文件之间的至少一个区别数据区间;
确定出每个区别数据区间的位置数据、长度数据、所属版本数据以及数值数据;
基于每个区别数据区间的所述位置数据、所述长度数据、所述版本数据以及所述数值数据,生成所述待录入文件在该子公共序列下对应的候选差异性数据。
本申请实施例还提供了一种文件存储装置,所述文件存储装置包括:
获取模块,用于获取待录入文件以及与所述待录入文件对应的至少一个历史版本文件;
第一确定模块,用于针对于每个历史版本文件,确定所述待录入文件与所述历史版本文件之间的目标差异性数据;
第二确定模块,用于将确定出的至少一个所述目标差异性数据中占用存储空间最小的目标差异性数据,确定为所述待录入文件对应的待构造差异性数据;
存储模块,用于存储所述待构造差异性数据,并将所述待构造差异性数据对应的历史版本文件记录为所述待录入文件的基准版本文件。
进一步的,所述文件存储装置还包括读取模块,所述读取模块用于:
在接收到目标版本文件的文件读取指令时,获取所述目标版本文件对应的基准版本文件以及待构造差异性数据;
基于所述目标版本文件对应的基准版本文件以及所述待构造差异性数据,得到所述目标版本文件。
进一步的,所述读取模块在用于基于所述基准版本文件以及所述待构造差异性数据,得到所述目标版本文件时,所述读取模块还用于:
将所述待构造差异性数据中所述目标版本文件与所述基准版本文件之间的差异数据,从所述基准版本文件中删除;
将所述待构造差异性数据中所述目标版本文件的新增数据,添加至删除后的基准版本文件中,得到所述目标版本文件。
进一步的,所述第一确定模块在用于针对于每个历史版本文件,确定所述待录入文件与所述历史版本文件之间的目标差异性数据时,所述第一确定模块用于:
确定所述待录入文件与所述历史版本文件之间至少一个子公共序列;
针对于每个子公共序列,确定所述待录入文件在该子公共序列下对应的候选差异性数据;
将确定出的至少一个所述候选差异性数据中占用存储空间最小的候选差异性数据,确定为所述待录入文件与所述历史版本文件之间的目标差异性数据。
进一步的,所述第一确定模块在用于针对于每个子公共序列,确定所述待录入文件在该子公共序列下对应的候选差异性数据时,所述第一确定模块用于:
基于所述子公共序列,确定出所述待录入文件与所述历史版本文件之间的至少一个区别数据区间;
确定出每个区别数据区间的位置数据、长度数据、所属版本数据以及数值数据;
基于每个区别数据区间的所述位置数据、所述长度数据、所述版本数据以及所述数值数据,生成所述待录入文件在该子公共序列下对应的候选差异性数据。
本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的文件存储方法的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述的文件存储方法的步骤。
本申请实施例提供的文件存储方法、装置、电子设备及可读存储介质,获取待录入文件以及与所述待录入文件对应的至少一个历史版本文件;针对于每个历史版本文件,确定所述待录入文件与所述历史版本文件之间的目标差异性数据;将确定出的至少一个所述目标差异性数据中占用存储空间最小的目标差异性数据,确定为所述待录入文件对应的待构造差异性数据;存储所述待构造差异性数据,并将所述待构造差异性数据对应的历史版本文件记录为所述待录入文件的基准版本文件。
这样,本申请通过获取待录入文件以及与该待录入文件对应的至少一个历史版本文件;确定待录入文件与每个历史版本文件之间的目标差异性数据,将确定出的至少一个目标差异性数据中,占用存储空间最小的目标差异性数据,确定为待录入文件对应的待构造差异性数据;存储确定出的待构造差异性数据,同时,将待构造差异性数据对应的历史版本文件记录为待录入文件对应的基准版本文件,从而当有需要录入的文件时,仅需要存储待录入与相应的历史版本文件之间的差异性数据,可以减少数据的存储量,有助于节约数据存储所占用空间。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例所提供的一种文件存储方法的流程图;
图2为本申请另一实施例所提供的一种文件存储方法的流程图;
图3为本申请实施例所提供的一种文件存储装置的结构示意图之一;
图4为本申请实施例所提供的一种文件存储装置的结构示意图之二;
图5为本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。
首先,对本申请可适用的应用场景进行介绍。本申请可应用于文件处理技术领域。当有需要存储的待录入文件时,获取待录入文件以及与该待录入文件对应的至少一个历史版本文件;确定待录入文件与每个历史版本文件之间的目标差异性数据,将确定出的至少一个目标差异性数据中,占用存储空间最小的目标差异性数据,确定为待录入文件对应的待构造差异性数据;存储确定出的待构造差异性数据,同时,将待构造差异性数据对应的历史版本文件记录为待录入文件对应的基准版本文件。这样,当有需要录入的文件时,仅需要存储待录入与相应的历史版本文件之间的差异性数据,可以减少数据的存储量,有助于节约数据存储所占用空间。
经研究发现,对于一个文件来说,可以存在多个不同的版本,例如,修改后的版本和修改前的版本。每个版本的文件在存储的过程中均需要占据一定的存储空间,对于一些多次修改的文件来说,反复的全量存储不同版本的文件,会使得内存的占用空间较大,因此,如何降低多个版本文件的存储空间成为了亟待解决的问题。
基于此,本申请实施例提供了一种文件的存储方法,可以减少数据的存储量,有助于节约数据存储所占用空间。
请参阅图1,图1为本申请实施例所提供的一种文件存储方法的流程图。如图1中所示,本申请实施例提供的文件存储方法,包括:
S101、获取待录入文件以及与所述待录入文件对应的至少一个历史版本文件。
该步骤中,当有需要存储的待录入文件时,获取待录入文件以及与该录入文件对应的至少一个历史版本文件,其中,与待录入文件对应的历史版本文件是指,与待录入文件存在一部分相同数据以及一部分差异数据的文件。
示例性的,待录入文件可以为区别于历史版本文件的更新版本文件。
S102、针对于每个历史版本文件,确定所述待录入文件与所述历史版本文件之间的目标差异性数据。
该步骤中,针对于获取到的至少一个历史版本文件中的每个历史版本文件,确定出待录入文件与每个历史版本文件之间的目标差异性数据。
其中,目标差异性数据是指待录入文件与历史版本文件之间的差异部分,即相较于历史版本文件来说,待录入文件中存在而历史版本文件中不存在的数据,以及待录入文件中不存在而历史版本文件中存在的数据。
这样,便能够确定出待录入文件与历史版本文件之间的全部差异性数据。
S103、将确定出的至少一个所述目标差异性数据中占用存储空间最小的目标差异性数据,确定为所述待录入文件对应的待构造差异性数据。
该步骤中,比较确定出的至少一个目标差异性数据存储时占用存储空间的大小,将至少一个目标差异性数据中占用存储空间最小的目标差异性数据,即至少一个目标差异性数据中的数据量最小的目标差异性数据,确定为待录入文件对应的待构造差异性数据。
S104、存储所述待构造差异性数据,并将所述待构造差异性数据对应的历史版本文件记录为所述待录入文件的基准版本文件。
该步骤中,在确定出待录入文件相应的待构造差异性数据后,存储待构造差异性数据,并将待构造差异性数据对应的历史版本文件记录为待录入文件的基准版本文件。
本申请实施例提供的文件存储方法,获取待录入文件以及与所述待录入文件对应的至少一个历史版本文件;针对于每个历史版本文件,确定所述待录入文件与所述历史版本文件之间的目标差异性数据;将确定出的至少一个所述目标差异性数据中占用存储空间最小的目标差异性数据,确定为所述待录入文件对应的待构造差异性数据;存储所述待构造差异性数据,并将所述待构造差异性数据对应的历史版本文件记录为所述待录入文件的基准版本文件。
这样,本申请通过获取待录入文件以及与该待录入文件对应的至少一个历史版本文件;确定待录入文件与每个历史版本文件之间的目标差异性数据,将确定出的至少一个目标差异性数据中,占用存储空间最小的目标差异性数据,确定为待录入文件对应的待构造差异性数据;存储确定出的待构造差异性数据,同时,将待构造差异性数据对应的历史版本文件记录为待录入文件对应的基准版本文件,从而当有需要录入的文件时,仅需要存储待录入与相应的历史版本文件之间的差异性数据,可以减少数据的存储量,有助于节约数据存储所占用空间。
请参阅图2,图2为本申请另一实施例提供的一种文件存储方法的流程图。如图2中所示,本申请实施例提供的文件存储方法,包括:
S201、获取待录入文件以及与所述待录入文件对应的至少一个历史版本文件。
S202、针对于每个历史版本文件,确定所述待录入文件与所述历史版本文件之间的目标差异性数据。
S203、将确定出的至少一个所述目标差异性数据中占用存储空间最小的目标差异性数据,确定为所述待录入文件对应的待构造差异性数据。
S204、存储所述待构造差异性数据,并将所述待构造差异性数据对应的历史版本文件记录为所述待录入文件的基准版本文件。
S205、在接收到目标版本文件的文件读取指令时,获取所述目标版本文件对应的基准版本文件以及待构造差异性数据。
该步骤中,当接收到目标版本文件的文件读取指令时,获取需要读取的目标版本文件对应的基准版本文件,以及目标版本文件与基准版本文件之间的待构造差异性数据。
S206、基于所述目标版本文件对应的基准版本文件以及所述待构造差异性数据,得到所述目标版本文件。
该步骤中,在获取到目标版本文件对应的基准版本文件以及待构造差异性数据之后,基于目标版本文件对应的基准版本文件以及待构造差异性数据,构造目标版本文件。
其中,S201至S204的描述可以参照S101至S104的描述,并且能达到相同的技术效果,对此不做赘述。
进一步的,步骤S206包括:将所述待构造差异性数据中所述目标版本文件与所述基准版本文件之间的差异数据,从所述基准版本文件中删除;将所述待构造差异性数据中所述目标版本文件的新增数据,添加至删除后的基准版本文件中,得到所述目标版本文件。
该步骤中,从待构造差异性数据中确定出目标版本文件与基准版本文件之间的差异数据,即在目标版本文件不存在,而在历史版本文件中存在的数据,将差异数据从基准版本文件中删除;从待构造差异性数据中确定出目标版本文件的新增数据,将新增数据添加至删除后的基准版本文件中,得到需要构建的目标版本文件。
进一步的,步骤S202包括:确定所述待录入文件与所述历史版本文件之间至少一个子公共序列;针对于每个子公共序列,确定所述待录入文件在该子公共序列下对应的候选差异性数据;将确定出的至少一个所述候选差异性数据中占用存储空间最小的候选差异性数据,确定为所述待录入文件与所述历史版本文件之间的目标差异性数据。
该步骤中,针对于每个历史版本文件,将待录入文件与历史版本文件进行比较,确定出待录入文件与历史版本文件之间的至少一个子公共序列;针对于每一个子公共序列,确定在该子公共序列下待录入文件与历史版本文件之间的至少一个候选差异性数据;确定至少一个候选差异性数据中每个候选差异性数据的占用存储空间,将至少一个候选差异性数据中占用存储空间最小的候选差异性数据,确定为待录入文件与历史版本文件之间的目标差异性数据。
这里,子公共序列即为待录入文件与历史版本文件之间的公共序列,公共序列越长说明待录入文件与历史版本文件越相似,其中,在至少一个子公共序列中最长的序列被称为最长公共子序列(Longest Common Subsequence,LCS)。
示例性的,假设待录入文件的内容是a1b4c66666666d7efgh,历史版本文件内容是0a8b9cdefgh,那么二者的LCS为abcdefgh。
进一步的,所述针对于每个子公共序列,确定所述待录入文件在该子公共序列下对应的候选差异性数据,包括:基于所述子公共序列,确定出所述待录入文件与所述历史版本文件之间的至少一个区别数据区间;确定出每个区别数据区间的位置数据、长度数据、所属版本数据以及数值数据;基于每个区别数据区间的所述位置数据、所述长度数据、所述版本数据以及所述数值数据,生成所述待录入文件在该子公共序列下对应的候选差异性数据。
该步骤中,根据确定出的子公共序列,确定待录入文件与历史版本文件之间的至少一个区别数据区间,同时,确定出每一个区别数据区间中数据的位置数据、长度数据、所属版本数据以及数值数据;基于确定出的每一个区别数据区间中数据的位置数据、长度数据、所属版本数据以及数值数据,生成待录入文件在该子公共序列下对应的候选差异性数据。
具体的,对于两个版本的文件来说,除子公共序列部分外的文件为两个版本文件不相同的部分,即待录入文件在该子公共序列下对应的候选差异性数据,候选差异性数据可以由多个区间组成,对应于上述实施例,待录入文件相对于历史版本文件来说存在4个区间的不相同的部分,分别是:1、4、66666666、7;同理,历史版本文件相对于待录入文件来说存在3个区间的不相同的部分,分别是:0、8、9。
其中,将1在待录入文件中出现的位置确定为数据“1”的位置数据,即位置数据为“2”;将数据“1”确定为数值数据,将数据“1”的长度确定为长度数据,将待录入文件确定为数据“1”的所属版本数据。
同样的,对于数据“66666666”来说,将数据“66666666”中第一个“6”出现的位置确定为数据“66666666”的位置数据,即位置数据为“6”,将数据“66666666”的长度确定为长度数据,即长度数据为“8”,将待录入文件确定为数据“66666666”的所属版本数据。
若区间中有连续多个相同的值,可基于RLE行程长度编码算法的思想,记录重复值与重复长度,这样可进一步减少空间占用,如上述例子中的66666666,可记为6:8,表示6出现了8次。那么对于数据“66666666”来说,它的数值数据可以为“6:8”。
对于历史版本文件中的数据采用同样的方式,由于历史版本文件中不同于待录入文件的数据是不需要被记录的,因此,在确定候选差异性数据时无需记录历史版本文件中数据的数值数据。
由此,在分别确定出两个版本文件之间的不同部分的数据后,基于确定出的每个区别数据区间的位置数据、长度数据、版本数据以及数值数据,构造得到在该子公共序列下待录入文件对应的候选差异性数据,即候选差异性数据包括:待录入文件中4个区间的不相同的部分以及历史版本文件中3个区间的不相同的部分。
本申请实施例提供的文件存储方法,获取待录入文件以及与所述待录入文件对应的至少一个历史版本文件;针对于每个历史版本文件,确定所述待录入文件与所述历史版本文件之间的目标差异性数据;将确定出的至少一个所述目标差异性数据中占用存储空间最小的目标差异性数据,确定为所述待录入文件对应的待构造差异性数据;存储所述待构造差异性数据,并将所述待构造差异性数据对应的历史版本文件记录为所述待录入文件的基准版本文件;在接收到目标版本文件的文件读取指令时,获取所述目标版本文件对应的基准版本文件以及待构造差异性数据;基于所述目标版本文件对应的基准版本文件以及所述待构造差异性数据,得到所述目标版本文件。
这样,本申请通过获取待录入文件以及与该待录入文件对应的至少一个历史版本文件;确定待录入文件与每个历史版本文件之间的目标差异性数据,将确定出的至少一个目标差异性数据中,占用存储空间最小的目标差异性数据,确定为待录入文件对应的待构造差异性数据;存储确定出的待构造差异性数据,同时,将待构造差异性数据对应的历史版本文件记录为待录入文件对应的基准版本文件,当有需要读取的目标版本文件时,通过获取目标版本文件对应的基准版本文件以及待构造差异性数据,便可以得到完整的目标版本文件,从而当有需要录入的文件时,仅需要存储待录入文件与相应的历史版本文件之间的差异性数据,可以减少数据的存储量,有助于节约数据存储所占用空间,在读取时还可以根据存储的差异性数据得到完整版本的目标版本文件,不会存在读取不完全,影响文件的使用的情况。
请参阅图3、图4,图3为本申请实施例所提供的一种文件存储装置的结构示意图之一,图4为本申请实施例所提供的一种文件存储装置的结构示意图之二。如图3中所示,所述文件存储装置300包括:
获取模块310,用于获取待录入文件以及与所述待录入文件对应的至少一个历史版本文件;
第一确定模块320,用于针对于每个历史版本文件,确定所述待录入文件与所述历史版本文件之间的目标差异性数据;
第二确定模块330,用于将确定出的至少一个所述目标差异性数据中占用存储空间最小的目标差异性数据,确定为所述待录入文件对应的待构造差异性数据;
存储模块340,用于存储所述待构造差异性数据,并将所述待构造差异性数据对应的历史版本文件记录为所述待录入文件的基准版本文件。
进一步的,如图4所示,所述文件存储装置300还包括读取模块350,所述读取模块350用于:
在接收到目标版本文件的文件读取指令时,获取所述目标版本文件对应的基准版本文件以及待构造差异性数据;
基于所述目标版本文件对应的基准版本文件以及所述待构造差异性数据,得到所述目标版本文件。
进一步的,所述读取模块350在用于基于所述基准版本文件以及所述待构造差异性数据,得到所述目标版本文件时,所述读取模块350还用于:
将所述待构造差异性数据中所述目标版本文件与所述基准版本文件之间的差异数据,从所述基准版本文件中删除;
将所述待构造差异性数据中所述目标版本文件的新增数据,添加至删除后的基准版本文件中,得到所述目标版本文件。
进一步的,所述第一确定模块320在用于针对于每个历史版本文件,确定所述待录入文件与所述历史版本文件之间的目标差异性数据时,所述第一确定模块320用于:
确定所述待录入文件与所述历史版本文件之间至少一个子公共序列;
针对于每个子公共序列,确定所述待录入文件在该子公共序列下对应的候选差异性数据;
将确定出的至少一个所述候选差异性数据中占用存储空间最小的候选差异性数据,确定为所述待录入文件与所述历史版本文件之间的目标差异性数据。
进一步的,所述第一确定模块320在用于针对于每个子公共序列,确定所述待录入文件在该子公共序列下对应的候选差异性数据时,所述第一确定模块320用于:
基于所述子公共序列,确定出所述待录入文件与所述历史版本文件之间的至少一个区别数据区间;
确定出每个区别数据区间的位置数据、长度数据、所属版本数据以及数值数据;
基于每个区别数据区间的所述位置数据、所述长度数据、所述版本数据以及所述数值数据,生成所述待录入文件在该子公共序列下对应的候选差异性数据。
本申请实施例提供的文件存储装置,获取待录入文件以及与所述待录入文件对应的至少一个历史版本文件;针对于每个历史版本文件,确定所述待录入文件与所述历史版本文件之间的目标差异性数据;将确定出的至少一个所述目标差异性数据中占用存储空间最小的目标差异性数据,确定为所述待录入文件对应的待构造差异性数据;存储所述待构造差异性数据,并将所述待构造差异性数据对应的历史版本文件记录为所述待录入文件的基准版本文件。
这样,本申请通过获取待录入文件以及与该待录入文件对应的至少一个历史版本文件;确定待录入文件与每个历史版本文件之间的目标差异性数据,将确定出的至少一个目标差异性数据中,占用存储空间最小的目标差异性数据,确定为待录入文件对应的待构造差异性数据;存储确定出的待构造差异性数据,同时,将待构造差异性数据对应的历史版本文件记录为待录入文件对应的基准版本文件,从而当有需要录入的文件时,仅需要存储待录入与相应的历史版本文件之间的差异性数据,可以减少数据的存储量,有助于节约数据存储所占用空间。
请参阅图5,图5为本申请实施例所提供的一种电子设备的结构示意图。如图5中所示,所述电子设备500包括处理器510、存储器520和总线530。
所述存储器520存储有所述处理器510可执行的机器可读指令,当电子设备500运行时,所述处理器510与所述存储器520之间通过总线530通信,所述机器可读指令被所述处理器510执行时,可以执行如上述图1以及图2所示方法实施例中的文件存储方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时可以执行如上述图1以及图2所示方法实施例中的文件存储方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种文件存储方法,其特征在于,所述文件存储方法包括:
获取待录入文件以及与所述待录入文件对应的至少一个历史版本文件;
针对于每个历史版本文件,确定所述待录入文件与所述历史版本文件之间的目标差异性数据;
将确定出的至少一个所述目标差异性数据中占用存储空间最小的目标差异性数据,确定为所述待录入文件对应的待构造差异性数据;
存储所述待构造差异性数据,并将所述待构造差异性数据对应的历史版本文件记录为所述待录入文件的基准版本文件。
2.根据权利要求1所述的文件存储方法,其特征在于,在所述存储所述待构造差异性数据,并将所述待构造差异性数据对应的历史版本文件记录为所述待录入文件的基准版本文件之后,所述文件存储方法还包括:
在接收到目标版本文件的文件读取指令时,获取所述目标版本文件对应的基准版本文件以及待构造差异性数据;
基于所述目标版本文件对应的基准版本文件以及所述待构造差异性数据,得到所述目标版本文件。
3.根据权利要求2所述的文件存储方法,其特征在于,所述基于所述基准版本文件以及所述待构造差异性数据,得到所述目标版本文件,包括:
将所述待构造差异性数据中所述目标版本文件与所述基准版本文件之间的差异数据,从所述基准版本文件中删除;
将所述待构造差异性数据中所述目标版本文件的新增数据,添加至删除后的基准版本文件中,得到所述目标版本文件。
4.根据权利要求1所述的文件存储方法,其特征在于,所述针对于每个历史版本文件,确定所述待录入文件与所述历史版本文件之间的目标差异性数据,包括:
确定所述待录入文件与所述历史版本文件之间至少一个子公共序列;
针对于每个子公共序列,确定所述待录入文件在该子公共序列下对应的候选差异性数据;
将确定出的至少一个所述候选差异性数据中占用存储空间最小的候选差异性数据,确定为所述待录入文件与所述历史版本文件之间的目标差异性数据。
5.根据权利要求4所述的文件存储方法,其特征在于,所述针对于每个子公共序列,确定所述待录入文件在该子公共序列下对应的候选差异性数据,包括:
基于所述子公共序列,确定出所述待录入文件与所述历史版本文件之间的至少一个区别数据区间;
确定出每个区别数据区间的位置数据、长度数据、所属版本数据以及数值数据;
基于每个区别数据区间的所述位置数据、所述长度数据、所述版本数据以及所述数值数据,生成所述待录入文件在该子公共序列下对应的候选差异性数据。
6.一种文件存储装置,其特征在于,所述文件存储装置包括:
获取模块,用于获取待录入文件以及与所述待录入文件对应的至少一个历史版本文件;
第一确定模块,用于针对于每个历史版本文件,确定所述待录入文件与所述历史版本文件之间的目标差异性数据;
第二确定模块,用于将确定出的至少一个所述目标差异性数据中占用存储空间最小的目标差异性数据,确定为所述待录入文件对应的待构造差异性数据;
存储模块,用于存储所述待构造差异性数据,并将所述待构造差异性数据对应的历史版本文件记录为所述待录入文件的基准版本文件。
7.根据权利要求6所述的文件存储装置,其特征在于,所述文件存储装置还包括读取模块,所述读取模块用于:
在接收到目标版本文件的文件读取指令时,获取所述目标版本文件对应的基准版本文件以及待构造差异性数据;
基于所述目标版本文件对应的基准版本文件以及所述待构造差异性数据,得到所述目标版本文件。
8.根据权利要求6所述的文件存储装置,其特征在于,所述第一确定模块在用于针对于每个历史版本文件,确定所述待录入文件与所述历史版本文件之间的目标差异性数据时,所述第一确定模块用于:
确定所述待录入文件与所述历史版本文件之间至少一个子公共序列;
针对于每个子公共序列,确定所述待录入文件在该子公共序列下对应的候选差异性数据;
将确定出的至少一个所述候选差异性数据中占用存储空间最小的候选差异性数据,确定为所述待录入文件与所述历史版本文件之间的目标差异性数据。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过所述总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至5中任一项所述的文件存储方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至5中任一项所述的文件存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010859392.2A CN111949604A (zh) | 2020-08-24 | 2020-08-24 | 一种文件存储方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010859392.2A CN111949604A (zh) | 2020-08-24 | 2020-08-24 | 一种文件存储方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111949604A true CN111949604A (zh) | 2020-11-17 |
Family
ID=73359522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010859392.2A Pending CN111949604A (zh) | 2020-08-24 | 2020-08-24 | 一种文件存储方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111949604A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448617A (zh) * | 2021-08-31 | 2021-09-28 | 太平金融科技服务(上海)有限公司深圳分公司 | 数据对象管理方法、装置、计算机设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101546318A (zh) * | 2008-03-27 | 2009-09-30 | 林兆祥 | 一种基于版本的数据存储方法 |
CN102682127A (zh) * | 2012-05-16 | 2012-09-19 | 北京像素软件科技股份有限公司 | 一种数据版本的控制方法 |
CN106325769A (zh) * | 2016-08-19 | 2017-01-11 | 华为技术有限公司 | 一种数据存储的方法及装置 |
CN109740125A (zh) * | 2018-12-28 | 2019-05-10 | 东软集团股份有限公司 | 用于文件比较的更新查找方法、装置、存储介质和设备 |
CN110472205A (zh) * | 2019-08-22 | 2019-11-19 | 北京明略软件***有限公司 | 文件差异化的比对方法及装置、存储介质和电子装置 |
CN111221549A (zh) * | 2018-11-23 | 2020-06-02 | 现代自动车株式会社 | 利用ota更新车辆软件的方法和装置 |
-
2020
- 2020-08-24 CN CN202010859392.2A patent/CN111949604A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101546318A (zh) * | 2008-03-27 | 2009-09-30 | 林兆祥 | 一种基于版本的数据存储方法 |
CN102682127A (zh) * | 2012-05-16 | 2012-09-19 | 北京像素软件科技股份有限公司 | 一种数据版本的控制方法 |
CN106325769A (zh) * | 2016-08-19 | 2017-01-11 | 华为技术有限公司 | 一种数据存储的方法及装置 |
CN111221549A (zh) * | 2018-11-23 | 2020-06-02 | 现代自动车株式会社 | 利用ota更新车辆软件的方法和装置 |
CN109740125A (zh) * | 2018-12-28 | 2019-05-10 | 东软集团股份有限公司 | 用于文件比较的更新查找方法、装置、存储介质和设备 |
CN110472205A (zh) * | 2019-08-22 | 2019-11-19 | 北京明略软件***有限公司 | 文件差异化的比对方法及装置、存储介质和电子装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448617A (zh) * | 2021-08-31 | 2021-09-28 | 太平金融科技服务(上海)有限公司深圳分公司 | 数据对象管理方法、装置、计算机设备和存储介质 |
CN113448617B (zh) * | 2021-08-31 | 2022-01-25 | 太平金融科技服务(上海)有限公司深圳分公司 | 数据对象管理方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5211751B2 (ja) | 計算機、ダンププログラムおよびダンプ方法 | |
CN108388598B (zh) | 电子装置、数据存储方法及存储介质 | |
CN111125033A (zh) | 一种基于全闪存阵列的空间回收方法及*** | |
CN115203148A (zh) | 修改文件的方法和装置 | |
CN105117489B (zh) | 一种数据库管理方法、装置及电子设备 | |
CN107608630B (zh) | 数据读写方法及装置 | |
CN111125008B (zh) | 一种异常inode的动态修复方法、***及相关组件 | |
CN109697019B (zh) | 基于fat文件***的数据写入的方法和*** | |
CN110377276B (zh) | 源代码文件管理方法及设备 | |
CN111949604A (zh) | 一种文件存储方法、装置、电子设备及可读存储介质 | |
CN115114232A (zh) | 一种历史版本对象列举方法、装置及其介质 | |
US10698608B2 (en) | Method, apparatus and computer storage medium for data input and output | |
CN113590144A (zh) | 一种依赖处理方法及装置 | |
CN110209351B (zh) | 分布式存储数据处理方法和装置 | |
CN105830067B (zh) | 一种文件信息处理方法、装置及文件处理设备、*** | |
CN114840358A (zh) | 一种基于虚拟磁盘的数据修复方法、装置及其介质 | |
US11314430B2 (en) | Reading data in sub-blocks using data state information | |
CN110765377B (zh) | 一种数据加载方法和装置 | |
CN112905546A (zh) | 已删除文件的恢复方法、装置、设备及存储介质 | |
CN112417819A (zh) | 一种Word文档信息提取方法、装置、电子设备及介质 | |
CN110990640A (zh) | 一种数据判定方法、装置、设备及计算机可读存储介质 | |
CN112306824B (zh) | 磁盘性能评估方法、***、设备及计算机可读存储介质 | |
CN112306823B (zh) | 磁盘管理方法、***、设备及计算机可读存储介质 | |
CN112015586B (zh) | 一种数据重构计算的方法以及相关装置 | |
CN116679991B (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 |