CN110879800A - 数据写入、压缩和读取方法、数据处理方法及装置 - Google Patents
数据写入、压缩和读取方法、数据处理方法及装置 Download PDFInfo
- Publication number
- CN110879800A CN110879800A CN201811032397.7A CN201811032397A CN110879800A CN 110879800 A CN110879800 A CN 110879800A CN 201811032397 A CN201811032397 A CN 201811032397A CN 110879800 A CN110879800 A CN 110879800A
- Authority
- CN
- China
- Prior art keywords
- file
- written
- data
- compressed
- writing
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据写入方法,包括:当接收到写数据请求时,确定第一待写入文件,写数据请求中包含待写入数据;向第一待写入文件中写入待写入数据,并监听第一待写入文件的长度;若监听结果指示第一待写入文件的长度达到写入长度阈值,则将第一待写入文件置为只读状态,并创建第二待写入文件;将待写入数据中尚未写入第一待写入文件的数据,写入第二待写入文件。本申请还公开了相对应实施的数据压缩方法、数据读取方法和数据处理方法,在降低存储成本的同时,仍然能够保障文件的读写效率,满足了用户的需求。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据写入、压缩和读取方法,数据处理方法及对应的装置。
背景技术
随着云计算技术的发展,云存储系统也应运而生。云存储系统是指通过集群应用、网络技术或分布式文件系统等功能,将多种存储设备集合起来协同工作,共同向用户提供数据存储和业务访问功能的系统。
传统的分布式块存储采用三副本存储方式,即同一份数据将分别存储在三个不同的物理设备上,以避免因物理设备的损坏而导致数据的丢失。因此,用户的数据将在数据存储系统中占用三倍于原始数据量的存储空间,存储成本较高,存储设备的存储空间利用率较低。虽然数据存储系统可以采用数据压缩的方式减少用户数据所占用的存储空间,但是在读取和更新压缩后的文件时仍然可能存在读写延时、读写效率低等诸多问题。
因此,亟需一种在降低存储成本的同时,仍然能够保障文件读写效率的数据处理方法。
发明内容
本申请实施例提供一种数据写入方法、数据压缩方法和数据读取方法,旨在提供一种在降低存储成本的同时,仍然能够保障文件读写效率的数据处理方法。
本申请实施例采用下述技术方案:
第一方面,本申请实施例提供一种数据写入方法,所述方法包括:
当接收到写数据请求时,确定第一待写入文件,所述写数据请求中包含待写入数据;
向所述第一待写入文件中写入所述待写入数据,并监听所述第一待写入文件的长度;
若监听结果指示所述第一待写入文件的长度达到写入长度阈值,则将所述第一待写入文件置为只读状态,并创建第二待写入文件;
将所述待写入数据中尚未写入所述第一待写入文件的数据,写入所述第二待写入文件。
优选的,本申请实施例第一方面提供的方法中,在将所述第一待写入文件置为只读状态之后,所述方法还包括:
将所述第一待写入文件的标识信息添加到压缩文件列表,以待压缩处理。
优选的,本申请实施例第一方面提供的方法中,将所述待写入数据中尚未写入所述第一待写入文件的数据,写入所述第二待写入文件,包括:
向所述第二待写入文件中写入所述待写入数据中、尚未写入所述第一待写入文件的数据,并监听所述第二待写入文件的长度;
若监听结果指示所述第二待写入文件的长度达到所述写入长度阈值,则将所述第二待写入文件置为只读状态,并创建第三待写入文件,向所述第三待写入文件中写入所述待写入数据中、尚未写入所述第一待写入文件和所述第二待写入文件的数据。
优选的,本申请实施例第一方面提供的方法中,在确定第一待写入文件之后,所述方法还包括:
若所述第一待写入文件的长度不小于所述写入长度阈值,则将所述第一待写入文件置为只读状态;
将所述第一待写入文件的标识信息添加到压缩文件列表,以待压缩处理;
创建第四待写入文件,将所述待写入数据写入所述第四待写入文件。
优选的,本申请实施例第一方面提供的方法中,所述写数据请求中还包含所述待写入数据的待写入数据逻辑地址信息,所述确定第一待写入文件包括:
根据地址映射关系表,确定与所述待写入数据逻辑地址信息相关联的第一待写入文件物理地址信息;
基于所述第一待写入文件物理地址信息,确定第一待写入文件。
优选的,本申请实施例第一方面提供的方法中,所述方法还包括:
若监听结果指示所述第一待写入文件的长度未达到所述写入长度阈值,则在将所述待写入数据写入所述第一待写入文件之后,将所述地址映射关系表中的第一待写入文件物理地址进行更新。
第二方面,本申请实施例提供一种数据压缩方法,其中,所述方法包括:
对第一待压缩文件进行压缩处理,得到压缩处理后的数据;
向第一压缩包文件中写入所述压缩处理后的数据,并监听所述第一压缩包文件的长度;
若监听结果指示所述第一压缩包文件的长度达到压缩长度阈值,则将所述第一压缩包文件置为只读状态,并创建第二压缩包文件;
将所述压缩处理后的数据中尚未写入所述第一压缩包文件的数据,写入所述第二压缩包文件。
优选的,本申请实施例第二方面提供的方法中,在所述对第一待压缩文件进行压缩处理之前,所述方法还包括:
当压缩文件列表中存在待压缩的文件时,根据所述压缩文件列表,确定第一待压缩文件,所述第一待压缩文件为只读状态;
获取所述第一待压缩文件。
优选的,本申请实施例第二方面提供的方法中,所述待压缩的文件中包括有效数据和无效数据,所述根据所述压缩文件列表,确定第一待压缩文件,包括:
计算所述压缩文件列表中各待压缩的文件的无效数据比例,所述无效数据比例为待压缩的文件中无效数据的长度与该待压缩的文件的长度的比值;
将无效数据比例最高的待压缩的文件确定为第一待压缩文件。
优选的,本申请实施例第二方面提供的方法中,对第一待压缩文件进行压缩处理,包括:
对所述第一待压缩文件中的有效数据进行压缩处理。
优选的,本申请实施例第二方面提供的方法中,对所述第一待压缩文件中的有效数据进行压缩处理,包括:
对所述第一待压缩文件中的有效数据,采用定长压缩的方式进行压缩处理。
优选的,本申请实施例第二方面提供的方法中,所述压缩文件列表中存储有至少一个待压缩的文件的标识信息,所述获取所述第一待压缩文件,包括:
基于所述第一待压缩文件的标识信息,根据地址映射关系表,确定第一待压缩文件物理地址信息;
基于所述第一待压缩文件物理地址信息,获取所述第一待压缩文件。
优选的,本申请实施例第二方面提供的方法中,在向所述第一压缩包文件中写入所述压缩处理后的数据之后,所述方法还包括:
在所述地址映射关系表中,增加以下至少一种映射关系:
所述第一待压缩文件物理地址信息与第一压缩包文件物理地址信息之间的映射关系;
所述第一待压缩文件的标识信息与所述第一压缩包文件物理地址信息之间的映射关系;
所述第一待压缩文件的第一待压缩文件逻辑地址信息与所述第一压缩包文件物理地址信息之间的映射关系。
优选的,本申请实施例第二方面提供的方法中,在完成所述压缩处理后的数据的写入之后,所述方法还包括:
在所述压缩文件列表中删除所述第一待压缩文件的标识信息。
优选的,本申请实施例第二方面提供的方法中,所述方法还包括:
当所述压缩文件列表为空时,删除所述压缩文件列表中各待压缩的文件,释放所述各待压缩的文件的物理地址信息所对应的存储空间。
第三方面,本申请实施例提供一种数据读取方法,其中,所述方法包括:
当接收到读数据请求时,确定待读取的第一文件,所述第一文件关联有第一文件物理地址信息;
若所述第一文件是压缩文件,则基于所述第一文件物理地址信息,读取所述第一文件,并对所述第一文件进行解压处理,得到待读取数据;
返回所述待读取数据。
优选的,本申请实施例第三方面提供的方法中,所述读数据请求中包含所述待读取数据的待读取数据逻辑地址信息,所述确定待读取的第一文件,包括:
根据地址映射关系表,确定与所述待读取数据逻辑地址信息相关联的第一文件物理地址信息;
将所述第一文件物理地址信息所关联的文件确定为待读取的第一文件。
优选的,本申请实施例第三方面提供的方法中,所述基于所述第一文件物理地址信息,读取所述第一文件,包括:
基于所述第一文件物理地址信息,根据地址映射关系表,确定所述第一文件物理地址信息相关联的文件存储物理地址信息;
读取存储在所述文件存储物理地址信息所对应存储空间上的所述第一文件。
优选的,本申请实施例第三方面提供的方法中,所述方法还包括:
若所述第一文件不是压缩文件,则读取存储在所述第一文件物理地址信息所对应存储空间中的所述第一文件,得到所述待读取数据。
第四方面,本申请实施例提供一种数据处理方法,其中,所述方法包括:
当接收到写数据请求时,确定第一待写入文件,所述写数据请求中包含待写入数据;
向所述第一待写入文件中写入所述待写入数据,并监听所述第一待写入文件的长度;
若监听结果指示所述第一待写入文件的长度达到写入长度阈值,则将所述第一待写入文件置为只读状态,并将所述第一待写入文件的标识信息添加到压缩文件列表,以待压缩处理;
当所述压缩文件列表中存在待压缩的文件时,根据所述压缩文件列表,确定第一待压缩文件,所述第一待压缩文件为只读状态;
获取所述第一待压缩文件,对所述第一待压缩文件进行压缩处理,得到压缩处理后的数据;
向所述第一压缩包文件中写入所述压缩处理后的数据。
优选的,本申请实施例第四方面提供的方法中,将所述第一待写入文件置为只读状态之后,所述方法还包括:
创建第二待写入文件;
将所述待写入数据中尚未写入所述第一待写入文件的数据,写入所述第二待写入文件。
优选的,本申请实施例第四方面提供的方法中,在向第一压缩包文件中写入所述压缩处理后的数据时,所述方法还包括:
监听所述第一压缩包文件的长度;
若第一压缩包文件的长度监听结果指示所述第一压缩包文件的长度达到所述压缩长度阈值,则将所述第一压缩包文件置为只读状态,并创建第二压缩包文件;
将所述压缩处理后的数据中尚未写入所述第一压缩包文件的数据,写入所述第二压缩包文件。
优选的,本申请实施例第四方面提供的方法中,所述方法还包括:
当接收到读数据请求时,确定待读取的第一文件,所述第一文件关联有第一文件物理地址信息;
若所述第一文件是压缩文件,则基于所述第一文件物理地址信息,读取所述第一文件,并对所述第一文件进行解压处理,得到待读取数据;
返回所述待读取数据。
第五方面,本申请实施例提供一种数据写入装置,其中,所述装置包括:
待写入文件确定模块,用于当接收到写数据请求时,确定第一待写入文件,所述写数据请求中包含待写入数据;
第一数据写入模块,用于向所述第一待写入文件中写入所述待写入数据;
监听模块,用于监听所述第一待写入文件的长度;
监听结果处理模块,用于若监听结果指示所述第一待写入文件的长度达到写入长度阈值,则将所述第一待写入文件置为只读状态,并创建第二待写入文件;
第二数据写入模块,用于将所述待写入数据中尚未写入所述第一待写入文件的数据,写入所述第二待写入文件。
第六方面,本申请实施例提供一种数据压缩装置,其中,所述装置包括:
压缩处理模块,用于对第一待压缩文件进行压缩处理,得到压缩处理后的数据;
第一压缩数据写入模块,用于向第一压缩包文件中写入所述压缩处理后的数据;
监听模块,用于监听所述第一压缩包文件的长度;
监听结果处理模块,用于若监听结果指示所述第一压缩包文件的长度达到压缩长度阈值,则将所述第一压缩包文件置为只读状态,并创建第二压缩包文件;
第二压缩数据写入模块,用于将所述压缩处理后的数据中尚未写入所述第一压缩包文件的数据,写入所述第二压缩包文件。
第七方面,本申请实施例提供一种数据读取装置,其中,所述装置包括:
第一文件确定模块,用于当接收到读数据请求时,确定待读取的第一文件,所述第一文件关联有第一文件物理地址信息;
读取解压模块,用于若所述第一文件是压缩文件,则基于所述第一文件物理地址信息,读取所述第一文件,并对所述第一文件进行解压处理,得到待读取数据;
数据返回模块,用于返回所述待读取数据。
第八方面,本申请实施例提供一种数据处理装置,其中,所述装置包括:
第一待写入文件确定模块,用于当接收到写数据请求时,确定第一待写入文件,所述写数据请求中包含待写入数据;
数据写入模块,用于向所述第一待写入文件中写入所述待写入数据;
第一监听模块,用于监听所述第一待写入文件的长度;
第一监听结果处理模块,用于若监听结果指示所述第一待写入文件的长度达到写入长度阈值,则将所述第一待写入文件置为只读状态,并将所述第一待写入文件的标识信息添加到压缩文件列表,以待压缩处理;
第一待压缩文件确定模块,用于当所述压缩文件列表中存在待压缩的文件时,根据所述压缩文件列表,确定第一待压缩文件,所述第一待压缩文件为只读状态;
压缩处理模块,用于获取所述第一待压缩文件,对所述第一待压缩文件进行压缩处理,得到压缩处理后的数据;
压缩数据写入模块,用于向所述第一压缩包文件中写入所述压缩处理后的数据。
第九方面,本申请实施例提供一种电子设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
当接收到写数据请求时,确定第一待写入文件,所述写数据请求中包含待写入数据;
向所述第一待写入文件中写入所述待写入数据,并监听所述第一待写入文件的长度;
若监听结果指示所述第一待写入文件的长度达到写入长度阈值,则将所述第一待写入文件置为只读状态,并创建第二待写入文件;
将所述待写入数据中尚未写入所述第一待写入文件的数据,写入所述第二待写入文件。
第十方面,本申请实施例提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
当接收到写数据请求时,确定第一待写入文件,所述写数据请求中包含待写入数据;
向所述第一待写入文件中写入所述待写入数据,并监听所述第一待写入文件的长度;
若监听结果指示所述第一待写入文件的长度达到写入长度阈值,则将所述第一待写入文件置为只读状态,并创建第二待写入文件;
将所述待写入数据中尚未写入所述第一待写入文件的数据,写入所述第二待写入文件。
第十一方面,本申请实施例提供一种电子设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
对第一待压缩文件进行压缩处理,得到压缩处理后的数据;
向第一压缩包文件中写入所述压缩处理后的数据,并监听所述第一压缩包文件的长度;
若监听结果指示所述第一压缩包文件的长度达到压缩长度阈值,则将所述第一压缩包文件置为只读状态,并创建第二压缩包文件;
将所述压缩处理后的数据中尚未写入所述第一压缩包文件的数据,写入所述第二压缩包文件。
第十二方面,本申请实施例提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
对第一待压缩文件进行压缩处理,得到压缩处理后的数据;
向第一压缩包文件中写入所述压缩处理后的数据,并监听所述第一压缩包文件的长度;
若监听结果指示所述第一压缩包文件的长度达到压缩长度阈值,则将所述第一压缩包文件置为只读状态,并创建第二压缩包文件;
将所述压缩处理后的数据中尚未写入所述第一压缩包文件的数据,写入所述第二压缩包文件。
第十三方面,本申请实施例提供一种电子设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
当接收到读数据请求时,确定待读取的第一文件,所述第一文件关联有第一文件物理地址信息;
若所述第一文件是压缩文件,则基于所述第一文件物理地址信息,读取所述第一文件,并对所述第一文件进行解压处理,得到待读取数据;
返回所述待读取数据。
第十四方面,本申请实施例提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
当接收到读数据请求时,确定待读取的第一文件,所述第一文件关联有第一文件物理地址信息;
若所述第一文件是压缩文件,则基于所述第一文件物理地址信息,读取所述第一文件,并对所述第一文件进行解压处理,得到待读取数据;
返回所述待读取数据。
第十五方面,本申请实施例提供一种电子设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
当接收到写数据请求时,确定第一待写入文件,所述写数据请求中包含待写入数据;
向所述第一待写入文件中写入所述待写入数据,并监听所述第一待写入文件的长度;
若监听结果指示所述第一待写入文件的长度达到写入长度阈值,则将所述第一待写入文件置为只读状态,并将所述第一待写入文件的标识信息添加到压缩文件列表,以待压缩处理;
当所述压缩文件列表中存在待压缩的文件时,根据所述压缩文件列表,确定第一待压缩文件,所述第一待压缩文件为只读状态;
获取所述第一待压缩文件,对所述第一待压缩文件进行压缩处理,得到压缩处理后的数据;
向所述第一压缩包文件中写入所述压缩处理后的数据。
第十六方面,本申请实施例提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
当接收到写数据请求时,确定第一待写入文件,所述写数据请求中包含待写入数据;
向所述第一待写入文件中写入所述待写入数据,并监听所述第一待写入文件的长度;
若监听结果指示所述第一待写入文件的长度达到写入长度阈值,则将所述第一待写入文件置为只读状态,并将所述第一待写入文件的标识信息添加到压缩文件列表,以待压缩处理;
当所述压缩文件列表中存在待压缩的文件时,根据所述压缩文件列表,确定第一待压缩文件,所述第一待压缩文件为只读状态;
获取所述第一待压缩文件,对所述第一待压缩文件进行压缩处理,得到压缩处理后的数据;
向所述第一压缩包文件中写入所述压缩处理后的数据。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
本申请实施例提供的数据写入方法中,数据存储系统能响应写数据请求,向写数据请求所指示的第一待写入文件中写入数据;在第一待写入文件的长度达到写入长度阈值时,数据存储系统能够将第一待写入文件置为只读状态,以备压缩,并创建第二待写入文件继续写入待写入数据。相对应的,本申请实施例提供的数据压缩方法中,数据存储系统能够对已处于只读状态的待压缩的文件进行压缩处理,得到包含有压缩后数据的文件。因此,采用本申请实施例提供的方案,数据存储系统能够分别进行基于用户请求的数据写入过程与对数据的压缩处理过程,因此,在降低了存储成本的同时,仍然能够保障文件的读写效率,满足了用户的需求。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种数据写入方法的流程示意图;
图2为本申请实施例提供的第二种数据写入方法的流程示意图;
图3为本申请实施例提供的一种数据压缩方法的流程示意图;
图4为本申请实施例提供的第二种数据压缩方法的流程示意图;
图5为本申请实施例提供的一种数据读取方法的流程示意图;
图6为本申请实施例提供的第二种数据读取方法的流程示意图;
图7为本申请实施例提供的一种数据处理方法的流程示意图;
图8为本申请实施例提供的一种数据写入装置的结构示意图;
图9为本申请实施例提供的一种数据压缩装置的结构示意图;
图10为本申请实施例提供的一种数据读取装置的结构示意图;
图11为本申请实施例提供的一种数据处理装置的结构示意图;
图12为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在云存储系统(也可称为云盘)中,为降低运维成本,提高存储设备的利用率,可以采用数据压缩技术以减小存储的数据所占用的空间,减小数据存储量。如果采用在线压缩的方式,用户需要写入的原始数据将在被压缩后再写入存储设备。由于压缩后实际写入存储设备的数据量比原始数据的数据量小了很多,因此,采用在线压缩的方式进行数据的写入和压缩,能够节约存储空间和网络带宽。在这一过程中,数据的压缩和写入往往是串行进行的。
目前,分布式文件系统HDFS(全称Hadoop Distributed File System)就采用了上述在线压缩技术,以降低存储成本。然而,由于在用户写入数据时,数据要经过串行的压缩-写入处理,在需要对原数据进行更新时,要经过串行的读取-解压-更新-再压缩等多步处理,因此,写入数据的时间较长,影响到写数据的效率,影响用户体验。
鉴于此,本申请实施例提供了一种数据写入方法、数据压缩方法、数据读取方法、数据处理方法以及相应的装置,旨在提供一种在降低存储成本的同时,仍然能够保障文件的读写效率的数据处理方案,满足用户的需求。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
参见图1所示,本申请实施例提供了一种数据写入方法,用于向用户提供写数据服务。该方法可包括:
S101:当接收到写数据请求时,确定第一待写入文件,所述写数据请求中包含待写入数据。
能够理解到,本申请实施例提供的数据写入方法,可以由数据存储系统(例如,云存储系统,又可称为云盘)执行。在实体上,执行数据写入方法的数据存储系统,可以仅仅提供数据写服务(此时又可称为数据写入系统),也可以同时提供数据读服务,还可以同时具备对数据进行压缩的功能。除此之外,还可以同时提供存储空间用于存储数据,本申请实施例对此不做限定。
数据存储系统(在本实施例中可具体化为数据写入系统)执行步骤S101之前,可以先执行步骤S100,接收用户发出的写数据请求,参见图2所示。需要说明的是,用户向数据存储系统发送的写数据请求中,可以包含待写入数据,还可以包含与待写入数据相对应的待写入数据逻辑地址信息(可记为第一逻辑地址信息),用于指示希望将待写入数据写入的文件。
能够理解到,写数据请求中所包含的第一逻辑地址信息,可以反映用户希望将待写入数据写入的、在数据存储系统(例如,云盘)的存储空间上的逻辑地址,可表示为(云盘A,offset0,size0)。其中,云盘A表示用户希望写入数据的云盘的标识信息,offset0表示用户希望写入数据的位置在云盘A内部的偏移量为offset0,size0表示待写入数据的长度为size0。
可选的,当数据存储系统接收到用户发送来的写数据请求时,可以根据地址映射关系表确定与第一逻辑地址信息相关联(可以理解为逻辑地址信息和物理地址信息之间存在映射关系)的第一待写入文件物理地址信息(可记为第一物理地址信息),进而根据第一物理地址信息确定第一待写入文件。
可以理解到,用户对云盘的读写操作,将对应到对物理存储空间中特定文件的读写,具体的,用户对云盘上特定逻辑地址处数据的读写,与云盘底层存储在特定物理地址的文件的读写相对应。在本申请实施例中,云盘的逻辑地址信息与文件的物理地址信息之间的映射关系保存在地址映射关系表中,具体的,可以以映射关系表的形式保存在磁盘的数据结构中。
因此,数据存储系统在接收到写数据请求后,可以将地址映射关系表加载到存储系统的内存中,以便加速读、写、删除等数据操作。由于地址映射关系表中存储有文件的物理地址信息与逻辑地址信息之间的映射关系,因此,当数据存储系统接收到写数据请求时,数据存储系统可以根据写数据请求中所包含的与待写入数据相对应的第一逻辑地址信息,在地址映射关系表中查找出与第一逻辑地址信息相对应的第一物理地址信息,进而在根据第一物理地址信息确定第一待写入文件时,可以将存储在第一物理地址信息的文件确定为第一待写入文件。
例如,地址映射关系表中存储有第一逻辑地址信息(云盘A,offset0,size0)与第一物理地址信息(target1,offset1,size1)之间的映射关系,因此,数据存储系统在接收到包含有第一逻辑地址信息(云盘A,offset0,size0)的写数据请求时,会将标识信息为target1的文件确定为第一待写入文件。
在某些情况下,与同一个第一逻辑地址信息相对应的物理地址信息可能会有多个,参见后文表3所示。则在确定第一待写入文件时,将未被置为只读状态的文件确定为第一待写入文件,该文件的物理地址信息则可以根据该文件的尾部(相当于偏移量offset的值最大者)所在的物理地址信息确定。
可选的,数据存储系统在执行步骤S101确定第一待写入文件之后,可以进一步确定第一待写入文件的长度。以存储在第一物理地址信息(target1,offset1,size1)的第一待写入文件target1为例,确定第一待写入文件的长度时,可以计算偏移量offset1与文件长度size1的和,即采用公式:第一待写入文件的长度=offset1+size1,计算第一待写入文件的长度。
在本申请实施例中,采用文件定长的方式进行数据存储,在云盘的底层(即物理存储空间)所存储的,实际上是多个固定最大长度(也可理解为固定最大大小)的文件。例如,若写入长度阈值(即限定的文件最大长度)取为512M(兆)大小的文件所对应的字节数量,则每个文件的大小最大为512M,可以理解为,每个文件所允许占用的物理存储空间最多为512×1024字节。
通过设定上述写入长度阈值,可以限定云盘底层中每个文件的最大长度,从而在用户需要写入新的数据时,只要对应文件的长度尚未达到最大程度(可以理解为对应文件并未写满),就可以在对应文件的尾部采用追加写入的方式更新文件,而不会对文件中原有的数据构成影响。若采用文件长度不固定的存储方式进行数据存储,可能导致原始数据到文件或压缩数据的索引管理非常复杂,还可能因此导致内存使用率增加、磁盘碎片化严重等问题。因此,采用文件定长的方式,将用户写入的数据划分为文件进行存储,能够更合理的利用存储空间,提高读写效率。
需要说明的是,写入长度阈值的设计可以根据具体需要确定,这是因为:若写入长度阈值设计得较大,则文件的长度将较长(也可以认为文件将会较大),将可能影响对文件的读写效率;而若写入长度阈值设计得过小,则每一个文件将会较小,存储系统中文件的数量可能会过多,不便管理。
还需要说明的是,由于文件的长度和大小之间存在转换关系,即文件大小为1M的文件,所对应的长度为1024字节。因此,在具体实施时,既可以设计长度阈值,也可以设计大小阈值,用以判断第一待写入文件是否已写满。可以理解到,第一待写入文件的长度小于长度阈值,或者,第一待写入文件的大小小于大小阈值时,可以判定第一待写入文件尚未写满,则可以向第一待写入文件中写入待写入数据。
本申请实施例提供的写数据方法中,在确定第一待写入文件的长度之后,可以进一步执行步骤S103,判断第一待写入文件的长度是否小于写入长度阈值,参见图2所示。
可选的,若判断结果指示第一待写入文件的长度不小于写入长度阈值,则表示第一待写入文件已经写满。此时,参见图2所示,可执行步骤S1061,将第一待写入文件置为只读状态,不再向该文件中写入新的数据;并执行步骤S1063,将第一待写入文件的标识信息添加到压缩文件列表,以待压缩处理。与此同时,还可执行步骤S1065创建第四待写入文件,以及步骤S1067将待写入数据写入第四待写入文件,从而能够在确保文件长度不超过写入长度阈值的情况下,及时响应写数据请求进行待写入数据的写入,满足用户的写数据需求。
S105:向第一待写入文件中写入待写入数据,并监听第一待写入文件的长度。
可以理解到,前述步骤S103为优选步骤,以便确保文件的长度不大于写入长度阈值,即在判断结果指示第一待写入文件的长度小于写入长度阈值时,才向第一待写入文件中写入待写入数据。在实施本申请实施例时,也可以直接向确定出的第一待写入文件中写入待写入数据,并立即开始监听。一旦监听到第一待写入文件的长度达到写入长度阈值,即可执行步骤S107。
可选的,参见图2所示,数据存储系统在确定第一待写入文件,并确定第一待写入文件的长度后,若第一待写入文件的长度小于写入长度阈值,则表示第一待写入文件尚未写满,则可执行步骤S1051,向第一待写入文件中写入待写入数据。
需要说明的是,向待写入文件中写入文件,具体为在待写入文件的尾部追加写入待写入数据。采用这种在文件尾部追加写入数据的方式,相比于对压缩文件进行解压缩-写入新数据-再压缩的写数据方式,本申请实施例中的数据存储系统可以直接在文件长度尚未达到写入长度阈值的文件中写入待写入数据,因此能够及时响应用户发出的写数据请求,提高了写数据的效率,满足用户的使用需求,改善了用户体验。
可选的,在执行步骤S1051,向第一待写入文件中写入待写入数据时,数据存储系统还执行步骤S1053,监听第一待写入文件的长度。可以理解到,在向第一待写入文件中写入待写入数据的过程中,随着数据的写入,第一待写入文件的长度将逐渐增加。因此,对第一待写入文件的长度进行监听,能够始终控制底层文件的长度在写入长度阈值以内,以便进行文件的管理。
能够理解,执行步骤S1053对第一待写入文件的长度进行监听,并执行步骤S1055,判断监听到的第一待写入文件的长度是否达到写入长度阈值。若监听结果指示第一待写入文件的长度仍未达到写入长度阈值,则可以继续向第一待写入文件中写入数据,直至写数据请求中包含的待写入数据全部写入完毕,或者第一待写入文件的长度达到写入长度阈值。
S107:若监听结果指示第一待写入文件的长度达到写入长度阈值,则将第一待写入文件置为只读状态,并创建第二待写入文件。
参见图2所示,当监听到第一待写入文件的长度达到写入长度阈值时,数据存储系统可以将第一待写入文件封存,也就是执行步骤S1071将第一待写入文件置为只读状态,不再向第一待写入文件中写入新的数据。并且,数据存储系统还可进一步执行步骤S1075,将第一待写入文件的标识信息添加入压缩文件列表中,以便将第一待写入文件作为待压缩文件,等待进行压缩处理。
采用这种方式,数据存储系统能够将文件长度达到写入长度阈值的文件进行封存,在响应用户的写数据请求时不再向这些文件中写入数据,因此,在后续对这些文件进行压缩处理时将不会影响到数据的写入和读取,从而在降低了存储成本的同时,仍然能够保障文件的读写效率,满足了用户的需求。
可以理解到,在具体实施时,既可以在封存第一待写入文件后立刻将第一待写入文件的标识信息添加入压缩文件列表,也可以先封存第一待写入文件,而在数据存储系统遍历存储空间时再将被封存的文件(即第一待写入文件)的标识信息添加进压缩文件列表。
进一步地,当监听到第一待写入文件的长度达到写入长度阈值时,数据存储系统还可执行步骤S1073,创建第二待写入文件,以便可以继续进行待写入数据的写入。
S109:将待写入数据中尚未写入第一待写入文件的数据,写入第二待写入文件。
能够理解到,向新创建的文件(例如,第二待写入文件)中追加写入数据,可以理解为,在文件(例如,第二待写入文件)的尾部写入数据。
需要说明的是,在执行步骤S109时,除向第二待写入文件中写入待写入数据中、尚未写入第一待写入文件的数据以外,也同时监听第二待写入文件的长度。一旦监听结果指示第二待写入文件的长度达到写入长度阈值,则将第二待写入文件置为只读状态,并创建第三待写入文件,向第三待写入文件中写入待写入数据中、尚未写入第一待写入文件和第二待写入文件的数据。
还需要说明的是,在本申请实施例中,向某一目标文件(该目标文件可以是第一待写入文件,第二待写入文件,第三待写入文件,或者第四待写入文件)中写入数据时,都会监听目标文件的长度。一旦目标文件的长度达到写入长度阈值,数据存储系统都会封存该目标文件,将该目标文件置为只读状态,不再向该目标文件中写入数据;并且,创建新的文件,用于继续写入待写入数据中尚未写入的数据,以便及时完成对待写入数据的写入操作。
对于不同情况下创建的待写入文件而言,写入的数据的具体内容有所不同。具体的,向第一待写入数据中写入的,是写数据请求中所包含的待写入数据;向第二待写入数据中写入的,是待写入数据中尚未写入第一待写入文件的数据部分;向第三待写入数据中写入的,是待写入数据中尚未写入第一待写入文件和第二待写入文件的数据部分;向第四待写入数据中写入的,是待写入数据中尚未写入第一待写入文件的数据部分。
可选的,在完成待写入数据的写入后,还可进一步获取包含有待写入数据的文件的物理地址信息,并对地址映射关系表中的第一物理地址进行更新。
具体的,由于写数据请求中包含的第一逻辑地址信息与第一待写入文件的第一物理地址信息已建立有关联关系,在将待写入数据写入第一待写入文件之后,可以在地址映射关系表中增加第一逻辑地址信息与新的物理地址信息之间的映射关系,其中,新的物理地址信息对应的存储空间上存储有写数据请求中所包含的待写入数据。
需要说明的是,若在向第一待写入文件中写入待写入数据的过程中,第一待写入文件的长度始终未达到写入长度阈值,则写数据请求中的全部待写入数据将全部被写入第一待写入文件。这种情况下,在增加第一逻辑地址信息与新的物理地址信息之间的映射关系时,新增的物理地址信息对应文件的标识不变(仍然为第一待写入文件的文件标识),而新的物理地址信息中的偏移量将根据待写入数据在物理存储空间中的位置确定,新的物理地址信息中的文件长度将根据待写入数据的长度确定。
还需要说明的是,若在向第一待写入文件中写入待写入数据的过程中,创建了新的待写入文件(例如,第二待写入文件,第三待写入文件,第四待写入文件,等等)用于待写入数据的写入,则写数据请求中的待写入数据将被写入多个待写入文件。这种情况下,在增加第一逻辑地址信息与新的物理地址信息之间的映射关系时,新增的物理地址信息对应文件的标识将可能不同。
能够理解,采用上述方式,在写入待写入数据的过程中,能够及时的将文件长度达到写入长度阈值的文件进行封存,使得文件的长度能够始终控制在预设范围之内,便于文件管理。同时,还能够及时的创建新的文件继续进行数据的写入,从而能够及时响应用户的写数据请求,提高了写数据的效率。除此之外,还能够及时的将被封存的文件的标识信息添加入压缩文件列表,以便能够对这些文件进行离线压缩,从而在不影响用户对文件进行读写的情况下,还能够节约存储空间。
以下举例说明用户向云盘中写入一个视频数据文件的过程。
假设用户希望向数据存储系统(即云盘)中写入一个大小为1G(吉)的视频数据文件(对应的长度为1×1024×1024×1024字节),则用户将向数据存储系统发送写数据请求。该写数据请求中,将包括待写入的视频数据,还包括与待写入的视频数据相对应的逻辑地址:(云盘B,offset3,size3)。其中,“云盘B”表示用户拟写入视频数据的云盘的标识,“offset3”表示用户拟写入视频数据的逻辑地址的偏移量,“size3”表示用户拟写入的视频数据的长度。
在接收到用户发送的写数据请求后,数据存储系统可以将存储在磁盘中的地址映射关系表加载至内存中,并在地址映射关系表中查找与逻辑地址(云盘B,offset3,size3)相关联(可以理解为,二者建立有映射关系)的物理地址,如表1所示地址映射关系表一。假设查找到与逻辑地址(云盘B,offset3,size3)建立有映射关系的物理地址为(target4,offset4,size4),则可将文件标识为target4的文件确定为第一待写入文件。
表1地址映射关系表一
逻辑地址 | 物理地址 |
······ | ······ |
(云盘B,offset3,size3) | (target4,offset4,size4) |
······ | ······ |
在此基础上,进一步确定文件target4的长度(也可以是文件的大小):offset4+size4。假设写入长度阈值取为256M大小的文件所对应的字节数256×1024,而文件target4的长度为128×1024字节,则文件target4的长度小于写入长度阈值。因此,数据存储系统可以直接向文件target4中(追加)写入待写入的视频数据(相当于步骤S1051)。
在向文件target4中写入待写入的视频数据的过程中,数据存储系统持续的监听文件target4的长度变化(相当于步骤S1053)。在以上示例中,可以理解到,当向文件target4中写入128M数据时,文件target4的长度将达到预设的写入长度阈值256×1024字节,则此时:
第一方面,数据存储系统将封存文件target4,将文件target4置为只读状态,停止向文件target4中继续写入待写入的视频数据。此时,与逻辑地址(云盘B,offset3,size3)相对应的文件target4的物理位置信息将变化为(target4,offset5,size5),其中:offset5按照(offset4+size4)的公式计算得到,表示写入的视频数据在物理地址上的偏移量;size5为在文件target4中写入的视频数据的数据长度,以字节为单位来衡量其值为128×1024;文件target4的长度(offset5+size5)将等于256×1024字节。将逻辑地址信息与物理地址信息的新的映射关系添加进地址映射关系表一中,形成如表2所示地址映射关系表二。
表2地址映射关系表二
逻辑地址 | 物理地址 |
······ | ······ |
(云盘B,offset3,size3) | (target4,offset4,size4) |
(云盘B,offset3,size3) | (target4,offset5,size5) |
······ | ······ |
第二方面,由于文件target4的长度已达到写入长度阈值,因此,可将文件target4的文件标识target4添加入压缩文件列表中,以便后续对长度已达到写入长度阈值的文件target4进行离线压缩。
第三方面,数据存储系统还创建新的文件target5,以便数据存储系统向文件target5中写入待写入的视频数据中尚未写入target4的剩余数据。在本示例中,由于待写入的视频数据总大小为1G,其中,有128M数据已写入文件target4中,则剩余的896M视频数据将向文件target5中写入。
可以想象,由于文件的写入长度阈值为256×1024字节,因此,文件target5中仍然无法存入所有的剩余数据(此时,剩余数据的长度为896×1024字节),则当文件target5的长度也达到256×1024字节时,数据存储系统将再创建新的文件target6,并向文件target6中继续写入待写入的视频数据(此时,剩余数据的长度为640×1024字节),以此类推,直至完成写数据请求中所有待写入数据的写入。除此之外,在向目标文件中写入待写入数据时,一旦文件的长度达到写入长度阈值,则将文件进行封存,并将文件标识添加入压缩文件列表中。
以上举例的待写入的视频数据全部写入后,所形成的地址映射关系表三将如下表3所示,表3较表2增加了多条逻辑地址信息与物理地址信息的映射关系。
表3地址映射关系表三
逻辑地址 | 物理地址 |
······ | ······ |
(云盘B,offset3,size3) | (target4,offset4,size4) |
(云盘B,offset3,size3) | (target4,offset5,size5) |
(云盘B,offset3,size3) | (target5,offset6,size6) |
(云盘B,offset3,size3) | (target6,offset7,size7) |
(云盘B,offset3,size3) | (target7,offset8,size8) |
(云盘B,offset3,size3) | (target8,offset9,size9) |
······ | ······ |
在以上地址映射关系表三中,由于文件target5为在文件target4的长度达到写入长度阈值256×1024字节时新创建的,offset6的值为0,size6的值为256×1024。文件target6为在文件target5的长度达到写入长度阈值256×1024字节时新创建的,offset7的值为0,size7的值为256×1024。文件target7为在文件target6的长度达到写入长度阈值256×102字节4时新创建的,offset8的值为0,size8的值为256×1024。文件target8为在文件target7的长度达到写入长度阈值256×1024字节时新创建的,offset9的值为0,size9的值为128×1024,至此,完成写数据请求中所包含的待写入的视频数据的写入。
可以理解到,用户请求写入逻辑地址(云盘B,offset3,size3)的大小为1G的视频数据,在数据存储系统中将对应存储在物理地址为(target4,offset5,size5)、(target5,offset6,size6)、(target6,offset7,size7)、(target7,offset8,size8)、(target8,offset9,size9)的文件中。
还可以理解到,在写入上述示例中的视频数据时,文件target4、文件target5、文件target6和文件target7的长度均已达到写入长度阈值256×1024字节,因此,这几个文件的文件标识将被添加入压缩文件列表中,以便对这些文件进行压缩,节约存储空间。
采用本申请实施例提供的上述方案,数据存储系统能够基于用户的请求直接写入数据,并在写入数据的过程中,在文件的长度达到写入长度阈值时创建新的文件,继续写入数据,并能够对长度达到写入长度阈值的文件进行封存,以便在后续对文件进行离线压缩。因此,能够分别进行基于用户请求的数据写入过程和对数据的压缩处理过程,从而在降低了存储成本的同时,仍然能够保障文件的读写效率,满足了用户的需求。
实施例2
本申请实施例还提供了一种数据压缩方法,用来对长度达到写入长度阈值的文件进行离线压缩,以便节约存储空间,降低存储成本。能够理解到,本申请实施例提供的数据压缩方法,可以由数据存储系统执行。在实体上,执行数据压缩方法的数据存储系统,可以仅仅提供数据压缩功能(此时又可称为数据压缩系统),也可以同时提供数据读服务,还可以同时提供数据写服务,除此之外,还可以同时提供存储空间用于存储数据,本申请实施例对此不做限定。
参见图3所示,本申请实施例提供的数据压缩方法,可具体包括:
S2033:对第一待压缩文件进行压缩处理,得到压缩处理后的数据。
可选的,参见图4所示,在执行步骤S2033之前,可以先执行步骤S201,当压缩文件列表中存在待压缩的文件时,根据压缩文件列表,确定第一待压缩文件,其中,第一待压缩文件为只读状态。
可选的,压缩文件列表中可以存储有至少一个待压缩的文件的标识信息。能够理解,压缩文件列表中存储的待压缩的文件的标识信息,可以是基于前述实施例的数据写入方法,在文件的长度达到写入长度阈值时添加进压缩文件列表的,也可以是对存储空间中封存的文件进行遍历时,将被封存文件的标识信息添加进压缩文件列表的。能够理解,对存储空间中封存的文件进行的遍历,可以是周期性的遍历,也可以是在满足一定触发条件时进行遍历。
可选的,数据存储系统(可具体化为数据压缩系统)在确定第一待压缩文件时,可以周期性的对压缩文件列表进行轮询、扫描,执行步骤S200判断压缩文件列表中是否存在待压缩的文件,参见图4所示。例如,每隔5秒钟对压缩文件列表进行扫描。若扫描发现压缩文件列表中不存在待压缩的文件的标识信息,相当于压缩文件列表中不存在待压缩的文件,则数据存储系统可以休眠一段时间后再次扫描。
而若扫描发现压缩文件列表中存在待压缩的文件的标识信息,即判断结果指示压缩文件列表中存在待压缩的文件时,开始执行步骤S201,根据压缩文件列表,确定第一待压缩文件。进一步的,可以在完成对第一待压缩文件的压缩处理后,在压缩文件列表中删除第一待压缩文件的标识信息。此时,可以再次执行步骤S200,扫描压缩文件列表,若压缩文件列表中仍然存储有待压缩的文件的标识信息,则再次确定待压缩文件并进行压缩处理,直至对压缩文件列表中所有的待压缩的文件完成压缩处理。
进一步的,当压缩文件列表中所有的待压缩的文件完成压缩处理后,压缩文件列表中所有待压缩的文件的标识信息已被删除,压缩文件列表为空。因而,可以进一步删除压缩文件列表中各待压缩的文件,释放各待压缩的文件的物理地址信息所对应的存储空间,以便降低存储成本。
可以理解到,在具体实施时,既可以每完成一个待压缩的文件的压缩处理后就删除该待文件,也可以在压缩文件列表中所有待压缩的文件均被压缩处理后再删除所有待压缩的文件。本申请实施例优选后者,以便维持数据存储系统的稳定性。
还需要说明的是,用户在写入数据后,可能会对已写入的数据进行更新,即在特定逻辑地址上,希望用新数据替换原有的旧数据。此时,被替换的旧数据可称为无效数据,未被替换的数据可称为有效数据。在采用追加写入的方式向磁盘上的文件中写入数据时,用于替换旧数据的新数据将被追加写入文件的尾部;在完成新数据的写入后,数据存储系统将在地址映射关系表中删除上述特定逻辑地址信息与原数据所在文件的物理地址信息之间的映射关系,而增加上述特定逻辑地址信息与新数据所在文件的物理地址信息之间的映射关系。
可选的,在待压缩的文件中包括有效数据和无效数据的情况下,根据压缩文件列表,确定第一待压缩文件时,可以先计算压缩文件列表中各待压缩的文件的无效数据比例,进而将无效数据比例最高的待压缩的文件确定为第一待压缩文件,进行压缩处理。其中,无效数据比例为待压缩的文件中无效数据的长度与该待压缩的文件的长度的比值。可以理解到,待压缩的文件的长度为该待压缩的文件的无效数据的长度与有效数据的长度的和。
可以理解到,采用上述方式计算的无效数据比例,能够反映一个文件中无效数据所占的比重。无效数据比例越高,表示该文件中无效数据越多;无效数据比例越低,表示该文件中无效数据越少。
可以理解到,虽然旧数据被新数据替换成为无效数据后,地址映射关系表中会删除逻辑地址信息与无效数据所在文件的物理地址信息之间的映射关系,但是,无效数据所占用的物理存储空间仍然没有得到释放。因此,在选择压缩文件列表中待压缩的文件进行压缩处理时,优先选择所有待压缩的文件中无效数据比例最高的文件作为当前的待压缩文件(即第一待压缩文件),就可以优先对包含无效数据更多的文件进行压缩,从而能够更早、更多的释放无效数据所占用的物理存储空间,更有利于节约存储空间,降低存储成本。
可选的,参见图4所示,在执行步骤S2033,对第一待压缩文件进行压缩处理之前,还可以先执行步骤S2031,获取第一待压缩文件。具体的,可以基于第一待压缩文件的标识信息,确定第一待压缩文件的第一待压缩文件物理地址信息(可记为第二物理地址信息),再基于第二物理地址信息获取第一待压缩文件。具体的,可以基于第一待压缩文件的标识信息,根据地址映射关系表,确定第一待压缩文件的第二物理地址信息。其中,地址映射关系表中相对应的存储有第一待压缩文件的标识信息和第二物理地址信息。
能够理解到,基于存储在压缩文件列表中的第一待压缩文件的标识信息,可以在地址映射关系表中查询得到第一待压缩文件的第二物理地址信息。结合上述表1~表3能够理解到,第一待压缩文件的第二物理地址信息可以有多个,例如,文件target4的长度达到写入长度阈值后,该文件将作为待压缩的文件。通过查询地址映射关系表可以查知,文件target4的物理地址信息包括:(target4,offset4,size4)和(target4,offset5,size5)。
需要说明的是,基于第二物理地址信息获取第一待压缩文件,其实质为基于第二物理地址信息,读取第一待压缩文件中的有效数据。由于对旧数据进行更新时,已经在地址映射关系表中删除了逻辑地址信息与旧数据(即无效数据)所在文件的物理地址信息之间的映射关系,因此,在执行步骤S2031,获取第一待压缩文件时,也将无法从地址映射关系表中查找到无效数据所在文件的物理地址信息,当然,也就无法基于物理地址信息读取无效数据了。
在此基础上,执行步骤S2033,对第一待压缩文件进行压缩处理,得到压缩处理后的数据,其实质也是对第一待压缩文件中的有效数据进行压缩处理。由此可见,执行本申请实施例提供的数据压缩方法,在进行数据压缩的同时,还能够直接释放无效数据所占用的存储空间,更有利于进一步降低存储成本。并且,仅对有效数据进行压缩,还能让有效数据更加集中紧凑,避免了存储设备中数据的碎片化。
可选的,对第一待压缩文件中的有效数据进行压缩处理时,可以对第一待压缩文件中的有效数据,采用定长压缩的方式进行压缩处理。例如,将读取到的有效数据按照每N字节的方式进行压缩,例如,N取为16KB,能够使得数据存储系统中的元数据管理更加简洁高效。
S207:向第一压缩包文件中写入所述压缩处理后的数据,并监听所述第一压缩包文件的长度。
可选的,参见图4所示,在执行步骤S207之前,可先执行步骤S2051,确定第一压缩包文件。具体的,可以是在对压缩文件列表进行一轮扫描、确定存在待压缩的文件时创建一个第一压缩包文件,也可以将最近一次写入压缩后数据时所对应的文件确定为第一压缩包文件。
参见图4所示,进一步的,可执行步骤S2053,判断第一压缩包文件的长度是否小于压缩长度阈值,若判断结果指示第一压缩包文件的长度已经达到压缩长度阈值,则可以执行步骤S2055,将第一压缩包文件置为只读状态,不再向第一压缩包文件中写入新的压缩后数据。并且,执行步骤S2057创建新的压缩包文件(此处记为第三压缩包文件),并进而执行步骤S2059向第三压缩包文件中写入压缩处理后的数据。
参见图4所示,若判断结果指示第一压缩包文件的长度小于压缩长度阈值,则可以执行步骤S2071,向第一压缩包文件中写入压缩处理后的数据。同时,执行步骤S2073,监听第一压缩包文件的长度。具体的,执行步骤S2075,判断第一压缩包文件的长度是否达到压缩长度阈值。能够理解到,对第一压缩包文件的长度进行的监听,与前述实施例中对第一待写入文件的长度的监听类似,此处不再赘述。
当监听结果指示第一压缩包文件的长度达到压缩长度阈值时,可执行步骤S2091,将第一压缩包文件置为只读状态,不再向第一压缩包文件中写入新的压缩后数据。并且,执行步骤S2093创建新的压缩包文件(此处记为第二压缩包文件),并进而执行步骤S211,将压缩处理后的数据中尚未写入第一压缩包文件的数据,写入第二压缩包文件,直至第一待压缩文件所对应的压缩后数据全部写入压缩包文件。至此完成了对第一待压缩文件的压缩处理。若压缩文件列表中还存在其他的待压缩的文件,数据存储系统将重复以上过程,直至清空压缩文件列表。
采用以上方式,可以确保写入有压缩后数据的文件的长度不大于压缩长度阈值,有利于数据管理。若采用压缩包文件长度不固定的存储方式进行压缩文件的存储,可能导致原始数据到压缩数据的索引管理非常复杂,还可能因此导致内存使用率增加、磁盘碎片化严重等问题。因此,对压缩包文件也采用文件定长的方式进行管理,将经过压缩处理后得到的压缩数据也划分为文件进行存储,能够更合理的利用存储空间,提高读写效率。
需要说明的是,待写入文件的长度阈值(记为写入长度阈值)与压缩包文件的长度阈值(记为压缩长度阈值),均可以根据实际需求确定,可以相同,也可以不同,本申请实施例对此不做限定。
可选的,为使得压缩处理后的数据能够被用户读取,在将压缩处理后的数据写入压缩包文件(可以包含第一压缩包文件、第二压缩包文件或者第三压缩包文件,以下以第一压缩包文件为例)中之后,还可以在地址映射关系表中,增加以下至少一种映射关系:
一种映射关系在于,第一待压缩文件的第二物理地址信息与第一压缩包文件的第一压缩包文件物理地址信息(可记为第三物理地址信息)之间的第一映射关系。可以理解到,在地址映射关系表中增加压缩前数据所在文件(即第一待压缩文件)的物理地址信息与压缩后数据所在文件(即第一压缩包文件)的物理地址信息之间的映射关系,则用户希望读取某一逻辑地址信息所对应的数据时,可以先根据地址映射关系表确定与该逻辑地址信息相对应的压缩前数据所在文件的物理地址信息,进而可以确定压缩后数据所在文件的物理地址信息,从而可以提取压缩后数据,进行解压等操作后即可读取。以前述表3为例,在表3所示的地址映射关系表三中增加上述第一映射关系后,形成包含有压缩后数据所在文件的物理地址信息的地址映射关系表四,具体如表4所示:
表4地址映射关系表四
逻辑地址 | 压缩前文件物理地址 | 压缩后文件物理地址 |
······ | ······ | ······ |
(云盘B,offset3,size3) | (target4,offset4,size4) | (target11,offset11,size11) |
(云盘B,offset3,size3) | (target4,offset5,size5) | (target11,offset12,size12) |
(云盘B,offset3,size3) | (target5,offset6,size6) | (target11,offset13,size13) |
(云盘B,offset3,size3) | (target6,offset7,size7) | (target11,offset14,size14) |
(云盘B,offset3,size3) | (target7,offset8,size8) | (target11,offset15,size15) |
(云盘B,offset3,size3) | (target8,offset9,size9) | (target16,offset16,size16) |
······ | ······ | ······ |
另一种映射关系在于,第一待压缩文件的标识信息与第一压缩包文件的第三物理地址信息之间的第二映射关系。可以理解到,在地址映射关系表中增加压缩前数据所在文件(即第一待压缩文件)的文件标识与压缩后数据所在文件(即第一压缩包文件)的物理地址信息之间的映射关系,则用户希望读取某一逻辑地址信息所对应的数据时,可以先根据地址映射关系表确定与该逻辑地址信息相对应的压缩前数据所在文件的标识信息,进而可以确定压缩后数据所在文件的物理地址信息,从而可以提取压缩后数据,进行解压等操作后即可读取。以前述表3为例,在表3所示的地址映射关系表三中增加上述第二映射关系后,形成包含有压缩后数据所在文件的物理地址信息的地址映射关系表五,具体如表5所示:
表5地址映射关系表五
还有一种映射关系在于,第一待压缩文件的第一待压缩文件逻辑地址信息(可记为第二逻辑地址信息)与第一压缩包文件的第三物理地址信息之间的第三映射关系。可以理解到,在地址映射关系表中直接增加压缩前数据所在文件(即第一待压缩文件)的逻辑地址信息与压缩后数据所在文件(即第一压缩包文件)的物理地址信息之间的映射关系,则用户希望读取某一逻辑地址信息所对应的数据时,可以直接根据地址映射关系表确定与该逻辑地址信息相对应的压缩后数据所在文件的物理地址信息,进而可以从该物理地址信息提取压缩后数据,进行解压等操作后即可读取。以前述表3为例,在表3所示的地址映射关系表三中增加上述第三映射关系后,形成包含有压缩后数据所在文件的物理地址信息的地址映射关系表六,具体如表6所示:
表6地址映射关系表六
在本申请实施例提供的数据压缩方法中,能够基于压缩数据列表确定待压缩文件,进而进行数据的压缩。由于待压缩文件均为长度达到写入长度阈值、并且已被置为只读状态的文件,因此,对待压缩文件的任何处理均不影响用户的读写操作。因此,采用本申请实施例提供的上述方案,能够分别进行基于用户请求的数据写入过程和对数据的压缩处理过程,从而在降低了存储成本的同时,仍然能够保障文件的读写效率,满足了用户的需求。
实施例3
本申请实施例还提供了一种数据读取方法,用于向用户提供读数据服务。能够理解到,本申请实施例提供的数据读取方法,可以由数据存储系统执行。在实体上,执行数据读取方法的数据存储系统,可以仅仅提供数据读取功能(此时又可称为数据读取系统),也可以同时提供数据写服务,还可以同时提供数据压缩服务,除此之外,还可以同时提供存储空间用于存储数据,本申请实施例对此不做限定。
参见图5所示,本申请实施例提供的数据读取方法,可具体包括:
S301:当接收到读数据请求时,确定待读取的第一文件,所述第一文件关联有第一文件物理地址信息(可记为第四物理地址信息)。
S305:若第一文件是压缩文件,则基于第一文件物理地址信息,读取第一文件,并对第一文件进行解压处理,得到待读取数据。
S307:返回待读取数据。
可选的,用户发出的读数据请求中,可以包含待读取数据的待读取数据逻辑地址信息(可记为第三逻辑地址信息)。参见图6所示,数据存储系统执行步骤S300接收读数据请求后,执行步骤S301时,可以基于第三逻辑地址信息,根据地址映射关系表,确定与第三逻辑地址信息相关联的第四物理地址信息,即第一文件物理地址信息,并进而将第四物理地址信息所关联的文件确定为待读取的第一文件(也可称为第一待读取文件)。
在执行步骤S303判断第一待读取文件是否为压缩文件后,若判断结果指示第一待读取文件不是压缩文件,则第四物理地址信息即为第一待读取文件的存储地址,因此,参见图6所示,可以执行步骤S306,读取存储在第四物理地址信息所对应存储空间中的第一待读取文件,得到待读取数据。并进而执行步骤S307,返回待读取数据。
在执行步骤S303判断第一待读取文件是否为压缩文件后,若判断结果指示第一待读取文件是压缩文件,则可进一步执行步骤S3051,基于第四物理地址信息读取第一待读取文件,并进而执行步骤S3053,对第一待读取文件进行解压处理,得到待读取数据。
需要说明的是,根据地址映射关系表中所保存的不同映射关系,数据存储系统执行步骤S3051基于第四物理地址信息读取第一待读取文件的过程也不甚相同。
可选的,当地址映射关系表中存储的是压缩前数据所在文件(相当于待读取数据所在文件)的逻辑地址信息与压缩后数据所在文件(相当于第一待读取文件)的物理地址信息之间的映射关系时,例如,表6所示例的地址映射关系表,则根据地址映射关系表,基于读数据请求中的第三逻辑地址信息(与待读取数据相对应)确定出的相关联的第四物理地址信息,即为压缩后数据所在文件的实际存储地址。因此,执行步骤S3051基于第四物理地址信息读取第一待读取文件时,直接读取存储在第四物理地址信息所对应存储空间上的文件即可。
可选的,当地址映射关系表中存储的是压缩前数据所在文件(相当于待读取数据所在文件)的文件标识与压缩后数据所在文件(相当于第一待读取文件)的物理地址信息之间的映射关系时,例如,表5所示例的地址映射关系表,则可以通过第三逻辑地址信息-文件标识-第四物理地址信息这一映射关系,确定出的与第三逻辑地址信息相关联的第四物理地址信息,也是压缩后数据所在文件的实际存储地址。因此,执行步骤S3051基于第四物理地址信息读取第一待读取文件时,直接读取存储在第四物理地址信息所对应存储空间上的文件即可。
可选的,当地址映射关系表中存储的是压缩前数据所在文件(相当于待读取数据所在文件)的物理地址信息与压缩后数据所在文件(相当于第一待读取文件)的物理地址信息之间的映射关系时,例如,表4所示例的地址映射关系表,则与第三逻辑地址信息相关联的第四物理地址信息,可能是压缩前数据所在文件的物理地址信息。因此,在执行步骤S3051基于第四物理地址信息读取第一待读取文件时,可以基于第四物理地址信息,根据地址映射关系表,确定第四物理地址信息相关联的第五物理地址信息(也就是压缩后数据所在文件的物理地址信息),再读取存储在第五物理地址信息所对应存储空间上的第一待读取文件。
在本申请实施例中,由于在数据的写入和离线压缩的过程中,均保存了逻辑地址信息、压缩前文件(包括待压缩文件)的物理地址信息、压缩包文件的物理地址信息中至少两项之间的映射关系,因此,数据存储系统可以根据携带有逻辑地址信息的读数据请求获取到用户希望读取的待读取数据。由于无论是压缩文件还是非压缩文件,均以定长的方式存储在存储设备中,因此,读写效率更高,满足用户的使用需求。
实施例4
本申请实施例还提供了一种数据处理方法,该方法可以由数据存储系统(例如,云存储系统,又可称为云盘)执行。在实体上,执行数据处理方法的数据存储系统,可以提供数据写服务、数据读服务,还可以具备对数据进行压缩的功能。除此之外,还可以同时提供存储空间用于存储数据,本申请实施例对此不做限定。
参见图7所示,上述数据处理方法可以具体包括:
S401:当接收到写数据请求时,确定第一待写入文件,写数据请求中包含待写入数据;
S403:向第一待写入文件中写入待写入数据,并监听第一待写入文件的长度;
S405:若监听结果指示第一待写入文件的长度达到写入长度阈值,则将第一待写入文件置为只读状态,并将第一待写入文件的标识信息添加到压缩文件列表,以待压缩处理;
S501:当压缩文件列表中存在待压缩的文件时,根据压缩文件列表,确定第一待压缩文件,第一待压缩文件为只读状态;
S503:获取第一待压缩文件,对第一待压缩文件进行压缩处理,得到压缩处理后的数据;
S505:向第一压缩包文件中写入压缩处理后的数据。
优选的,在本申请实施例提供的数据处理方法中,将第一待写入文件置为只读状态之后,方法还包括:
创建第二待写入文件;
将待写入数据中尚未写入第一待写入文件的数据,写入第二待写入文件。
优选的,在本申请实施例提供的数据处理方法中,在向第一压缩包文件中写入压缩处理后的数据时,方法还包括:
监听第一压缩包文件的长度;
若第一压缩包文件的长度监听结果指示第一压缩包文件的长度达到压缩长度阈值,则将第一压缩包文件置为只读状态,并创建第二压缩包文件;
将压缩处理后的数据中尚未写入第一压缩包文件的数据,写入第二压缩包文件。
优选的,在本申请实施例提供的数据处理方法中,方法还包括:
当接收到读数据请求时,确定待读取的第一文件,第一文件关联有第一文件物理地址信息;
若第一文件是压缩文件,则基于第一文件物理地址信息,读取第一文件,并对第一文件进行解压处理,得到待读取数据;
返回待读取数据。
能够理解到,本实施例所提供的数据处理方法,能够实现前述实施例所提供的数据写入、压缩和读取过程。可以认为,是实施例1所提供的数据写入方法、实施例2所提供的数据压缩方法和实施例3所提供的数据读取方法的合并。因此,实施例1~3中的相关阐释均适用于本实施例,在此不再赘述。
本申请实施例提供的数据处理方法中,在数据写入阶段,数据存储系统能响应写数据请求,向写数据请求所指示的、长度小于写入长度阈值的第一待写入文件中写入数据;在第一待写入文件的长度达到写入长度阈值时,数据存储系统能够将第一待写入文件置为只读状态,以备压缩,并创建第二待写入文件继续写入待写入数据。相对应的,在数据压缩阶段,数据存储系统能够对已处于只读状态的待压缩的文件进行压缩处理,得到包含有压缩后数据的文件。在数据读取阶段,能够基于地址映射关系表进行数据的查找和读取。因此,采用本申请实施例提供的方案,数据存储系统能够分别进行基于用户请求的数据写入过程与对数据的压缩处理过程,因此,在降低了存储成本的同时,仍然能够保障文件的读写效率,满足了用户的需求。
实施例5
与实施例1中提供的数据写入方法相对应的,本申请实施例还提供了一种数据写入装置,参见图8所示,该装置包括:
待写入文件确定模块101,用于当接收到写数据请求时,确定第一待写入文件,写数据请求中包含待写入数据;
第一数据写入模块103,用于向第一待写入文件中写入待写入数据;
监听模块105,用于监听第一待写入文件的长度;
监听结果处理模块107,用于若监听结果指示第一待写入文件的长度达到写入长度阈值,则将第一待写入文件置为只读状态,并创建第二待写入文件;
第二数据写入模块109,用于将待写入数据中尚未写入第一待写入文件的数据,写入第二待写入文件。
能够理解,上述数据写入装置,能够实现实施例1中数据写入方法的各个步骤,关于数据写入方法的相关阐释均适用于数据写入装置,此处不再赘述。
实施例6
与实施例2中提供的数据压缩方法相对应的,本申请实施例还提供了一种数据压缩装置,参见图9所示,该装置包括:
压缩处理模块201,用于对第一待压缩文件进行压缩处理,得到压缩处理后的数据;
第一压缩数据写入模块203,用于向第一压缩包文件中写入压缩处理后的数据;
监听模块205,用于监听第一压缩包文件的长度;
监听结果处理模块207,用于若监听结果指示第一压缩包文件的长度达到压缩长度阈值,则将第一压缩包文件置为只读状态,并创建第二压缩包文件;
第二压缩数据写入模块209,用于将压缩处理后的数据中尚未写入第一压缩包文件的数据,写入第二压缩包文件。
能够理解,上述数据压缩装置,能够实现实施例2中数据压缩方法的各个步骤,关于数据压缩方法的相关阐释均适用于数据压缩装置,此处不再赘述。
实施例7
与实施例3中提供的数据读取方法相对应的,本申请实施例还提供了一种数据读取装置,参见图10所示,该装置包括:
第一文件确定模块301,用于当接收到读数据请求时,确定待读取的第一文件,第一文件关联有第一文件物理地址信息;
读取解压模块303,用于若第一文件是压缩文件,则基于第一文件物理地址信息读取第一文件,并对第一文件进行解压处理,得到待读取数据;
数据返回模块305,用于返回待读取数据。
能够理解,上述数据读取装置,能够实现实施例3中数据读取方法的各个步骤,关于数据读取方法的相关阐释均适用于数据读取装置,此处不再赘述。
实施例8
与实施例4中提供的数据处理方法相对应的,本申请实施例还提供了一种数据处理装置,参见图11所示,该装置包括:
第一待写入文件确定模块401,用于当接收到写数据请求时,确定第一待写入文件,写数据请求中包含待写入数据;
数据写入模块403,用于向第一待写入文件中写入待写入数据;
第一监听模块405,用于监听第一待写入文件的长度;
第一监听结果处理模块407,用于若监听结果指示第一待写入文件的长度达到写入长度阈值,则将第一待写入文件置为只读状态,并将第一待写入文件的标识信息添加到压缩文件列表,以待压缩处理;
第一待压缩文件确定模块501,用于当压缩文件列表中存在待压缩的文件时,根据压缩文件列表,确定第一待压缩文件,第一待压缩文件为只读状态;
压缩处理模块503,用于获取第一待压缩文件,对第一待压缩文件进行压缩处理,得到压缩处理后的数据;
压缩数据写入模块505,用于向第一压缩包文件中写入压缩处理后的数据。
能够理解,上述数据处理装置,能够实现实施例4中数据处理方法的各个步骤,关于数据处理方法的相关阐释均适用于数据处理装置,也可以将数据处理装置理解为基于数据写入装置、数据压缩装置和数据读取装置合并得到,此处不再赘述。
实施例9
图12是本申请的一个实施例电子设备的结构示意图。请参考图12,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
可选的,处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据写入装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
当接收到写数据请求时,确定第一待写入文件,写数据请求中包含待写入数据;
向第一待写入文件中写入待写入数据,并监听第一待写入文件的长度;
若监听结果指示第一待写入文件的长度达到写入长度阈值,则将第一待写入文件置为只读状态,并创建第二待写入文件;
将待写入数据中尚未写入第一待写入文件的数据,写入第二待写入文件。
可选的,处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据压缩装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
对第一待压缩文件进行压缩处理,得到压缩处理后的数据;
向第一压缩包文件中写入压缩处理后的数据,并监听第一压缩包文件的长度;
若监听结果指示第一压缩包文件的长度达到压缩长度阈值,则将第一压缩包文件置为只读状态,并创建第二压缩包文件;
将压缩处理后的数据中尚未写入第一压缩包文件的数据,写入第二压缩包文件。
可选的,处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据读取装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
当接收到读数据请求时,确定待读取的第一文件,第一文件关联有第一文件物理地址信息;
若第一文件是压缩文件,则基于第一文件物理地址信息读取第一文件,并对第一文件进行解压处理,得到待读取数据;
返回待读取数据。
可选的,处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据处理装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
当接收到写数据请求时,确定第一待写入文件,写数据请求中包含待写入数据;
向第一待写入文件中写入待写入数据,并监听第一待写入文件的长度;
若监听结果指示第一待写入文件的长度达到写入长度阈值,则将第一待写入文件置为只读状态,并将第一待写入文件的标识信息添加到压缩文件列表,以待压缩处理;
当压缩文件列表中存在待压缩的文件时,根据压缩文件列表,确定第一待压缩文件,第一待压缩文件为只读状态;
获取第一待压缩文件,对第一待压缩文件进行压缩处理,得到压缩处理后的数据;
向第一压缩包文件中写入压缩处理后的数据。
上述如本申请图1所示实施例揭示的数据写入装置执行的方法,本申请图3所示实施例揭示的数据压缩装置执行的方法,本申请图5所示实施例揭示的数据读取装置执行的方法,或者本申请图7所示实施例揭示的数据处理装置执行的方法可以应用于处理器中,或者由处理器实现。
处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1中数据写入装置执行的方法,并实现数据写入装置在图1所示实施例的功能;或者,还可执行图3中数据压缩装置执行的方法,并实现数据压缩装置在图3所示实施例的功能;或者,还可执行图5中数据读取装置执行的方法,并实现数据读取装置在图5所示实施例的功能;或者,还可执行图7中数据处理装置执行的方法,并实现数据处理装置在图7所示实施例的功能。本申请实施例在此不再赘述。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图1所示实施例中数据写入装置执行的方法,并具体用于执行:
当接收到写数据请求时,确定第一待写入文件,写数据请求中包含待写入数据;
向第一待写入文件中写入待写入数据,并监听第一待写入文件的长度;
若监听结果指示第一待写入文件的长度达到写入长度阈值,则将第一待写入文件置为只读状态,并创建第二待写入文件;
将待写入数据中尚未写入第一待写入文件的数据,写入第二待写入文件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图3所示实施例中数据压缩装置执行的方法,并具体用于执行:
对第一待压缩文件进行压缩处理,得到压缩处理后的数据;
向第一压缩包文件中写入压缩处理后的数据,并监听第一压缩包文件的长度;
若监听结果指示第一压缩包文件的长度达到压缩长度阈值,则将第一压缩包文件置为只读状态,并创建第二压缩包文件;
将压缩处理后的数据中尚未写入第一压缩包文件的数据,写入第二压缩包文件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图5所示实施例中数据读取装置执行的方法,并具体用于执行:
当接收到读数据请求时,确定待读取的第一文件,第一文件关联有第一文件物理地址信息;
若第一文件是压缩文件,则基于第一文件物理地址信息读取第一文件,并对第一文件进行解压处理,得到待读取数据;
返回待读取数据。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图7所示实施例中数据处理装置执行的方法,并具体用于执行:
当接收到写数据请求时,确定第一待写入文件,写数据请求中包含待写入数据;
向第一待写入文件中写入待写入数据,并监听第一待写入文件的长度;
若监听结果指示第一待写入文件的长度达到写入长度阈值,则将第一待写入文件置为只读状态,并将第一待写入文件的标识信息添加到压缩文件列表,以待压缩处理;
当压缩文件列表中存在待压缩的文件时,根据压缩文件列表,确定第一待压缩文件,第一待压缩文件为只读状态;
获取第一待压缩文件,对第一待压缩文件进行压缩处理,得到压缩处理后的数据;
向第一压缩包文件中写入压缩处理后的数据。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (35)
1.一种数据写入方法,其中,所述方法包括:
当接收到写数据请求时,确定第一待写入文件,所述写数据请求中包含待写入数据;
向所述第一待写入文件中写入所述待写入数据,并监听所述第一待写入文件的长度;
若监听结果指示所述第一待写入文件的长度达到写入长度阈值,则将所述第一待写入文件置为只读状态,并创建第二待写入文件;
将所述待写入数据中尚未写入所述第一待写入文件的数据,写入所述第二待写入文件。
2.根据权利要求1所述方法,其中,在将所述第一待写入文件置为只读状态之后,所述方法还包括:
将所述第一待写入文件的标识信息添加到压缩文件列表,以待压缩处理。
3.根据权利要求1所述方法,其中,将所述待写入数据中尚未写入所述第一待写入文件的数据,写入所述第二待写入文件,包括:
向所述第二待写入文件中写入所述待写入数据中、尚未写入所述第一待写入文件的数据,并监听所述第二待写入文件的长度;
若监听结果指示所述第二待写入文件的长度达到所述写入长度阈值,则将所述第二待写入文件置为只读状态,并创建第三待写入文件,向所述第三待写入文件中写入所述待写入数据中、尚未写入所述第一待写入文件和所述第二待写入文件的数据。
4.根据权利要求1所述方法,其中,在确定第一待写入文件之后,所述方法还包括:
若所述第一待写入文件的长度不小于所述写入长度阈值,则将所述第一待写入文件置为只读状态;
将所述第一待写入文件的标识信息添加到压缩文件列表,以待压缩处理;
创建第四待写入文件,将所述待写入数据写入所述第四待写入文件。
5.根据权利要求1所述方法,其中,所述写数据请求中还包含所述待写入数据的逻辑地址信息,所述确定第一待写入文件包括:
根据地址映射关系表,确定与所述待写入数据逻辑地址信息相关联的第一待写入文件物理地址信息;
基于所述第一待写入文件物理地址信息,确定第一待写入文件。
6.根据权利要求5所述方法,其中,所述方法还包括:
若监听结果指示所述第一待写入文件的长度未达到所述写入长度阈值,则在将所述待写入数据写入所述第一待写入文件之后,将所述地址映射关系表中的第一待写入文件物理地址进行更新。
7.一种数据压缩方法,其中,所述方法包括:
对第一待压缩文件进行压缩处理,得到压缩处理后的数据;
向第一压缩包文件中写入所述压缩处理后的数据,并监听所述第一压缩包文件的长度;
若监听结果指示所述第一压缩包文件的长度达到压缩长度阈值,则将所述第一压缩包文件置为只读状态,并创建第二压缩包文件;
将所述压缩处理后的数据中尚未写入所述第一压缩包文件的数据,写入所述第二压缩包文件。
8.根据权利要求7所述方法,其中,在所述对第一待压缩文件进行压缩处理之前,所述方法还包括:
当压缩文件列表中存在待压缩的文件时,根据所述压缩文件列表,确定第一待压缩文件,所述第一待压缩文件为只读状态;
获取所述第一待压缩文件。
9.根据权利要求8所述方法,其中,所述待压缩的文件中包括有效数据和无效数据,所述根据所述压缩文件列表,确定第一待压缩文件,包括:
计算所述压缩文件列表中各待压缩的文件的无效数据比例,所述无效数据比例为待压缩的文件中无效数据的长度与该待压缩的文件的长度的比值;
将无效数据比例最高的待压缩的文件确定为第一待压缩文件。
10.根据权利要求9所述方法,其中,对第一待压缩文件进行压缩处理,包括:
对所述第一待压缩文件中的有效数据进行压缩处理。
11.根据权利要求10所述方法,其中,对所述第一待压缩文件中的有效数据进行压缩处理,包括:
对所述第一待压缩文件中的有效数据,采用定长压缩的方式进行压缩处理。
12.根据权利要求8所述方法,其中,所述压缩文件列表中存储有至少一个待压缩的文件的标识信息,所述获取所述第一待压缩文件,包括:
基于所述第一待压缩文件的标识信息,根据地址映射关系表,确定第一待压缩文件物理地址信息;
基于所述第一待压缩文件物理地址信息,获取所述第一待压缩文件。
13.根据权利要求12所述方法,其中,在向所述第一压缩包文件中写入所述压缩处理后的数据之后,所述方法还包括:
在所述地址映射关系表中,增加以下至少一种映射关系:
所述第一待压缩文件物理地址信息与第一压缩包文件物理地址信息之间的映射关系;
所述第一待压缩文件的标识信息与所述第一压缩包文件物理地址信息之间的映射关系;
所述第一待压缩文件的逻辑地址信息与所述第一压缩包文件物理地址信息之间的映射关系。
14.根据权利要求11所述方法,其中,在完成所述压缩处理后的数据的写入之后,所述方法还包括:
在所述压缩文件列表中删除所述第一待压缩文件的标识信息。
15.根据权利要求12所述方法,其中,所述方法还包括:
当所述压缩文件列表为空时,删除所述压缩文件列表中各待压缩的文件,释放所述各待压缩的文件的物理地址信息所对应的存储空间。
16.一种数据读取方法,其中,所述方法包括:
当接收到读数据请求时,确定待读取的第一文件,所述第一文件关联有第一文件物理地址信息;
若所述第一文件是压缩文件,则基于所述第一文件物理地址信息,读取所述第一文件,并对所述第一文件进行解压处理,得到待读取数据;
返回所述待读取数据。
17.根据权利要求16所述方法,其中,所述读数据请求中包含所述待读取数据的待读取数据逻辑地址信息,所述确定待读取的第一文件,包括:
根据地址映射关系表,确定与所述待读取数据逻辑地址信息相关联的第一文件物理地址信息;
将所述第一文件物理地址信息所关联的文件确定为待读取的第一文件。
18.根据权利要求16所述方法,其中,所述基于所述第一文件物理地址信息,读取所述第一文件,包括:
基于所述第一文件物理地址信息,根据地址映射关系表,确定所述第一文件物理地址信息相关联的文件存储地址信息;
读取存储在所述文件存储地址信息所对应存储空间上的所述第一文件。
19.根据权利要求16所述方法,其中,所述方法还包括:
若所述第一文件不是压缩文件,则读取存储在所述第一文件物理地址信息所对应存储空间中的所述第一文件,得到待读取数据。
20.一种数据处理方法,其中,所述方法包括:
当接收到写数据请求时,确定第一待写入文件,所述写数据请求中包含待写入数据;
向所述第一待写入文件中写入所述待写入数据,并监听所述第一待写入文件的长度;
若监听结果指示所述第一待写入文件的长度达到写入长度阈值,则将所述第一待写入文件置为只读状态,并将所述第一待写入文件的标识信息添加到压缩文件列表,以待压缩处理;
当所述压缩文件列表中存在待压缩的文件时,根据所述压缩文件列表,确定第一待压缩文件,所述第一待压缩文件为只读状态;
获取所述第一待压缩文件,对所述第一待压缩文件进行压缩处理,得到压缩处理后的数据;
向所述第一压缩包文件中写入所述压缩处理后的数据。
21.根据权利要求20所述方法,将所述第一待写入文件置为只读状态之后,所述方法还包括:
创建第二待写入文件;
将所述待写入数据中尚未写入所述第一待写入文件的数据,写入所述第二待写入文件。
22.根据权利要求20所述方法,其中,在向第一压缩包文件中写入所述压缩处理后的数据时,所述方法还包括:
监听所述第一压缩包文件的长度;
若第一压缩包文件的长度监听结果指示所述第一压缩包文件的长度达到所述压缩长度阈值,则将所述第一压缩包文件置为只读状态,并创建第二压缩包文件;
将所述压缩处理后的数据中尚未写入所述第一压缩包文件的数据,写入所述第二压缩包文件。
23.根据权利要求20所述方法,其中,所述方法还包括:
当接收到读数据请求时,确定待读取的第一文件,所述第一文件关联有第一文件物理地址信息;
若所述第一文件是压缩文件,则基于所述第一文件物理地址信息,读取所述第一文件,并对所述第一文件进行解压处理,得到待读取数据;
返回所述待读取数据。
24.一种数据写入装置,其中,所述装置包括:
待写入文件确定模块,用于当接收到写数据请求时,确定第一待写入文件,所述写数据请求中包含待写入数据;
第一数据写入模块,用于向所述第一待写入文件中写入所述待写入数据;
监听模块,用于监听所述第一待写入文件的长度;
监听结果处理模块,用于若监听结果指示所述第一待写入文件的长度达到写入长度阈值,则将所述第一待写入文件置为只读状态,并创建第二待写入文件;
第二数据写入模块,用于将所述待写入数据中尚未写入所述第一待写入文件的数据,写入所述第二待写入文件。
25.一种数据压缩装置,其中,所述装置包括:
压缩处理模块,用于对第一待压缩文件进行压缩处理,得到压缩处理后的数据;
第一压缩数据写入模块,用于向第一压缩包文件中写入所述压缩处理后的数据;
监听模块,用于监听所述第一压缩包文件的长度;
监听结果处理模块,用于若监听结果指示所述第一压缩包文件的长度达到压缩长度阈值,则将所述第一压缩包文件置为只读状态,并创建第二压缩包文件;
第二压缩数据写入模块,用于将所述压缩处理后的数据中尚未写入所述第一压缩包文件的数据,写入所述第二压缩包文件。
26.一种数据读取装置,其中,所述装置包括:
第一文件确定模块,用于当接收到读数据请求时,确定待读取的第一文件,所述第一文件关联有第一文件物理地址信息;
读取解压模块,用于若所述第一文件是压缩文件,则基于所述第一文件物理地址信息,读取所述第一文件,并对所述第一文件进行解压处理,得到待读取数据;
数据返回模块,用于返回所述待读取数据。
27.一种数据处理装置,其中,所述装置包括:
第一待写入文件确定模块,用于当接收到写数据请求时,确定第一待写入文件,所述写数据请求中包含待写入数据;
数据写入模块,用于向所述第一待写入文件中写入所述待写入数据;
第一监听模块,用于监听所述第一待写入文件的长度;
第一监听结果处理模块,用于若监听结果指示所述第一待写入文件的长度达到写入长度阈值,则将所述第一待写入文件置为只读状态,并将所述第一待写入文件的标识信息添加到压缩文件列表,以待压缩处理;
第一待压缩文件确定模块,用于当所述压缩文件列表中存在待压缩的文件时,根据所述压缩文件列表,确定第一待压缩文件,所述第一待压缩文件为只读状态;
压缩处理模块,用于获取所述第一待压缩文件,对所述第一待压缩文件进行压缩处理,得到压缩处理后的数据;
压缩数据写入模块,用于向所述第一压缩包文件中写入所述压缩处理后的数据。
28.一种电子设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
当接收到写数据请求时,确定第一待写入文件,所述写数据请求中包含待写入数据;
向所述第一待写入文件中写入所述待写入数据,并监听所述第一待写入文件的长度;
若监听结果指示所述第一待写入文件的长度达到写入长度阈值,则将所述第一待写入文件置为只读状态,并创建第二待写入文件;
将所述待写入数据中尚未写入所述第一待写入文件的数据,写入所述第二待写入文件。
29.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
当接收到写数据请求时,确定第一待写入文件,所述写数据请求中包含待写入数据;
向所述第一待写入文件中写入所述待写入数据,并监听所述第一待写入文件的长度;
若监听结果指示所述第一待写入文件的长度达到写入长度阈值,则将所述第一待写入文件置为只读状态,并创建第二待写入文件;
将所述待写入数据中尚未写入所述第一待写入文件的数据,写入所述第二待写入文件。
30.一种电子设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
对第一待压缩文件进行压缩处理,得到压缩处理后的数据;
向第一压缩包文件中写入所述压缩处理后的数据,并监听所述第一压缩包文件的长度;
若监听结果指示所述第一压缩包文件的长度达到压缩长度阈值,则将所述第一压缩包文件置为只读状态,并创建第二压缩包文件;
将所述压缩处理后的数据中尚未写入所述第一压缩包文件的数据,写入所述第二压缩包文件。
31.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
对第一待压缩文件进行压缩处理,得到压缩处理后的数据;
向第一压缩包文件中写入所述压缩处理后的数据,并监听所述第一压缩包文件的长度;
若监听结果指示所述第一压缩包文件的长度达到压缩长度阈值,则将所述第一压缩包文件置为只读状态,并创建第二压缩包文件;
将所述压缩处理后的数据中尚未写入所述第一压缩包文件的数据,写入所述第二压缩包文件。
32.一种电子设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
当接收到读数据请求时,确定待读取的第一文件,所述第一文件关联有第一文件物理地址信息;
若所述第一文件是压缩文件,则基于所述第一文件物理地址信息,读取所述第一文件,并对所述第一文件进行解压处理,得到待读取数据;
返回所述待读取数据。
33.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
当接收到读数据请求时,确定待读取的第一文件,所述第一文件关联有第一文件物理地址信息;
若所述第一文件是压缩文件,则基于所述第一文件物理地址信息,读取所述第一文件,并对所述第一文件进行解压处理,得到待读取数据;
返回所述待读取数据。
34.一种电子设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
当接收到写数据请求时,确定第一待写入文件,所述写数据请求中包含待写入数据;
向所述第一待写入文件中写入所述待写入数据,并监听所述第一待写入文件的长度;
若监听结果指示所述第一待写入文件的长度达到写入长度阈值,则将所述第一待写入文件置为只读状态,并将所述第一待写入文件的标识信息添加到压缩文件列表,以待压缩处理;
当所述压缩文件列表中存在待压缩的文件时,根据所述压缩文件列表,确定第一待压缩文件,所述第一待压缩文件为只读状态;
获取所述第一待压缩文件,对所述第一待压缩文件进行压缩处理,得到压缩处理后的数据;
向所述第一压缩包文件中写入所述压缩处理后的数据。
35.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
当接收到写数据请求时,确定第一待写入文件,所述写数据请求中包含待写入数据;
向所述第一待写入文件中写入所述待写入数据,并监听所述第一待写入文件的长度;
若监听结果指示所述第一待写入文件的长度达到写入长度阈值,则将所述第一待写入文件置为只读状态,并将所述第一待写入文件的标识信息添加到压缩文件列表,以待压缩处理;
当所述压缩文件列表中存在待压缩的文件时,根据所述压缩文件列表,确定第一待压缩文件,所述第一待压缩文件为只读状态;
获取所述第一待压缩文件,对所述第一待压缩文件进行压缩处理,得到压缩处理后的数据;
向所述第一压缩包文件中写入所述压缩处理后的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811032397.7A CN110879800B (zh) | 2018-09-05 | 2018-09-05 | 数据写入、压缩和读取方法、数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811032397.7A CN110879800B (zh) | 2018-09-05 | 2018-09-05 | 数据写入、压缩和读取方法、数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110879800A true CN110879800A (zh) | 2020-03-13 |
CN110879800B CN110879800B (zh) | 2023-08-18 |
Family
ID=69727781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811032397.7A Active CN110879800B (zh) | 2018-09-05 | 2018-09-05 | 数据写入、压缩和读取方法、数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110879800B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813076A (zh) * | 2020-06-23 | 2020-10-23 | 深圳市元征科技股份有限公司 | 车辆ecu刷写方法、设备、车辆ecu及存储介质 |
CN111831618A (zh) * | 2020-07-21 | 2020-10-27 | 北京青云科技股份有限公司 | 数据写入方法、数据读取方法、装置、设备及存储介质 |
CN111966845A (zh) * | 2020-08-31 | 2020-11-20 | 重庆紫光华山智安科技有限公司 | 图片管理方法、装置、存储节点及存储介质 |
CN112599172A (zh) * | 2020-12-24 | 2021-04-02 | 潍柴动力股份有限公司 | 电子控制单元的数据写入方法、装置及存储介质 |
CN112925758A (zh) * | 2021-02-05 | 2021-06-08 | 深圳市优必选科技股份有限公司 | 生成压缩包的方法、装置及终端设备 |
CN113360093A (zh) * | 2021-06-03 | 2021-09-07 | 锐掣(杭州)科技有限公司 | 内存系统和设备 |
CN113377386A (zh) * | 2021-06-23 | 2021-09-10 | 支付宝(杭州)信息技术有限公司 | 一种无解压的安装包安装方法、装置以及设备 |
CN113641643A (zh) * | 2021-07-02 | 2021-11-12 | 阿里巴巴新加坡控股有限公司 | 文件写入方法及装置 |
WO2022206144A1 (zh) * | 2021-03-30 | 2022-10-06 | 华为技术有限公司 | 数据压缩方法及装置 |
CN115396517A (zh) * | 2022-08-16 | 2022-11-25 | 广东电网有限责任公司 | 北斗通信数据的处理方法、装置、终端设备及存储介质 |
CN116827682A (zh) * | 2023-08-23 | 2023-09-29 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置及计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100142701A1 (en) * | 2008-12-05 | 2010-06-10 | Smith Micro Software, Inc. | Efficient full or partial duplicate fork detection and archiving |
CN102006081A (zh) * | 2010-12-01 | 2011-04-06 | 南京工业大学 | 智能楼宇中海量能耗信息的压缩方法 |
CN103699585A (zh) * | 2013-12-06 | 2014-04-02 | 华为技术有限公司 | 文件的元数据存储以及文件恢复的方法、装置和系统 |
CN103902467A (zh) * | 2012-12-26 | 2014-07-02 | 华为技术有限公司 | 压缩内存访问控制方法、装置及系统 |
-
2018
- 2018-09-05 CN CN201811032397.7A patent/CN110879800B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100142701A1 (en) * | 2008-12-05 | 2010-06-10 | Smith Micro Software, Inc. | Efficient full or partial duplicate fork detection and archiving |
CN102006081A (zh) * | 2010-12-01 | 2011-04-06 | 南京工业大学 | 智能楼宇中海量能耗信息的压缩方法 |
CN103902467A (zh) * | 2012-12-26 | 2014-07-02 | 华为技术有限公司 | 压缩内存访问控制方法、装置及系统 |
CN103699585A (zh) * | 2013-12-06 | 2014-04-02 | 华为技术有限公司 | 文件的元数据存储以及文件恢复的方法、装置和系统 |
Non-Patent Citations (2)
Title |
---|
SUNGYONG AHN ET AL: "A compressed file system manager for flash memory based consumer electronics devices" * |
祝君 等: "实时历史数据库中压缩技术的并行化研究" * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813076A (zh) * | 2020-06-23 | 2020-10-23 | 深圳市元征科技股份有限公司 | 车辆ecu刷写方法、设备、车辆ecu及存储介质 |
CN111831618A (zh) * | 2020-07-21 | 2020-10-27 | 北京青云科技股份有限公司 | 数据写入方法、数据读取方法、装置、设备及存储介质 |
CN111966845B (zh) * | 2020-08-31 | 2023-11-17 | 重庆紫光华山智安科技有限公司 | 图片管理方法、装置、存储节点及存储介质 |
CN111966845A (zh) * | 2020-08-31 | 2020-11-20 | 重庆紫光华山智安科技有限公司 | 图片管理方法、装置、存储节点及存储介质 |
CN112599172A (zh) * | 2020-12-24 | 2021-04-02 | 潍柴动力股份有限公司 | 电子控制单元的数据写入方法、装置及存储介质 |
CN112599172B (zh) * | 2020-12-24 | 2024-05-17 | 潍柴动力股份有限公司 | 电子控制单元的数据写入方法、装置及存储介质 |
CN112925758A (zh) * | 2021-02-05 | 2021-06-08 | 深圳市优必选科技股份有限公司 | 生成压缩包的方法、装置及终端设备 |
WO2022206144A1 (zh) * | 2021-03-30 | 2022-10-06 | 华为技术有限公司 | 数据压缩方法及装置 |
CN113360093A (zh) * | 2021-06-03 | 2021-09-07 | 锐掣(杭州)科技有限公司 | 内存系统和设备 |
CN113377386A (zh) * | 2021-06-23 | 2021-09-10 | 支付宝(杭州)信息技术有限公司 | 一种无解压的安装包安装方法、装置以及设备 |
CN113377386B (zh) * | 2021-06-23 | 2022-10-18 | 支付宝(杭州)信息技术有限公司 | 一种无解压的安装包安装方法、装置以及设备 |
CN113641643A (zh) * | 2021-07-02 | 2021-11-12 | 阿里巴巴新加坡控股有限公司 | 文件写入方法及装置 |
CN115396517A (zh) * | 2022-08-16 | 2022-11-25 | 广东电网有限责任公司 | 北斗通信数据的处理方法、装置、终端设备及存储介质 |
CN116827682A (zh) * | 2023-08-23 | 2023-09-29 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置及计算机设备 |
CN116827682B (zh) * | 2023-08-23 | 2023-11-24 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110879800B (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110879800A (zh) | 数据写入、压缩和读取方法、数据处理方法及装置 | |
JP6316974B2 (ja) | フラッシュメモリ圧縮 | |
WO2020041928A1 (zh) | 数据存储方法、系统及终端设备 | |
CN110555001B (zh) | 数据处理方法、装置、终端及介质 | |
US11151155B2 (en) | Memory use in a distributed index and query system | |
US9727479B1 (en) | Compressing portions of a buffer cache using an LRU queue | |
WO2022233272A1 (zh) | 缓存内存块的淘汰方法、装置及电子设备 | |
WO2014188528A1 (ja) | メモリ装置、計算機システム及びメモリ装置の制御方法 | |
US10649967B2 (en) | Memory object pool use in a distributed index and query system | |
US20190220443A1 (en) | Method, apparatus, and computer program product for indexing a file | |
CN111880731B (zh) | 一种数据处理方法、装置及相关组件 | |
CN111143285A (zh) | 一种小文件存储文件系统以及小文件处理方法 | |
CN115617878B (zh) | 一种数据查询方法、系统、装置、设备及计算机存储介质 | |
WO2024082787A1 (zh) | 一种创建表空间的方法、装置、存储介质及电子设备 | |
CN113835639B (zh) | 一种i/o请求处理方法、装置、设备及可读存储介质 | |
US6279092B1 (en) | Kernel identification for space management in compressed memory systems | |
CN108132759B (zh) | 一种文件系统中管理数据的方法和装置 | |
WO2021179170A1 (zh) | 数据推送方法、装置、服务器及存储介质 | |
WO2023193528A1 (zh) | 文件解压方法、装置、电子设备及计算机可读存储介质 | |
CN115454353B (zh) | 一种面向空间应用数据的高速写入及查询方法 | |
CN112711564A (zh) | 合并处理方法以及相关设备 | |
CN113434489B (zh) | 一种实时数据库在线扩容方法、系统、设备及存储介质 | |
CN112748854B (zh) | 对快速存储设备的优化访问 | |
CN115905146A (zh) | 数据处理方法、装置、计算设备及存储系统 | |
US6804754B1 (en) | Space management in compressed main memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |