CN113590051A - 数据存储和读取方法、装置、电子设备及介质 - Google Patents
数据存储和读取方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN113590051A CN113590051A CN202111148086.9A CN202111148086A CN113590051A CN 113590051 A CN113590051 A CN 113590051A CN 202111148086 A CN202111148086 A CN 202111148086A CN 113590051 A CN113590051 A CN 113590051A
- Authority
- CN
- China
- Prior art keywords
- original data
- block
- storage device
- data block
- read
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本公开实施例公开了一种数据存储和读取方法、装置、电子设备及介质,所述数据存储方法包括:至少根据存储设备的读取粒度确定原始数据块,使得对所述原始数据块进行压缩得到的压缩块的长度小于或等于所述读取粒度;对所述原始数据块进行压缩,得到压缩块;在所述存储设备中存储所述压缩块。
Description
技术领域
本公开涉及数据存储技术领域,具体涉及一种数据存储和读取方法、装置、电子设备及介质。
背景技术
数据压缩可以显著减少存储的数据量,有利于延长存储设备的寿命和增加存储设备的等效容量。在进行数据存储时,将原始数据压缩为压缩数据并存储在存储设备中,在进行数据读取时,从存储设备读取所需原始数据对应的压缩数据进行解压缩等操作,以得到所需的原始数据。
发明内容
为了解决相关技术中的问题,本公开实施例提供一种数据存储和读取方法、装置、电子设备及介质。
第一方面,本公开实施例中提供了一种数据存储和读取方法。
具体地,所述数据存储方法,包括:
至少根据存储设备的读取粒度确定原始数据块,使得对所述原始数据块进行压缩得到的压缩块的长度小于或等于所述读取粒度;
对所述原始数据块进行压缩,得到压缩块;
在所述存储设备中存储所述压缩块。
结合第一方面,本公开在第一方面的第一种实现方式中,所述至少根据存储设备的读取粒度确定原始数据块,包括:
至少根据存储设备的读取粒度确定原始数据块的目标长度;
从原始数据截取长度小于或等于所述目标长度的数据作为所述原始数据块,或者从多个候选原始数据块中,选择长度小于或等于所述目标长度的候选原始数据块作为所述原始数据块。
结合第一方面的第一种实现方式,本公开在第一方面的第二种实现方式中,所述至少根据存储设备的读取粒度确定原始数据块的目标长度,包括:
将所述原始数据块的目标长度设置为所述存储设备的读取粒度;或者
根据所述存储设备的读取粒度和所述原始数据块的预测压缩比,确定所述原始数据块的目标长度;或者
根据所述存储设备的读取粒度和所述存储设备中已存储的数据确定所述目标长度;或者
根据所述存储设备的读取粒度、所述存储设备中已存储的数据,以及所述原始数据块的预测压缩比,确定所述原始数据块的目标长度。
结合第一方面,本公开在第一方面的第三种实现方式中,所述至少根据存储设备的读取粒度确定原始数据块,包括:
读取缓冲区中存储的原始数据作为所述原始数据块,所述缓冲区的大小等于或小于所述读取粒度。
结合第一方面的第三种实现方式,本公开在第一方面的第四种实现方式中,还包括:
将长度等于所述缓冲区大小的原始数据读入所述缓冲区;
其中,所述读取缓冲区中存储的原始数据作为所述原始数据块,包括:从所述缓冲区取出全部所述原始数据作为所述原始数据块,或者从所述缓冲区取出部分所述原始数据作为所述原始数据块。
结合第一方面的第四种实现方式,本公开在第一方面的第五种实现方式中,还包括:
在所述缓冲区中的原始数据被全部取出之后,将长度等于所述缓冲区大小的其他原始数据读入所述缓冲区。
结合第一方面,本公开在第一方面的第六种实现方式中,所述在所述存储设备中存储所述压缩块,包括:
在所述存储设备的物理页面中存储多个所述压缩块,所述物理页面的大小等于所述读取粒度。
结合第一方面的第六种实现方式,本公开在第一方面的第七种实现方式中,所述方法还包括:
存储所述原始数据块与物理页面的对应关系;
在所述物理页面中存储所述原始数据块对应的压缩块的存储位置信息。
第二方面,本公开实施例中提供了一种数据读取方法,包括:
根据原始数据块与存储设备中物理页面的对应关系,确定存储所述原始数据块对应的压缩块的物理页面,所述压缩块的长度不大于所述存储设备的读取粒度;
读取所述物理页面的数据,根据所述物理页面的数据确定所述压缩块的存储位置信息;
根据所述存储位置信息,从所述物理页面的数据读取所述压缩块。
结合第二方面,本公开在第二方面的第一种实现方式中,所述物理页面存储一个或多个压缩块,所述物理页面的大小等于所述存储设备的读取粒度。
结合第二方面,本公开在第二方面的第二种实现方式中,所述方法还包括:对所述压缩块解压缩,得到所述原始数据块。
第三方面,本公开实施例中提供了一种数据存储和读取装置。
具体地,所述数据存储装置,包括:
第一确定模块,被配置为至少根据存储设备的读取粒度确定原始数据块,使得对所述原始数据块进行压缩得到的压缩块的长度小于或等于所述读取粒度;
压缩模块,被配置为对所述原始数据块进行压缩,得到压缩块;
第一存储模块,被配置为在所述存储设备中存储所述压缩块。
结合第三方面,本公开在第三方面的第一种实现方式中,所述至少根据存储设备的读取粒度确定原始数据块,包括:
至少根据存储设备的读取粒度确定原始数据块的目标长度;
从原始数据截取长度小于或等于所述目标长度的数据作为所述原始数据块,或者从多个候选原始数据块中,选择长度小于或等于所述目标长度的候选原始数据块作为所述原始数据块。
结合第三方面的第一种实现方式,本公开在第三方面的第二种实现方式中,所述至少根据存储设备的读取粒度确定原始数据块的目标长度,包括:
将所述原始数据块的目标长度设置为所述存储设备的读取粒度;或者
根据所述存储设备的读取粒度和所述原始数据块的预测压缩比,确定所述原始数据块的目标长度;或者
根据所述存储设备的读取粒度和所述存储设备中已存储的数据确定所述目标长度;或者
根据所述存储设备的读取粒度、所述存储设备中已存储的数据,以及所述原始数据块的预测压缩比,确定所述原始数据块的目标长度。
结合第三方面,本公开在第三方面的第三种实现方式中,所述至少根据存储设备的读取粒度确定原始数据块,包括:
读取缓冲区中存储的原始数据作为所述原始数据块,所述缓冲区的大小等于或小于所述读取粒度。
结合第三方面的第三种实现方式,本公开在第三方面的第四种实现方式中,还包括:
第一读入模块,被配置为将长度等于所述缓冲区大小的原始数据读入所述缓冲区;
其中,所述读取缓冲区中存储的原始数据作为所述原始数据块,包括:从所述缓冲区取出全部所述原始数据作为所述原始数据块,或者从所述缓冲区取出部分所述原始数据作为所述原始数据块。
结合第三方面的第四种实现方式,本公开在第三方面的第五种实现方式中,还包括:
第二读入模块,被配置为在所述缓冲区中的原始数据被全部取出之后,将长度等于所述缓冲区大小的其他原始数据读入所述缓冲区。
结合第三方面,本公开在第三方面的第六种实现方式中,所述在所述存储设备中存储所述压缩块,包括:
在所述存储设备的物理页面中存储多个所述压缩块,所述物理页面的大小等于所述读取粒度。
结合第三方面的第六种实现方式,本公开在第三方面的第七种实现方式中,所述装置还包括:
第二存储模块,被配置为存储所述原始数据块与物理页面的对应关系;
第三存储模块,被配置为在所述物理页面中存储所述原始数据块对应的压缩块的存储位置信息。
第四方面,本公开实施例中提供了一种数据读取装置,包括:
第二确定模块,被配置为根据原始数据块与存储设备中物理页面的对应关系,确定存储所述原始数据块对应的压缩块的物理页面,所述压缩块的长度不大于所述存储设备的读取粒度;
第一读取模块,被配置为读取所述物理页面的数据,根据所述物理页面的数据确定所述压缩块的存储位置信息;
第二读取模块,被配置为根据所述存储位置信息,从所述物理页面的数据读取所述压缩块。
结合第四方面,本公开在第四方面的第一种实现方式中,所述物理页面存储一个或多个压缩块,所述物理页面的大小等于所述存储设备的读取粒度。
结合第四方面,本公开在第四方面的第二种实现方式中,所述装置还包括:解压缩模块,被配置为对所述压缩块解压缩,得到所述原始数据块。
第五方面,本公开实施例提供了一种电子设备,包括存储器和处理器,其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如第一方面至第二方面第二种实现方式中任一项所述的方法。
第六方面,本公开实施例中提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如第一方面至第二方面第二种实现方式中所述的方法。
第七方面,本公开实施例中提供了一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现如第一方面至第二方面第二种实现方式中所述的方法步骤。
根据本公开实施例提供的技术方案,在进行数据读取时读取的压缩块的数据量显著减少,不需要进行压缩片段的拼接,且丢弃的数据量显著减少,因此,本公开实施例的技术方案有效解决了读取放大问题,减小了系统资源消耗,提高了读取效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。以下是对附图的说明。
图1示出了根据一种可行的数据压缩和存储方案的原理框图。
图2A示出了根据本公开实施例的数据存储方法。
图2B示出了根据本公开实施例的数据压缩和存储方案的原理框图。
图3A示出了根据本公开实施例使用缓冲区实现数据压缩和存储方案的原理框图。
图3B示出了一种可行的数据压缩和存储方案与根据本公开实施例的元数据映射的对比示意图。
图3C示出了根据本公开实施例在一个物理页面中存储的数据的示意图。
图4示出了根据本公开实施例的数据读取方法的流程图。
图5A示出根据本公开的实施例的数据存储装置的结构框图。
图5B示出根据本公开的实施例的数据读取装置的结构框图。
图6示出根据本公开的实施例的电子设备的结构框图。
图7示出适于用来实现根据本公开实施例的方法的计算机系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开的示例性实施例,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施例无关的部分。
在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
在提出本公开的过程中,发明人发现,一种可行的数据存储方案是取固定长度的原始数据块,经过压缩生成可变长度的压缩块,然后,将压缩得到的压缩块切割成长度为读取粒度(例如4KB或16KB)的片段以匹配文件系统的要求和存储设备的物理页面大小。
由于切割压缩块得到的最后一个片段的长度通常小于读取粒度,因此需要填充虚拟数据使其长度等于读取粒度。为了减少填充比特的数量从而减少存储空间浪费,压缩引擎的输入原始数据块通常比较大,因此压缩块覆盖了多个读取粒度。但是,当只请求读取原始数据块中的少量数据时,例如,当请求读取128KB原始数据块中的4KB数据时,也必须读出压缩块的所有片段,将这些片段进行连接和解压缩以得到原始数据块,然后,从原始数据块中取出请求的少量数据发送给用户,其余数据被丢弃,这就导致了读取放大问题。
图1示出了根据一种可行的数据压缩和存储方案的原理框图。
如图1所示,压缩引擎1和压缩引擎2分别对定长的原始数据块A和原始数据块B进行压缩,得到压缩块A1和B1。存储设备控制器将压缩块A1切割为长度等于存储设备的读取粒度的片段A11、A12……,将压缩块B1切割为长度等于存储设备的读取粒度的片段B11、B12……,然后,根据预设的调度方案,通过存储通道Ch1、Ch2……ChN,将这些片段存储到存储设备中。例如,在存储设备为SSD(Solid State Drive,固态硬盘)时,不同存储通道可以对应于不同的物理页面,SSD控制器根据存储通道的当前负荷、物理页面的可用状态等,选择不同的存储通道。
根据本公开的实施例,根据读取粒度从存储设备中读取数据,每次读取的数据长度等于读取粒度。例如,在存储设备为SSD时,读取粒度等于SSD的物理页面大小,即,在读取SSD中的数据时,每次读取一个物理页面中的全部数据,而不能仅读取一个物理单元中的部分数据。另外,在对压缩块解压缩时,需要对完整的压缩块解压缩,而不能对压缩块的片段解压缩。因此,假设现在需要读取原始数据块A中的少量数据a,则需要将压缩块A1的全部片段都读取出来,连接这些片段得到压缩块A1,对A1解压缩,得到原始数据块A,再从原始数据块A中获得数据a,而原始数据块A中的其他数据被丢弃。显然,这会造成系统资源的极大浪费,且读取效率不高。
图2A示出了根据本公开实施例的数据存储方法,包括步骤S101-S103。
在步骤S101,至少根据存储设备的读取粒度确定原始数据块,使得对所述原始数据块进行压缩得到的压缩块的长度小于或等于所述读取粒度。
在步骤S102,对所述原始数据块进行压缩,得到压缩块。
在步骤S103,在所述存储设备中存储所述压缩块。
根据本公开的实施例,原始数据块是压缩之前的数据块。将原始数据块输入压缩引擎进行压缩,可以得到压缩块,然后将压缩块存储在存储设备中。通过至少根据存储设备的读取粒度确定原始数据块,可以使得对所述原始数据块进行压缩得到的压缩块的长度小于或等于所述读取粒度。
当从存储设备读取数据时,读取所需的原始数据对应的压缩块。由于压缩块的长度小于或等于存储设备的读取粒度,每次可以读取总长度为读取粒度的一个或多个压缩块,对其进行解压缩,即可获得所需数据,而无需读取多个长度分别为读取粒度的压缩块片段,对这些片段进行拼接得到完整的压缩块,对其进行解压缩得到原始数据块,再从原始数据块取出所需数据并丢弃其余数据。显然,根据本公开实施例的数据存储和读取方法能有效解决读取放大问题,节约系统资源,提高读取效率。
例如,使用上文所述的一种可行的数据压缩和存储方案,假设原始数据块长度为508KB,压缩比为4,则压缩块长度为508/4=127KB,按照读取粒度16KB将其分割为8个片段进行存储,每个片段长度为16KB,其中第8个片段需要添加1KB的虚拟数据。当读取原始数据块中的6KB数据时,需要把8个16KB片段都读取出来,去掉1KB的虚拟数据后拼接成长度为127KB的压缩块,对其解压缩得到508KB的原始数据块,从508KB的原始数据块取出所需的6KB数据,丢弃其余的502KB数据。
作为对比,利用本公开的技术方案,先将原始数据块分为七个长度为64KB和一个长度为60KB的原始数据块,假设压缩比为4,则可以分别压缩得到七个长度为16KB的压缩块和一个长度为15KB的压缩块。当读取原始数据块中的6KB数据时,可以先定位该6KB数据对应的压缩块(假设其对应于第4个长度为16KB的压缩块),读取该压缩块并解压缩得到64KB的原始数据,从其中取出所需的6KB数据,并丢弃其余的58KB数据。
通过以上示例可以看出,根据本公开实施例的方案在进行数据读取时读取的压缩块的数据量显著减少,不需要进行压缩片段的拼接,且丢弃的数据量显著减少,因此,本公开实施例的技术方案有效解决了读取放大问题,减小了系统资源消耗,提高了读取效率。
图2B示出了根据本公开实施例的数据压缩和存储方案的原理框图。
如图2B所示,至少根据存储设备的读取粒度确定原始数据块A、B、C、D、E,原始数据块A、B、C、D、E的长度使得压缩得到的对应压缩块a、b、c、d、e的长度不大于存储设备的读取粒度。存储设备控制器根据压缩块的长度将压缩块存储为压缩块组,每个压缩块组的数据长度小于或等于读取粒度。例如,假设读取粒度为16KB,压缩块a、b、c的总长度为16KB,因此可以将压缩块a、b、c作为一个压缩块组进行存储。压缩块d、e的总长度为15KB,可以将压缩块d、e作为一个压缩块组进行存储。在读取数据时,整个压缩块组的数据被一起读取。
根据本公开的实施例,在SSD中,物理页面的大小与读取粒度相同,因此可以将一个压缩块组存储在一个物理页面中,在读取数据时,每次读取一个物理页面存储的数据,即整个压缩块组的数据被一起读取。
根据本公开的实施例,所述至少根据存储设备的读取粒度确定原始数据块,包括:
至少根据存储设备的读取粒度确定原始数据块的目标长度;
从原始数据截取长度小于或等于所述目标长度的数据作为所述原始数据块,或者从多个候选原始数据块中,选择长度小于或等于所述目标长度的候选原始数据块作为所述原始数据块。
例如,如图2B所示,可以将原始数据块的目标长度确定为小于或等于存储设备的读取粒度。然后,从原始数据截取长度小于或等于目标长度的数据作为原始数据块。例如,可以从原始数据截取长度小于或等于目标长度的原始数据块A和E进行压缩。或者,如果原始数据本身的长度小于或等于目标长度,则可以将整个原始数据作为一个原始数据块。或者,如果原始数据已经按照预设分割规则分割为多个数据块,则可以将这些数据块作为候选原始数据块,在其中选择长度小于或等于目标长度的候选原始数据块作为原始数据块输入压缩引擎。
根据本公开的实施例,所述至少根据存储设备的读取粒度确定原始数据块的目标长度,包括:
将所述原始数据块的目标长度设置为所述存储设备的读取粒度;或者
根据所述存储设备的读取粒度和所述原始数据块的预测压缩比,确定所述原始数据块的目标长度;或者
根据所述存储设备的读取粒度和所述存储设备中已存储的数据确定所述目标长度;或者
根据所述存储设备的读取粒度、所述存储设备中已存储的数据,以及所述原始数据块的预测压缩比,确定所述原始数据块的目标长度。
根据本公开的实施例,将所述原始数据块的目标长度设置为所述存储设备的读取粒度,由于压缩块的大小小于原始数据块,因此可以使得压缩得到的压缩块的大小不大于读取粒度,从而可以保证每次读取都能读取到完整的压缩块,从而可以直接对压缩块进行解压缩而无需进行压缩块的片段拼接等操作,节约了系统资源,提高了读取效率。
或者,可以根据所述存储设备的读取粒度和所述原始数据块的预测压缩比,确定所述原始数据块的目标长度。
例如,可以将原始数据块的目标长度设置为等于读取粒度乘以预测压缩比。根据本公开的实施例,可以根据压缩方法,基于经验确定预测压缩比,也可以将压缩引擎最近的压缩比作为预测压缩比。
假设读取粒度为16KB,预测压缩比为5,则可以将目标长度设置为16KB*5=80KB。这样,当压缩80KB的原始数据块时,得到长度为16KB的压缩块,与读取粒度相等。在读取压缩块时,可以一次将16KB压缩块读出并解压缩,而无需进行压缩块的片段拼接等操作,节约了系统资源,提高了读取效率。
或者,可以根据所述存储设备的读取粒度和所述存储设备中已存储的数据确定所述目标长度。例如,如上所述,多个压缩块可以作为一个压缩块组存储,压缩块组的长度小于或等于读取粒度,在读取数据时,整个压缩块组的数据被一起读取。如果任一压缩块组的总长度小于读取粒度,则可以在该压缩块组中存储更多的压缩块。即,针对总长度小于读取粒度的压缩块组,可以将待压缩的原始数据块的目标长度确定为存储设备的读取粒度和压缩块组的总长度的差值。对小于等于该目标长度的原始数据块压缩得到的压缩块的长度小于该差值,从而可以存储到该压缩块组中。
例如,SSD的读取粒度为16KB,其物理页面大小等于读取粒度。假设在SSD的一个物理页面中存储的压缩块组的总长度为10KB,则可以将目标长度设置为16KB-10KB=6KB。对小于等于6KB的原始数据块压缩得到的压缩块的长度小于6KB,例如为1.2KB,从而可以存储到该物理页面中。
或者,可以根据所述存储设备的读取粒度、所述存储设备中已存储的数据,以及所述原始数据块的预测压缩比,确定所述原始数据块的目标长度。例如,如上所述,多个压缩块可以作为一个压缩块组存储,压缩块组的长度小于或等于读取粒度。如果任一压缩块组的总长度小于读取粒度,则可以在该压缩块组中存储更多的压缩块。即,针对总长度小于读取粒度的压缩块组,可以将待压缩的原始数据块的目标长度确定为存储设备的读取粒度和压缩块组的总长度的差值乘以预测压缩比。对小于等于该目标长度的原始数据块压缩得到的压缩块的长度小于该差值,从而可以存储到该压缩块组中。
例如,SSD的读取粒度为16KB,其物理页面大小等于读取粒度。假设在SSD的一个物理页面中存储的压缩块组的总长度为10KB,预测压缩比为5,则可以将目标长度设置为(16KB-10KB)*5=30KB。对小于等于30KB的原始数据块压缩得到的压缩块的长度小于等于6KB,例如为4.9KB,从而可以存储到该物理页面中。
图3A示出了根据本公开实施例使用缓冲区实现数据压缩和存储方案的原理框图。
根据本公开的实施例,所述至少根据存储设备的读取粒度确定原始数据块,包括:
读取缓冲区中存储的原始数据作为所述原始数据块,所述缓冲区的大小等于或小于所述读取粒度。
如图3A所示,提供大小等于或小于读取粒度的缓冲区,每次从原始数据读取长度等于读取粒度的数据到缓存区中。例如,假设读取粒度为16KB,则可以将缓冲区的大小设置为小于或等于16KB,例如设置为等于16KB。读取缓冲区中存储的原始数据作为所述原始数据块,由于从缓冲区中读取的原始数据块的长度小于或等于读取粒度,因此,对该原始数据块进行压缩得到的压缩块的长度小于读取粒度16KB。通过使用缓冲区,可以确保原始数据块的长度不大于读取粒度,压缩得到的压缩块的长度小于读取粒度。
根据本公开的实施例,所述数据存储方法还包括:
将长度等于所述缓冲区大小的原始数据读入所述缓冲区;
其中,所述读取缓冲区中存储的原始数据作为所述原始数据块,包括:从所述缓冲区取出全部所述原始数据作为所述原始数据块,或者从所述缓冲区取出部分所述原始数据作为所述原始数据块。
例如,如图3A所示,每次将长度等于缓冲区大小的原始数据读入所述缓冲区。例如,假设缓冲区大小为16KB,则每次将16KB原始数据读入缓冲区。然后,可以例如使用图3A所示的分区器,根据存储设备中已存储的数据情况,从所述缓冲区取出全部所述原始数据作为所述原始数据块,或者从所述缓冲区取出部分所述原始数据作为所述原始数据块。
例如,如果存储设备中不具有长度小于读取粒度的压缩块组,则可以从所述缓冲区取出全部所述原始数据作为所述原始数据块。或者,如果存储设备中的各压缩块组的总长度相比于读取粒度的差值均小于长度为读取粒度的原始数据块压缩得到的压缩块的长度,则可以从所述缓冲区取出全部所述原始数据作为所述原始数据块,将该原始数据块压缩得到的压缩块作为一个新的压缩块组进行存储。
又例如,假设存储设备中已存储的压缩块组的长度均等于读取粒度16KB,即,这些压缩块组已经无法容纳更多的压缩块,则可以从所述缓冲区取出全部所述原始数据作为所述原始数据块,将该原始数据块压缩得到的压缩块作为一个新的压缩块组进行存储。或者,假设存储设备中已存储的压缩块组的总长度均大于或等于12.8KB,即每个压缩块组的可用长度小于3.2KB。如果压缩比为5,对16KB的原始数据块压缩得到的压缩块长度为3.2KB,则已存储的压缩块组虽然有可用空间,但可用空间的大小不足以容纳对16KB的原始数据块压缩得到的压缩块。此时,可以从所述缓冲区取出全部所述原始数据作为所述原始数据块,将该原始数据块压缩得到的压缩块作为一个新的压缩块组进行存储。
另一方面,如果存储设备中具有长度小于读取粒度的压缩数据组,则可以从所述缓冲区取出部分所述原始数据作为所述原始数据块。例如,可以取出长度为读取粒度与压缩数据组长度之差的原始数据作为原始数据块,或者可以取出长度为读取粒度与压缩数据组长度之差乘以预测压缩比的原始数据作为所述原始数据块。例如,读取粒度为16KB,已存储的一个压缩数据组长度为15.2KB,则可以从缓冲区取出长度为0.8KB的原始数据作为原始数据块,将压缩该原始数据块得到的压缩块存储在压缩块组中。或者,假设预测压缩比为5,则可以从缓冲区取出长度小于等于0.8KB*5=4KB的原始数据作为原始数据块,将压缩该原始数据块得到的压缩块存储在压缩块组中。这样,可以使得存储设备中的存储单元组的尺寸尽可能接近或等于读取粒度,从而充分利用存储设备的存储空间。例如,在SSD中,可以使每个物理页面存储的压缩块的总长度尽可能接近或等于物理页面大小,从而充分利用物理页面的存储空间。
根据本公开的实施例,所述数据存储方法还包括:在所述缓冲区中的原始数据被全部取出之后,将长度等于所述缓冲区大小的其他原始数据读入所述缓冲区。
例如,在图3A中,从原始数据取出长度为16KB的数据1读入缓冲区,在这16KB原始数据全部被从缓冲区取出并压缩之后,从原始数据取出长度为16KB的数据2读入缓冲区。即,每次读取原始数据填满缓冲区,待缓冲区被清空后,再读取其他原始数据填满缓冲区,以此类推。这样,可以减少写入缓冲区的频率,节约系统资源,提高系统效率。
所述在所述存储设备中存储所述压缩块,包括:
在所述存储设备的物理页面中存储多个所述压缩块,所述物理页面的大小等于所述读取粒度。
例如,如图3A所示,在一个物理页面中可以存储M、N、O三个压缩块,如果M、N、O三个压缩块的总长度小于物理页面的大小,即,物理页面中还有空闲空间,则可以在物理页面中增加一些虚拟数据作为填充位,或者保留空闲空间用于其他用途。
根据本公开的实施例,所述数据存储方法还包括:
存储所述原始数据块与物理页面的对应关系;
在所述物理页面中存储所述原始数据块对应的压缩块的存储位置信息。
图3B示出了一种可行的数据压缩和存储方案与根据本公开实施例的元数据映射的对比示意图。
在图3B中,左侧显示了所述可行的数据压缩和存储方案的具有两个阶段的元数据映射,其中,第一阶段表示从原始数据块到压缩块的映射,其中将切分压缩块得到的各个片段映射到逻辑块地址(LBA)。第二阶段是将LBA与存储设备内的物理块地址(PBA)进行映射。图3B的右侧显示了根据本公开实施例的单阶段映射,其中,原始数据块(LPA)直接映射到物理页地址(PPA)。
例如,所述可行的数据压缩和存储方案采用大小为4KB的LBA对压缩块做映射,如1MB原始数据压缩为512KB数据,则需要512/4=128个映射表条目(Entry)。根据本公开实施例的元数据映射是先对原始数据以16KB(SSD的物理页面大小)为颗粒度做映射,最多仅需1024/16=64个映射表条目,设若实际压缩后大小为512KB,则在进行存储时仅需32个16KB的物理页,即映射表仅需32个条目。
可以看出,根据本公开实施例的数据存储方法可以简化元数据映射,减少元数据占用的存储空间。
根据本公开的实施例,一个物理页面可以存储多个压缩块,每个压缩块在该物理页面中的位置存储在该物理页面的头部,其机制如图3C所示。
图3C示出了根据本公开实施例在一个物理页面中存储的数据的示意图。
如图3C所示,物理页面的头部(header)记录每个压缩块在物理页面中的偏移量和压缩块的长度。在读取数据时,首先从原始数据块与物理页面地址的映射表中,定位要读取的原始数据块对应的压缩块所在的物理页面地址(PPA)。然后,读取该物理页面的ECC(Error Correcting Code,纠错码)码字。ECC解码器对该物理页面的包含报头的ECC码字进行解码,以获得与要读取的原始数据块对应的压缩块的偏移量和长度,所述压缩块可能会扩展到多个ECC 码字上,对这些 ECC 码字进行解码以获得无差错数据。通过这种方式,系统避免了对同一物理页面中不相关的ECC码字进行解码,从而减轻了系统负荷。
图4示出了根据本公开实施例的数据读取方法的流程图,包括步骤S401-S403。
在步骤S401,根据原始数据块与存储设备中物理页面的对应关系,确定存储所述原始数据块对应的压缩块的物理页面,所述压缩块的长度不大于所述存储设备的读取粒度。
在步骤S402,读取所述物理页面的数据,根据所述物理页面的数据确定所述压缩块的存储位置信息。
在步骤S403,根据所述存储位置信息,从所述物理页面的数据读取所述压缩块。
根据本公开的实施例,所述物理页面存储一个或多个压缩块;所述物理页面的大小等于所述存储设备的读取粒度。
根据本公开的实施例,所述数据读取方法还包括:对所述压缩块解压缩,得到所述原始数据块。
具体地,在读取数据时,首先从原始数据块与物理页面地址的映射表中,定位要读取的原始数据块对应的压缩块所在的物理页面地址(PPA)。然后,ECC解码器从该物理页面读取包含报头的ECC(Error Correcting Code,纠错码)码字以获得所述压缩块的偏移量和长度,所述压缩块可能会扩展到多个ECC 码字上,对这些 ECC 码字进行读取和解码以获得无差错数据。通过这种方式,系统避免了对同一物理页面中不相关的ECC码字进行解码,从而减轻了系统负荷。
当从存储设备读取数据时,读取所需的原始数据对应的压缩块。由于压缩块的长度小于或等于存储设备的读取粒度,每次可以读取总长度为读取粒度的一个或多个压缩块,对与所需原始数据相对应的压缩块解压缩,即可获得所需数据,而无需读取多个长度分别为读取粒度的压缩块片段,对这些片段进行拼接得到完整的压缩块,对其进行解压缩得到原始数据块,再从原始数据块取出所需数据并丢弃其余数据。显然,根据本公开实施例的数据存储和读取方法能有效解决读取放大问题,节约系统资源,提高读取效率。
图5A示出根据本公开的实施例的数据存储装置的结构框图。其中,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。
如图5A所示,所述数据存储装置500包括第一确定模块501、压缩模块502、第一存储模块503。
第一确定模块501被配置为至少根据存储设备的读取粒度确定原始数据块,使得对所述原始数据块进行压缩得到的压缩块的长度小于或等于所述读取粒度。
压缩模块502被配置为对所述原始数据块进行压缩,得到压缩块。
第一存储模块503被配置为在所述存储设备中存储所述压缩块。
根据本公开的实施例,所述至少根据存储设备的读取粒度确定原始数据块,包括:
至少根据存储设备的读取粒度确定原始数据块的目标长度;
从原始数据截取长度小于或等于所述目标长度的数据作为所述原始数据块,或者从多个候选原始数据块中,选择长度小于或等于所述目标长度的候选原始数据块作为所述原始数据块。
根据本公开的实施例,所述至少根据存储设备的读取粒度确定原始数据块的目标长度,包括:
将所述原始数据块的目标长度设置为所述存储设备的读取粒度;或者
根据所述存储设备的读取粒度和所述原始数据块的预测压缩比,确定所述原始数据块的目标长度;或者
根据所述存储设备的读取粒度和所述存储设备中已存储的数据确定所述目标长度;或者
根据所述存储设备的读取粒度、所述存储设备中已存储的数据,以及所述原始数据块的预测压缩比,确定所述原始数据块的目标长度。
根据本公开的实施例,所述至少根据存储设备的读取粒度确定原始数据块,包括:
读取缓冲区中存储的原始数据作为所述原始数据块,所述缓冲区的大小等于或小于所述读取粒度。
根据本公开的实施例,所述装置500还包括:
第一读入模块504,被配置为将长度等于所述缓冲区大小的原始数据读入所述缓冲区;
其中,所述读取缓冲区中存储的原始数据作为所述原始数据块,包括:从所述缓冲区取出全部所述原始数据作为所述原始数据块,或者从所述缓冲区取出部分所述原始数据作为所述原始数据块。
根据本公开的实施例,所述装置500还包括:
第二读入模块505,被配置为在所述缓冲区中的原始数据被全部取出之后,将长度等于所述缓冲区大小的其他原始数据读入所述缓冲区。
根据本公开的实施例,所述在所述存储设备中存储所述压缩块,包括:
在所述存储设备的物理页面中存储多个所述压缩块,所述物理页面的大小等于所述读取粒度。
根据本公开的实施例,所述装置500还包括:
第二存储模块506,被配置为存储所述原始数据块与物理页面的对应关系;
第三存储模块507,被配置为在所述物理页面中存储所述原始数据块对应的压缩块的存储位置信息。
图5B示出根据本公开的实施例的数据读取装置的结构框图。其中,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。
如图5B所示,所述数据读取装置510包括第二确定模块511、第一读取模块512、第二读取模块513。
第二确定模块511被配置为根据原始数据块与存储设备中物理页面的对应关系,确定存储所述原始数据块对应的压缩块的物理页面,所述压缩块的长度不大于所述存储设备的读取粒度;
第一读取模块512被配置为读取所述物理页面的数据,根据所述物理页面的数据确定所述压缩块的存储位置信息;
第二读取模块513被配置为根据所述存储位置信息,从所述物理页面的数据读取所述压缩块。
根据本公开的实施例,所述物理页面存储一个或多个压缩块;所述物理页面的大小等于所述存储设备的读取粒度。
根据本公开的实施例,所述数据读取装置510还包括:解压缩模块514,被配置为对所述压缩块解压缩,得到所述原始数据块。
本公开还公开了一种电子设备,图6示出根据本公开的实施例的电子设备的结构框图。
如图6所示,所述电子设备600包括存储器601和处理器602,其中,存储器601用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器602执行以实现根据本公开的实施例的方法。
本公开实施例提供了一种数据存储方法,包括:
至少根据存储设备的读取粒度确定原始数据块,使得对所述原始数据块进行压缩得到的压缩块的长度小于或等于所述读取粒度;
对所述原始数据块进行压缩,得到压缩块;
在所述存储设备中存储所述压缩块。
根据本公开的实施例,所述至少根据存储设备的读取粒度确定原始数据块,包括:
至少根据存储设备的读取粒度确定原始数据块的目标长度;
从原始数据截取长度小于或等于所述目标长度的数据作为所述原始数据块,或者从多个候选原始数据块中,选择长度小于或等于所述目标长度的候选原始数据块作为所述原始数据块。
根据本公开的实施例,所述至少根据存储设备的读取粒度确定原始数据块的目标长度,包括:
将所述原始数据块的目标长度设置为所述存储设备的读取粒度;或者
根据所述存储设备的读取粒度和所述原始数据块的预测压缩比,确定所述原始数据块的目标长度;或者
根据所述存储设备的读取粒度和所述存储设备中已存储的数据确定所述目标长度;或者
根据所述存储设备的读取粒度、所述存储设备中已存储的数据,以及所述原始数据块的预测压缩比,确定所述原始数据块的目标长度。
根据本公开的实施例,所述至少根据存储设备的读取粒度确定原始数据块,包括:
读取缓冲区中存储的原始数据作为所述原始数据块,所述缓冲区的大小等于或小于所述读取粒度。
根据本公开的实施例,所述方法还包括:
将长度等于所述缓冲区大小的原始数据读入所述缓冲区;
其中,所述读取缓冲区中存储的原始数据作为所述原始数据块,包括:从所述缓冲区取出全部所述原始数据作为所述原始数据块,或者从所述缓冲区取出部分所述原始数据作为所述原始数据块。
根据本公开的实施例,所述方法还包括:
在所述缓冲区中的原始数据被全部取出之后,将长度等于所述缓冲区大小的其他原始数据读入所述缓冲区。
根据本公开的实施例,所述在所述存储设备中存储所述压缩块,包括:
在所述存储设备的物理页面中存储多个所述压缩块,所述物理页面的大小等于所述读取粒度。
根据本公开的实施例,所述方法还包括:
存储所述原始数据块与物理页面的对应关系;
在所述物理页面中存储所述原始数据块对应的压缩块的存储位置信息。
本公开实施例提供了一种数据读取方法,包括:
根据原始数据块与存储设备中物理页面的对应关系,确定存储所述原始数据块对应的压缩块的物理页面,所述压缩块的长度不大于所述存储设备的读取粒度;
读取所述物理页面的数据,根据所述物理页面的数据确定所述压缩块的存储位置信息;
根据所述存储位置信息,从所述物理页面的数据读取所述压缩块。
根据本公开的实施例,所述物理页面存储一个或多个压缩块;所述物理页面的大小等于所述存储设备的读取粒度。
根据本公开的实施例,所述数据读取方法还包括:对所述压缩块解压缩,得到所述原始数据块。
图7示出适于用来实现根据本公开实施例的方法的计算机系统的结构示意图。
如图7所示,计算机系统700包括处理单元701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行上述实施例中的各种处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。处理单元 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。其中,所述处理单元701可实现为CPU、GPU、TPU、FPGA、NPU等处理单元。
特别地,根据本公开的实施例,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括计算机指令,该计算机指令被处理器执行时实现上文所述的方法步骤。在这样的实施例中,该计算机程序产品可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过可编程硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中电子设备或计算机系统中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (14)
1.一种数据存储方法,包括:
至少根据存储设备的读取粒度确定原始数据块,使得对所述原始数据块进行压缩得到的压缩块的长度小于或等于所述读取粒度;
对所述原始数据块进行压缩,得到压缩块;
在所述存储设备中存储所述压缩块。
2.根据权利要求1所述的方法,其中,所述至少根据存储设备的读取粒度确定原始数据块,包括:
至少根据存储设备的读取粒度确定原始数据块的目标长度;
从原始数据截取长度小于或等于所述目标长度的数据作为所述原始数据块,或者从多个候选原始数据块中,选择长度小于或等于所述目标长度的候选原始数据块作为所述原始数据块。
3.根据权利要求2所述的方法,其中,所述至少根据存储设备的读取粒度确定原始数据块的目标长度,包括:
将所述原始数据块的目标长度设置为所述存储设备的读取粒度;或者
根据所述存储设备的读取粒度和所述原始数据块的预测压缩比,确定所述原始数据块的目标长度;或者
根据所述存储设备的读取粒度和所述存储设备中已存储的数据确定所述目标长度;或者
根据所述存储设备的读取粒度、所述存储设备中已存储的数据,以及所述原始数据块的预测压缩比,确定所述原始数据块的目标长度。
4.根据权利要求1所述的方法,其中,所述至少根据存储设备的读取粒度确定原始数据块,包括:
读取缓冲区中存储的原始数据作为所述原始数据块,所述缓冲区的大小等于或小于所述读取粒度。
5.根据权利要求4所述的方法,还包括:
将长度等于所述缓冲区大小的原始数据读入所述缓冲区;
其中,所述读取缓冲区中存储的原始数据作为所述原始数据块,包括:从所述缓冲区取出全部所述原始数据作为所述原始数据块,或者从所述缓冲区取出部分所述原始数据作为所述原始数据块。
6.根据权利要求5所述的方法,还包括:
在所述缓冲区中的原始数据被全部取出之后,将长度等于所述缓冲区大小的其他原始数据读入所述缓冲区。
7.根据权利要求1所述的方法,其中,所述在所述存储设备中存储所述压缩块,包括:
在所述存储设备的物理页面中存储多个所述压缩块,所述物理页面的大小等于所述读取粒度。
8.根据权利要求7所述的方法,其中,所述方法还包括:
存储所述原始数据块与物理页面的对应关系;
在所述物理页面中存储所述原始数据块对应的压缩块的存储位置信息。
9.一种数据读取方法,包括:
根据原始数据块与存储设备中物理页面的对应关系,确定存储所述原始数据块对应的压缩块的物理页面,所述压缩块的长度不大于所述存储设备的读取粒度;
读取所述物理页面的数据,根据所述物理页面的数据确定所述压缩块的存储位置信息;
根据所述存储位置信息,从所述物理页面的数据读取所述压缩块。
10.根据权利要求9所述的方法,其中,所述物理页面存储一个或多个压缩块,所述物理页面的大小等于所述存储设备的读取粒度。
11.一种数据存储装置,包括:
第一确定模块,被配置为至少根据存储设备的读取粒度确定原始数据块,使得对所述原始数据块进行压缩得到的压缩块的长度小于或等于所述读取粒度;
压缩模块,被配置为对所述原始数据块进行压缩,得到压缩块;
第一存储模块,被配置为在所述存储设备中存储所述压缩块。
12.一种数据读取装置,被配置为:
第二确定模块,被配置为根据原始数据块与存储设备中物理页面的对应关系,确定存储所述原始数据块对应的压缩块的物理页面,所述压缩块的长度不大于所述存储设备的读取粒度;
第一读取模块,被配置为读取所述物理页面的数据,根据所述物理页面的数据确定所述压缩块的存储位置信息;
第二读取模块,被配置为根据所述存储位置信息,从所述物理页面的数据读取所述压缩块。
13.一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1-10任一项所述的方法步骤。
14.一种可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现权利要求1-10任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111148086.9A CN113590051B (zh) | 2021-09-29 | 2021-09-29 | 数据存储和读取方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111148086.9A CN113590051B (zh) | 2021-09-29 | 2021-09-29 | 数据存储和读取方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113590051A true CN113590051A (zh) | 2021-11-02 |
CN113590051B CN113590051B (zh) | 2022-03-18 |
Family
ID=78242765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111148086.9A Active CN113590051B (zh) | 2021-09-29 | 2021-09-29 | 数据存储和读取方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113590051B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821179A (zh) * | 2021-11-23 | 2021-12-21 | 阿里云计算有限公司 | 数据存储方法和装置、计算设备及存储介质 |
Citations (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5649151A (en) * | 1992-06-29 | 1997-07-15 | Apple Computer, Inc. | Efficient method and apparatus for access and storage of compressed data |
US6449689B1 (en) * | 1999-08-31 | 2002-09-10 | International Business Machines Corporation | System and method for efficiently storing compressed data on a hard disk drive |
CN1973287A (zh) * | 2004-04-26 | 2007-05-30 | 斯多维兹有限公司 | 压缩存储用文件以及对压缩的文件进行操作的方法和系统 |
CN101841337A (zh) * | 2010-05-06 | 2010-09-22 | 华为终端有限公司 | 数据压缩和解压缩处理方法以及移动存储设备 |
CN102855197A (zh) * | 2011-11-08 | 2013-01-02 | 东南大学 | 一种面向大规模粗粒度可重构系统存储系统的实现方法 |
US20130088373A1 (en) * | 2011-10-07 | 2013-04-11 | Fujitsu Limited | Data compression apparatus and data compression method |
CN103559020A (zh) * | 2013-11-07 | 2014-02-05 | 中国科学院软件研究所 | 一种dna读序数据fastq文件并行压缩和解压缩方法 |
US20140040341A1 (en) * | 2006-04-11 | 2014-02-06 | Emc Corporation | Efficient computation of sketches |
CN103914404A (zh) * | 2014-04-29 | 2014-07-09 | 东南大学 | 一种粗粒度可重构系统中的配置信息缓存装置及压缩方法 |
US20140208062A1 (en) * | 2010-03-22 | 2014-07-24 | Lsi Corporation | Storage address space to nvm address, span, and length mapping/converting |
CN105100034A (zh) * | 2014-05-23 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 一种网络应用中访问功能的方法和设备 |
US20160294410A1 (en) * | 2011-07-12 | 2016-10-06 | Hughes Network Systems, Llc | Staged data compression, including block level long range compression, for data streams in a communications system |
CN106156574A (zh) * | 2015-04-15 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种信息验证方法、装置及系统 |
CN107436738A (zh) * | 2017-08-17 | 2017-12-05 | 北京理工大学 | 一种数据存储方法及系统 |
CN108427538A (zh) * | 2018-03-15 | 2018-08-21 | 深信服科技股份有限公司 | 全闪存阵列的存储数据压缩方法、装置、及可读存储介质 |
CN109582653A (zh) * | 2018-11-14 | 2019-04-05 | 网易(杭州)网络有限公司 | 文件的压缩、解压缩方法及设备 |
CN110377226A (zh) * | 2019-06-10 | 2019-10-25 | 平安科技(深圳)有限公司 | 基于存储引擎bluestore的压缩方法、装置及存储介质 |
CN110557124A (zh) * | 2018-05-30 | 2019-12-10 | 华为技术有限公司 | 一种数据压缩方法及装置 |
CN110784225A (zh) * | 2018-07-31 | 2020-02-11 | 华为技术有限公司 | 数据压缩、解压方法及相关装置、电子设备、系统 |
CN111290697A (zh) * | 2018-12-07 | 2020-06-16 | 上海寒武纪信息科技有限公司 | 数据压缩方法、编码电路和运算装置 |
CN111294057A (zh) * | 2018-12-07 | 2020-06-16 | 上海寒武纪信息科技有限公司 | 数据压缩方法、编码电路和运算装置 |
US20200310675A1 (en) * | 2019-03-28 | 2020-10-01 | SK Hynix Inc. | Memory system and method of operating the same |
CN112181919A (zh) * | 2019-07-05 | 2021-01-05 | 深信服科技股份有限公司 | 一种压缩方法、系统及电子设备和存储介质 |
-
2021
- 2021-09-29 CN CN202111148086.9A patent/CN113590051B/zh active Active
Patent Citations (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5649151A (en) * | 1992-06-29 | 1997-07-15 | Apple Computer, Inc. | Efficient method and apparatus for access and storage of compressed data |
US6449689B1 (en) * | 1999-08-31 | 2002-09-10 | International Business Machines Corporation | System and method for efficiently storing compressed data on a hard disk drive |
CN1973287A (zh) * | 2004-04-26 | 2007-05-30 | 斯多维兹有限公司 | 压缩存储用文件以及对压缩的文件进行操作的方法和系统 |
US20140040341A1 (en) * | 2006-04-11 | 2014-02-06 | Emc Corporation | Efficient computation of sketches |
US20140208062A1 (en) * | 2010-03-22 | 2014-07-24 | Lsi Corporation | Storage address space to nvm address, span, and length mapping/converting |
CN101841337A (zh) * | 2010-05-06 | 2010-09-22 | 华为终端有限公司 | 数据压缩和解压缩处理方法以及移动存储设备 |
US20160294410A1 (en) * | 2011-07-12 | 2016-10-06 | Hughes Network Systems, Llc | Staged data compression, including block level long range compression, for data streams in a communications system |
US20130088373A1 (en) * | 2011-10-07 | 2013-04-11 | Fujitsu Limited | Data compression apparatus and data compression method |
CN102855197A (zh) * | 2011-11-08 | 2013-01-02 | 东南大学 | 一种面向大规模粗粒度可重构系统存储系统的实现方法 |
CN103559020A (zh) * | 2013-11-07 | 2014-02-05 | 中国科学院软件研究所 | 一种dna读序数据fastq文件并行压缩和解压缩方法 |
CN103914404A (zh) * | 2014-04-29 | 2014-07-09 | 东南大学 | 一种粗粒度可重构系统中的配置信息缓存装置及压缩方法 |
CN105100034A (zh) * | 2014-05-23 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 一种网络应用中访问功能的方法和设备 |
CN106156574A (zh) * | 2015-04-15 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种信息验证方法、装置及系统 |
CN107436738A (zh) * | 2017-08-17 | 2017-12-05 | 北京理工大学 | 一种数据存储方法及系统 |
CN108427538A (zh) * | 2018-03-15 | 2018-08-21 | 深信服科技股份有限公司 | 全闪存阵列的存储数据压缩方法、装置、及可读存储介质 |
CN110557124A (zh) * | 2018-05-30 | 2019-12-10 | 华为技术有限公司 | 一种数据压缩方法及装置 |
CN110784225A (zh) * | 2018-07-31 | 2020-02-11 | 华为技术有限公司 | 数据压缩、解压方法及相关装置、电子设备、系统 |
CN109582653A (zh) * | 2018-11-14 | 2019-04-05 | 网易(杭州)网络有限公司 | 文件的压缩、解压缩方法及设备 |
CN111290697A (zh) * | 2018-12-07 | 2020-06-16 | 上海寒武纪信息科技有限公司 | 数据压缩方法、编码电路和运算装置 |
CN111294057A (zh) * | 2018-12-07 | 2020-06-16 | 上海寒武纪信息科技有限公司 | 数据压缩方法、编码电路和运算装置 |
US20200310675A1 (en) * | 2019-03-28 | 2020-10-01 | SK Hynix Inc. | Memory system and method of operating the same |
CN110377226A (zh) * | 2019-06-10 | 2019-10-25 | 平安科技(深圳)有限公司 | 基于存储引擎bluestore的压缩方法、装置及存储介质 |
CN112181919A (zh) * | 2019-07-05 | 2021-01-05 | 深信服科技股份有限公司 | 一种压缩方法、系统及电子设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821179A (zh) * | 2021-11-23 | 2021-12-21 | 阿里云计算有限公司 | 数据存储方法和装置、计算设备及存储介质 |
CN113821179B (zh) * | 2021-11-23 | 2022-02-22 | 阿里云计算有限公司 | 数据存储方法和装置、计算设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113590051B (zh) | 2022-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103329112B (zh) | 用于减少页面错误发生时压缩页面加载时间的方法和装置 | |
US10044370B1 (en) | Lossless binary compression in a memory constrained environment | |
AU2019257524A1 (en) | Managing operations on stored data units | |
US9041567B2 (en) | Using variable encodings to compress an input data stream to a compressed output data stream | |
US9977598B2 (en) | Electronic device and a method for managing memory space thereof | |
AU2014226446B2 (en) | Managing operations on stored data units | |
JP4601665B2 (ja) | 条件付で実行可能モジュールを縮小するシステムおよび方法 | |
US10817178B2 (en) | Compressing and compacting memory on a memory device wherein compressed memory pages are organized by size | |
US20110199241A1 (en) | Data compression/decompression method | |
JP2007535241A5 (zh) | ||
CN113590051B (zh) | 数据存储和读取方法、装置、电子设备及介质 | |
CN111966281B (zh) | 数据储存装置与数据处理方法 | |
US20140258247A1 (en) | Electronic apparatus for data access and data access method therefor | |
AU2014226447B2 (en) | Managing operations on stored data units | |
US10103747B1 (en) | Lossless binary compression in a memory constrained environment | |
US9471584B2 (en) | Demand paging method for mobile terminal, controller and mobile terminal | |
CN109727183B (zh) | 一种图形渲染缓冲区压缩表的调度方法及装置 | |
US6654867B2 (en) | Method and system to pre-fetch compressed memory blocks using pointers | |
US10623016B2 (en) | Accelerated compression/decompression including predefined dictionary | |
CN113326001B (zh) | 数据处理方法、装置、设备、系统、介质及程序 | |
US11748307B2 (en) | Selective data compression based on data similarity | |
CN117851275A (zh) | 压缩型ssd的数据管理方法、压缩型ssd及存储介质 | |
JPH0934788A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40060976 Country of ref document: HK |