CN111625191A - 一种数据读写方法、装置及电子设备和存储介质 - Google Patents
一种数据读写方法、装置及电子设备和存储介质 Download PDFInfo
- Publication number
- CN111625191A CN111625191A CN202010437074.7A CN202010437074A CN111625191A CN 111625191 A CN111625191 A CN 111625191A CN 202010437074 A CN202010437074 A CN 202010437074A CN 111625191 A CN111625191 A CN 111625191A
- Authority
- CN
- China
- Prior art keywords
- data
- writing
- compressed
- data block
- reading
- 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 57
- 238000004064 recycling Methods 0.000 claims abstract description 6
- 230000008569 process Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 14
- 238000013144 data compression Methods 0.000 claims description 7
- 238000011084 recovery Methods 0.000 claims description 5
- 239000003999 initiator Substances 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000007906 compression Methods 0.000 abstract description 11
- 230000006835 compression Effects 0.000 abstract description 11
- 230000009467 reduction Effects 0.000 abstract description 4
- 238000004891 communication Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000006837 decompression Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/0608—Saving storage space on 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
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据读写方法、装置及一种电子设备和计算机可读存储介质,该方法包括:获取数据写入请求,得到所述数据写入请求对应的待写入数据;对所述待写入数据进行压缩,生成压缩后数据;将所述压缩后数据写入硬盘的数据块中,并确定表征所述压缩后数据写入位置的元数据信息;将所述元数据信息写入存储级内存中,所述元数据信息采用覆盖写的方式进行更新。由上可知,本申请将元数据和用户数据分离存储,将待写入的用户数据压缩后写入硬盘,将元数据信息写入存储级内存,且不再对元数据进行压缩,在对元数据更新时将采用覆盖写的方式,提高了元数据的访问性能,同时缓解了高频率垃圾回收导致的性能下降,有效提高了实时压缩存储系统的性能。
Description
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种数据读写方法、装置及一种电子设备和一种计算机可读存储介质。
背景技术
当前,大数据的出现和广泛应用对存储容量的增长带来了很大的挑战。应对存储容量的增长有两个途径,一种是扩展存储容量,但会带来成本的增加;另一种是对数据进行压缩,减少存储容量的消耗,节省成本。实时压缩存储系统在数据写入存储设备之前对数据进行压缩,不仅减少了存储空间的占用,更能进一步减少对存储设备(磁盘或固态盘)的访问,从而提高存储系统的性能。
传统的实时压缩存储系统,将数据压缩后以顺序写的方式写入存储设备,当数据更新时,更新数据经压缩后仍旧顺序写入存储设备,这样存储设备中的原数据就被标记为无效数据,需要在存储空间不足时执行对无效数据的垃圾回收以重新利用存储空间。存储设备中的压缩数据分为元数据和用户数据两种,两者在分别进行压缩后混合存放在存储设备中。由于元数据的访问频度远高于用户数据的访问频度,其频繁更新将产生大量的无效数据,增加了垃圾回收的频率,往往成为存储系统的性能瓶颈。
因此,如何解决上述问题是本领域技术人员需要重点关注的。
发明内容
本申请的目的在于提供一种数据读写方法、装置及一种电子设备和一种计算机可读存储介质,提高了实时压缩存储系统的性能。
为实现上述目的,本申请提供了一种数据读写方法,包括:
获取数据写入请求,得到所述数据写入请求对应的待写入数据;
对所述待写入数据进行压缩,生成压缩后数据;
将所述压缩后数据写入硬盘的数据块中,并确定表征所述压缩后数据写入位置的元数据信息;
将所述元数据信息写入存储级内存中,所述元数据信息采用覆盖写的方式进行更新。
可选的,所述将所述压缩后数据写入硬盘的数据块中,包括:
判断当前硬盘是否存在为所述压缩后数据分配的数据块;
若存在为所述压缩后数据分配的数据块,则判断当前数据块的剩余空间是否满足所述压缩后数据的长度;
若当前数据块的剩余空间满足所述压缩后数据的长度,则直接将所述压缩后数据写入已分配的数据块中;
若不存在为所述压缩后数据分配的数据块,或当前数据块的剩余空间不满足所述压缩后数据的长度,则在当前硬盘中为所述压缩后数据分配新的数据块,并在分配后执行数据写入操作。
可选的,还包括:
接收数据更新请求,对所述数据更新请求对应的目标数据进行压缩,得到目标数据;
将所述目标数据写入对应的数据块中,并将所述目标数据对应的原始数据标记为无效数据。
可选的,在所述将所述压缩后数据写入硬盘的数据块中之后,还包括:
记录所述数据块的状态信息,所述状态信息包括垃圾数据数量和/或剩余空间大小;
当检测到所述数据块的所述剩余空间大小低于第一预设阈值,或所述垃圾数据数量大于第二预设阈值后,启动垃圾回收进程,以便清除数据块中标记的所述无效数据。
可选的,在所述启动垃圾回收进程之后,还包括:
对所述数据块的状态信息进行监控;
若检测到所述数据块的所述剩余空间大小超过第三预设阈值,或所述垃圾数据数量小于第四预设阈值后,关闭所述垃圾回收进程。
可选的,还包括:
获取数据读取请求,在所述存储级内存中查找所述数据读取请求对应的元数据信息;
根据所述元数据信息访问对应的数据块,以读取所述数据读取请求对应的待读取数据;
对所述待读取数据进行解压,并返回至所述数据读取请求的发起方。
为实现上述目的,本申请提供了一种数据读写装置,包括:
请求获取模块,用于获取数据写入请求,得到所述数据写入请求对应的待写入数据;
数据压缩模块,用于对所述待写入数据进行压缩,生成压缩后数据;
第一写入模块,用于将所述压缩后数据写入硬盘的数据块中,并确定表征所述压缩后数据写入位置的元数据信息;
第二写入模块,用于将所述元数据信息写入存储级内存中,所述元数据信息采用覆盖写的方式进行更新。
可选的,所述第一写入模块,包括:
第一判断单元,用于判断当前硬盘是否存在为所述压缩后数据分配的数据块;
第二判断单元,用于若存在为所述压缩后数据分配的数据块,则判断当前数据块的剩余空间是否满足所述压缩后数据的长度;
数据写入单元,用于若当前数据块的剩余空间满足所述压缩后数据的长度,则直接将所述压缩后数据写入已分配的数据块中;
数据块分配单元,用于若不存在为所述压缩后数据分配的数据块,或当前数据块的剩余空间不满足所述压缩后数据的长度,则在当前硬盘中为所述压缩后数据分配新的数据块,并在分配后执行数据写入操作。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现前述公开的任一种数据读写方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述公开的任一种数据读写方法的步骤。
通过以上方案可知,本申请提供的一种数据读写方法,包括:获取数据写入请求,得到所述数据写入请求对应的待写入数据;对所述待写入数据进行压缩,生成压缩后数据;将所述压缩后数据写入硬盘的数据块中,并确定表征所述压缩后数据写入位置的元数据信息;将所述元数据信息写入存储级内存中,所述元数据信息采用覆盖写的方式进行更新。由上可知,本申请将元数据和用户数据分离存储,将待写入的用户数据压缩后写入硬盘,将元数据信息写入存储级内存,且不再对元数据进行压缩,在对元数据信息更新时将采用覆盖写的方式,提高了元数据的访问性能,同时缓解了高频率垃圾回收导致的性能下降,有效提高了实时压缩存储系统的性能。
本申请还公开了一种数据读写装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种数据读写方法的流程图;
图2为本申请实施例公开的另一种数据读写方法的流程图;
图3为本申请实施例公开的一种系统布局实现示意图;
图4为本申请实施例公开的一种数据读写装置的结构图;
图5为本申请实施例公开的一种电子设备的结构图;
图6为本申请实施例公开的另一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在传统的实时压缩存储系统中,通常将数据压缩后以顺序写的方式写入存储设备,当数据更新时,更新数据经压缩后仍旧顺序写入存储设备,这样存储设备中的原数据就被标记为无效数据,需要在存储空间不足时执行对无效数据的垃圾回收以重新利用存储空间。存储设备中的压缩数据分为元数据和用户数据两种,两者在分别进行压缩后混合存放在存储设备中。由于元数据的访问频度远高于用户数据的访问频度,其频繁更新将产生大量的无效数据,增加了垃圾回收的频率,往往成为存储系统的性能瓶颈。
因此,本申请实施例公开了一种数据读写方法,有效提高了实时压缩存储系统的性能。
参见图1所示,本申请实施例公开的一种数据读写方法包括:
S101:获取数据写入请求,得到所述数据写入请求对应的待写入数据;
本申请实施例中,可以接收数据生产者发起的数据写入请求,并通过对数据写入请求进行解析,确定该数据写入请求对应的待写入数据,即传统实时压缩存储系统中的用户数据。
作为一种可行的实施方式,本申请实施例在获取到数据写入请求时,可以首先对该写入请求进行权限验证,以判断当前请求发起者是否具备数据写入权限,从而确定是否允许执行该写入请求对应的数据写入操作。
S102:对所述待写入数据进行压缩,生成压缩后数据;
本步骤中,在解析得到待写入的用户数据之后,将对上述待写入数据进行压缩,生成对应的压缩后数据,以节省存储空间的占用。
S103:将所述压缩后数据写入硬盘的数据块中,并确定表征所述压缩后数据写入位置的元数据信息;
在具体实施中,可以将上述步骤生成的压缩后数据写入硬盘的数据块中进行存储,在数据写入时,可具体采用顺序写的方式。在数据写入之后,可以获取该压缩后数据对应的元数据信息。需要说明的是,元数据可具体包括压缩后数据与数据块之间的映射关系,以及空间分配信息等。
S104:将所述元数据信息写入存储级内存中,所述元数据信息采用覆盖写的方式进行更新。
需要说明的是,在当前的存储系统中,磁盘和基于闪存的固态盘是主要的存储设备,磁盘具备大容量、低成本的优势,具备较好的顺序写性能,但随机写性能较差;基于闪存的固态盘虽然性能较高,但是有寿命限制,且存在写放大现象,不利于元数据这类的小数据读写,而更利于以顺序写的方式存放用户数据。存储级内存具备高性能、非易失、字节级修改的特点,且克服了闪存的寿命限制,更利于元数据的存储和访问。因此,本申请实施例将元数据信息写入存储级内存中进行保存,并在元数据更新时可采用覆盖写的方式。
本申请实施例还可以提供数据更新功能,具体地,可接收数据更新请求,对数据更新请求对应的目标数据进行压缩,得到目标数据;将目标数据写入对应的数据块中,并将目标数据对应的原始数据标记为无效数据。
作为一种优选的实施方式,在将压缩后数据写入硬盘的数据块中之后,还可以进一步记录该数据块的状态信息,即该数据块在写入当前压缩后数据的状态,上述状态信息可以包括但不限于垃圾数据数量和/或剩余空间大小。
当检测到数据块的剩余空间大小低于第一预设阈值,或垃圾数据数量大于第二预设阈值后,可启动垃圾回收进程,以便清除数据块中标记的无效数据,实现存储空间的回收利用。
在启动垃圾回收进程之后,还可以持续对该数据块的状态信息进行监控,若检测到数据块的剩余空间大小超过第三预设阈值,或垃圾数据数量小于第四预设阈值后,可关闭垃圾回收进程,无需继续执行数据清除操作。
需要说明的是,上述第一预设阈值、第二预设阈值、第三预设阈值以及第四预设阈值均可在具体实施中根据实际情况进行任意设定,在此不对其进行具体限定。
在数据消费者读取数据时,可以获取数据读取请求,并在存储级内存中查找数据读取请求对应的元数据信息,进而根据元数据信息访问对应的数据块,以读取当前数据读取请求对应的待读取数据,并对待读取数据进行解压,将解压后数据返回至数据读取请求的发起方。
通过以上方案可知,本申请提供的一种数据读写方法,包括:获取数据写入请求,得到所述数据写入请求对应的待写入数据;对所述待写入数据进行压缩,生成压缩后数据;将所述压缩后数据写入硬盘的数据块中,并确定表征所述压缩后数据写入位置的元数据信息;将所述元数据信息写入存储级内存中,所述元数据信息采用覆盖写的方式进行更新。由上可知,本申请将元数据和用户数据分离存储,将待写入的用户数据压缩后写入硬盘,将元数据信息写入存储级内存,且不再对元数据进行压缩,在对元数据信息更新时将采用覆盖写的方式,提高了元数据的访问性能,同时缓解了高频率垃圾回收导致的性能下降,有效提高了实时压缩存储系统的性能。
本申请实施例公开了另一种数据读写方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图2所示,具体的:
S201:获取数据写入请求,得到所述数据写入请求对应的待写入数据;
S202:对所述待写入数据进行压缩,生成压缩后数据;
S203:判断当前硬盘是否存在为所述压缩后数据分配的数据块;如果是,则进入步骤S204;如果否,则进入步骤S206;
本申请实施例中,在对待写入数据进行压缩生成对应的压缩后数据,需要将压缩后数据写入硬盘时,可首先判断当前硬盘中是否存在为该压缩后数据分配的数据块。
S204:判断当前数据块的剩余空间是否满足所述压缩后数据的长度;如果是,则进入步骤S205;如果否,则进入步骤S206;
若当前硬盘存在为压缩后数据分配的数据块,则需要进一步判断该数据块的剩余空间是否大于压缩后数据的长度,即确定是否满足数据写入条件。
S205:将所述压缩后数据写入已分配的数据块中,并在写入后执行步骤S207;
S206:在当前硬盘中为所述压缩后数据分配新的数据块,并在分配后执行数据写入操作,在写入后执行步骤S207;
S207:确定表征所述压缩后数据写入位置的元数据信息,并将所述元数据信息写入存储级内存中。
若当前硬盘存在为压缩后数据分配的数据块,且该数据块的剩余空间大于压缩后数据的长度,则可直接将压缩后数据写入已分配的数据块中。若当前硬盘不存在为压缩后数据分配的数据块,或该数据块的剩余空间大于压缩后数据的长度,则需要在当前硬盘中创建新数据块,以便将压缩后数据写入新分配的数据块中。
图3为本申请实施例提供的一种用于利用存储级内存提高实时压缩存储系统性能的系统布局实现示意图。如图3所示,具体地:
在用户数据写入存储系统的过程中,首先由数据压缩/解压缩模块将用户数据压缩,其次由空间分配模块在磁盘或固态盘顺序的物理空间上分配一个数据块,再由数据布局模块将该压缩数据写入分配的数据块,记录或更新表征该压缩数据存放位置的元数据信息,最后由数据布局模块将元数据写入存储级内存。当从存储系统读取用户数据时,首先由数据布局模块查询元数据信息,找到用户数据所存放的数据块,将该数据块读出,送给数据压缩/解压缩模块进行解压,然后获取所需的用户数据。
本申请实施例中,数据写入流程可以具体包括:数据压缩/解压缩模块对用户数据进行压缩;若当前未分配数据块,则由空间分配模块分配一个数据块,并将压缩数据写入;若当前已分配数据块,且其空闲空间大于该压缩数据的长度,则由数据布局模块将该压缩数据写入当前的数据块,否则分配新的数据块,并将压缩数据写入;数据布局模块记录分配的数据块的状态信息,并记录或更新用户数据在物理空间上的存放位置、数据块的垃圾数据数量等元数据信息;数据布局模块将元数据写入存储级内存。
当数据布局模块监测到磁盘或固态盘的空闲空间低于设定的阈值,例如10%时,通知垃圾回收模块启动垃圾回收过程,当磁盘或固态盘的空闲空间高于设定的阈值,例如5%时停止垃圾回收过程。
本申请实施例中,数据读取流程可以具体包括:数据布局模块根据读请求的地址信息,判断相应的元数据是否在内存中,若否,则将该元数据从存储级内存读入,若是,则根据元数据信息查找到请求数据所存储的数据块信息;数据布局模块根据查找到的数据块信息,将相应数据块从磁盘或固态盘读入内存;数据压缩/解压缩模块对读取的数据块进行解压;数据布局模块从解压的数据块中获取所请求的数据。
下面对本申请实施例提供的一种数据读写装置进行介绍,下文描述的一种数据读写装置与上文描述的一种数据读写方法可以相互参照。
参见图4所示,本申请实施例提供的一种数据读写装置包括:
请求获取模块301,用于获取数据写入请求,得到所述数据写入请求对应的待写入数据;
数据压缩模块302,用于对所述待写入数据进行压缩,生成压缩后数据;
第一写入模块303,用于将所述压缩后数据写入硬盘的数据块中,并确定表征所述压缩后数据写入位置的元数据信息;
第二写入模块304,用于将所述元数据信息写入存储级内存中,所述元数据信息采用覆盖写的方式进行更新。
关于上述模块301至304的具体实施过程可参考前述实施例公开的相应内容,在此不再进行赘述。
在上述实施例的基础上,作为一种优选实施方式,所述第一写入模块,包括:
第一判断单元,用于判断当前硬盘是否存在为所述压缩后数据分配的数据块;
第二判断单元,用于若存在为所述压缩后数据分配的数据块,则判断当前数据块的剩余空间是否满足所述压缩后数据的长度;
数据写入单元,用于若当前数据块的剩余空间满足所述压缩后数据的长度,则直接将所述压缩后数据写入已分配的数据块中;
数据块分配单元,用于若不存在为所述压缩后数据分配的数据块,或当前数据块的剩余空间不满足所述压缩后数据的长度,则在当前硬盘中为所述压缩后数据分配新的数据块,并在分配后执行数据写入操作。
本申请还提供了一种电子设备,参见图5所示,本申请实施例提供的一种电子设备包括:
存储器100,用于存储计算机程序;
处理器200,用于执行所述计算机程序时可以实现上述实施例所提供的步骤。
具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器200在一些实施例中可以是一中央处理器(CentralProcessing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,为电子设备提供计算和控制能力,执行所述存储器100中保存的计算机程序时,可以实现前述任一实施例提供的数据读写方法。
在上述实施例的基础上,作为优选实施方式,参见图6所示,所述电子设备还包括:
输入接口300,与处理器200相连,用于获取外部导入的计算机程序、参数和指令,经处理器200控制保存至存储器100中。该输入接口300可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。
显示单元400,与处理器200相连,用于显示处理器200处理的数据以及用于显示可视化的用户界面。该显示单元400可以为LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。
网络端口500,与处理器200相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(MHL)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术等。
图6仅示出了具有组件100-500的电子设备,本领域技术人员可以理解的是,图6示出的结构并不构成对电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本申请还提供了一种计算机可读存储介质,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述任一实施例提供的数据读写方法。
本申请将元数据和用户数据分离存储,将待写入的用户数据压缩后写入硬盘,将元数据采用覆盖写的方式写入存储级内存,且不再对元数据进行压缩,提高了元数据的访问性能,同时缓解了高频率垃圾回收导致的性能下降,有效提高了实时压缩存储系统的性能。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种数据读写方法,其特征在于,包括:
获取数据写入请求,得到所述数据写入请求对应的待写入数据;
对所述待写入数据进行压缩,生成压缩后数据;
将所述压缩后数据写入硬盘的数据块中,并确定表征所述压缩后数据写入位置的元数据信息;
将所述元数据信息写入存储级内存中,所述元数据信息采用覆盖写的方式进行更新。
2.根据权利要求1所述的数据读写方法,其特征在于,所述将所述压缩后数据写入硬盘的数据块中,包括:
判断当前硬盘是否存在为所述压缩后数据分配的数据块;
若存在为所述压缩后数据分配的数据块,则判断当前数据块的剩余空间是否满足所述压缩后数据的长度;
若当前数据块的剩余空间满足所述压缩后数据的长度,则直接将所述压缩后数据写入已分配的数据块中;
若不存在为所述压缩后数据分配的数据块,或当前数据块的剩余空间不满足所述压缩后数据的长度,则在当前硬盘中为所述压缩后数据分配新的数据块,并在分配后执行数据写入操作。
3.根据权利要求1所述的数据读写方法,其特征在于,还包括:
接收数据更新请求,对所述数据更新请求对应的目标数据进行压缩,得到目标数据;
将所述目标数据写入对应的数据块中,并将所述目标数据对应的原始数据标记为无效数据。
4.根据权利要求3所述的数据读写方法,其特征在于,在所述将所述压缩后数据写入硬盘的数据块中之后,还包括:
记录所述数据块的状态信息,所述状态信息包括垃圾数据数量和/或剩余空间大小;
当检测到所述数据块的所述剩余空间大小低于第一预设阈值,或所述垃圾数据数量大于第二预设阈值后,启动垃圾回收进程,以便清除数据块中标记的所述无效数据。
5.根据权利要求4所述的数据读写方法,其特征在于,在所述启动垃圾回收进程之后,还包括:
对所述数据块的状态信息进行监控;
若检测到所述数据块的所述剩余空间大小超过第三预设阈值,或所述垃圾数据数量小于第四预设阈值后,关闭所述垃圾回收进程。
6.根据权利要求1至5任一项所述的数据读写方法,其特征在于,还包括:
获取数据读取请求,在所述存储级内存中查找所述数据读取请求对应的元数据信息;
根据所述元数据信息访问对应的数据块,以读取所述数据读取请求对应的待读取数据;
对所述待读取数据进行解压,并返回至所述数据读取请求的发起方。
7.一种数据读写装置,其特征在于,包括:
请求获取模块,用于获取数据写入请求,得到所述数据写入请求对应的待写入数据;
数据压缩模块,用于对所述待写入数据进行压缩,生成压缩后数据;
第一写入模块,用于将所述压缩后数据写入硬盘的数据块中,并确定表征所述压缩后数据写入位置的元数据信息;
第二写入模块,用于将所述元数据信息写入存储级内存中,所述元数据信息采用覆盖写的方式进行更新。
8.根据权利要求7所述的数据读写装置,其特征在于,所述第一写入模块,包括:
第一判断单元,用于判断当前硬盘是否存在为所述压缩后数据分配的数据块;
第二判断单元,用于若存在为所述压缩后数据分配的数据块,则判断当前数据块的剩余空间是否满足所述压缩后数据的长度;
数据写入单元,用于若当前数据块的剩余空间满足所述压缩后数据的长度,则直接将所述压缩后数据写入已分配的数据块中;
数据块分配单元,用于若不存在为所述压缩后数据分配的数据块,或当前数据块的剩余空间不满足所述压缩后数据的长度,则在当前硬盘中为所述压缩后数据分配新的数据块,并在分配后执行数据写入操作。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述数据读写方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述数据读写方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010437074.7A CN111625191A (zh) | 2020-05-21 | 2020-05-21 | 一种数据读写方法、装置及电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010437074.7A CN111625191A (zh) | 2020-05-21 | 2020-05-21 | 一种数据读写方法、装置及电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111625191A true CN111625191A (zh) | 2020-09-04 |
Family
ID=72272262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010437074.7A Pending CN111625191A (zh) | 2020-05-21 | 2020-05-21 | 一种数据读写方法、装置及电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625191A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540731A (zh) * | 2020-12-22 | 2021-03-23 | 北京百度网讯科技有限公司 | 数据的追加写方法、装置、设备、介质和程序产品 |
CN113157680A (zh) * | 2021-04-26 | 2021-07-23 | 北京顺实科技有限公司 | 一种适用于时序数据库的数据块增量压缩及查询方法 |
CN113300715A (zh) * | 2021-05-20 | 2021-08-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据处理方法、装置、硬件压缩设备以及介质 |
CN113568573A (zh) * | 2021-07-14 | 2021-10-29 | 锐掣(杭州)科技有限公司 | 数据存储方法、数据存储装置、存储介质及产品 |
CN113704206A (zh) * | 2021-10-29 | 2021-11-26 | 苏州浪潮智能科技有限公司 | 一种元数据的处理方法、装置、电子设备及存储介质 |
CN113703673A (zh) * | 2021-07-30 | 2021-11-26 | 郑州云海信息技术有限公司 | 一种单机数据存储方法及相关装置 |
CN113741822A (zh) * | 2021-11-05 | 2021-12-03 | 腾讯科技(深圳)有限公司 | 数据存储方法、数据读取方法及相关装置 |
CN114327278A (zh) * | 2021-12-30 | 2022-04-12 | 北京百度网讯科技有限公司 | 数据的追加写方法、装置、设备以及存储介质 |
CN114547030A (zh) * | 2022-01-20 | 2022-05-27 | 清华大学 | 多级时序数据压缩方法、装置、电子设备及存储介质 |
WO2022213736A1 (zh) * | 2021-04-08 | 2022-10-13 | 华为技术有限公司 | 一种将数据写入固态硬盘的方法 |
WO2023179742A1 (zh) * | 2022-03-25 | 2023-09-28 | 阿里云计算有限公司 | 数据访问方法及系统、硬件卸载设备、电子设备及介质 |
CN117670649A (zh) * | 2024-01-30 | 2024-03-08 | 南京砺算科技有限公司 | 元数据写入及读取方法、图形处理单元 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10146694B1 (en) * | 2017-04-28 | 2018-12-04 | EMC IP Holding Company LLC | Persistent cache layer in a distributed file system |
CN109669632A (zh) * | 2018-12-10 | 2019-04-23 | 浪潮电子信息产业股份有限公司 | 基于分布式对象存储系统的元数据写入方法、装置及介质 |
CN110147201A (zh) * | 2019-04-25 | 2019-08-20 | 平安科技(深圳)有限公司 | 在线压缩方法、装置、计算机设备及存储介质 |
CN110543281A (zh) * | 2019-07-19 | 2019-12-06 | 苏州浪潮智能科技有限公司 | 一种存储压缩实现方法、装置、设备及存储介质 |
CN110968269A (zh) * | 2019-11-18 | 2020-04-07 | 华中科技大学 | 基于scm与ssd的键值存储系统及读写请求处理方法 |
-
2020
- 2020-05-21 CN CN202010437074.7A patent/CN111625191A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10146694B1 (en) * | 2017-04-28 | 2018-12-04 | EMC IP Holding Company LLC | Persistent cache layer in a distributed file system |
CN109669632A (zh) * | 2018-12-10 | 2019-04-23 | 浪潮电子信息产业股份有限公司 | 基于分布式对象存储系统的元数据写入方法、装置及介质 |
CN110147201A (zh) * | 2019-04-25 | 2019-08-20 | 平安科技(深圳)有限公司 | 在线压缩方法、装置、计算机设备及存储介质 |
CN110543281A (zh) * | 2019-07-19 | 2019-12-06 | 苏州浪潮智能科技有限公司 | 一种存储压缩实现方法、装置、设备及存储介质 |
CN110968269A (zh) * | 2019-11-18 | 2020-04-07 | 华中科技大学 | 基于scm与ssd的键值存储系统及读写请求处理方法 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540731A (zh) * | 2020-12-22 | 2021-03-23 | 北京百度网讯科技有限公司 | 数据的追加写方法、装置、设备、介质和程序产品 |
CN112540731B (zh) * | 2020-12-22 | 2023-08-11 | 北京百度网讯科技有限公司 | 数据的追加写方法、装置、设备、介质和程序产品 |
WO2022213736A1 (zh) * | 2021-04-08 | 2022-10-13 | 华为技术有限公司 | 一种将数据写入固态硬盘的方法 |
CN113157680A (zh) * | 2021-04-26 | 2021-07-23 | 北京顺实科技有限公司 | 一种适用于时序数据库的数据块增量压缩及查询方法 |
CN113157680B (zh) * | 2021-04-26 | 2024-03-15 | 北京顺实科技有限公司 | 一种适用于时序数据库的数据块增量压缩及查询方法 |
CN113300715A (zh) * | 2021-05-20 | 2021-08-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据处理方法、装置、硬件压缩设备以及介质 |
CN113568573A (zh) * | 2021-07-14 | 2021-10-29 | 锐掣(杭州)科技有限公司 | 数据存储方法、数据存储装置、存储介质及产品 |
CN113568573B (zh) * | 2021-07-14 | 2023-12-22 | 锐掣(杭州)科技有限公司 | 数据存储方法、数据存储装置、存储介质及产品 |
CN113703673A (zh) * | 2021-07-30 | 2021-11-26 | 郑州云海信息技术有限公司 | 一种单机数据存储方法及相关装置 |
CN113703673B (zh) * | 2021-07-30 | 2023-09-22 | 郑州云海信息技术有限公司 | 一种单机数据存储方法及相关装置 |
CN113704206A (zh) * | 2021-10-29 | 2021-11-26 | 苏州浪潮智能科技有限公司 | 一种元数据的处理方法、装置、电子设备及存储介质 |
CN113741822B (zh) * | 2021-11-05 | 2022-02-15 | 腾讯科技(深圳)有限公司 | 数据存储方法、数据读取方法及相关装置 |
CN113741822A (zh) * | 2021-11-05 | 2021-12-03 | 腾讯科技(深圳)有限公司 | 数据存储方法、数据读取方法及相关装置 |
CN114327278A (zh) * | 2021-12-30 | 2022-04-12 | 北京百度网讯科技有限公司 | 数据的追加写方法、装置、设备以及存储介质 |
US11947842B2 (en) | 2021-12-30 | 2024-04-02 | Beijing Baidu Netcom Science Technology, Co., Ltd. | Method for writing data in append mode, device and storage medium |
CN114547030B (zh) * | 2022-01-20 | 2023-03-24 | 清华大学 | 多级时序数据压缩方法、装置、电子设备及存储介质 |
CN114547030A (zh) * | 2022-01-20 | 2022-05-27 | 清华大学 | 多级时序数据压缩方法、装置、电子设备及存储介质 |
WO2023179742A1 (zh) * | 2022-03-25 | 2023-09-28 | 阿里云计算有限公司 | 数据访问方法及系统、硬件卸载设备、电子设备及介质 |
CN117670649A (zh) * | 2024-01-30 | 2024-03-08 | 南京砺算科技有限公司 | 元数据写入及读取方法、图形处理单元 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625191A (zh) | 一种数据读写方法、装置及电子设备和存储介质 | |
CN108021510B (zh) | 操作对多重名称空间进行管理的存储装置的方法 | |
US9747298B2 (en) | Inline garbage collection for log-structured file systems | |
US20170177497A1 (en) | Compressed caching of a logical-to-physical address table for nand-type flash memory | |
US9582199B2 (en) | Method and an apparatus for analyzing data to facilitate data allocation in a storage device | |
US8438195B2 (en) | File system operating method and devices using the same | |
CN111352861B (zh) | 内存压缩方法、装置及电子设备 | |
US9727246B2 (en) | Memory device, computer system, and method of controlling memory device | |
WO2015119974A1 (en) | Flash memory compression | |
US8909895B2 (en) | Memory apparatus | |
US20140013032A1 (en) | Method and apparatus for controlling writing data in storage unit based on nand flash memory | |
CN111240601B (zh) | 一种分区空间的超级块确定方法、装置、设备及存储介质 | |
CN105094709A (zh) | 一种固态盘存储系统的动态数据压缩方法 | |
US11520698B2 (en) | Data storage device in a key-value storage architecture with data compression, and non-volatile memory control method | |
WO2022151985A1 (zh) | 基于虚拟内存的数据存储方法、装置、设备及存储介质 | |
CN110554837A (zh) | 易疲劳存储介质的智能交换 | |
CN111274160A (zh) | 数据存储方法、电子设备及介质 | |
US9524236B1 (en) | Systems and methods for performing memory management based on data access properties | |
CN111857574A (zh) | 一种写请求数据压缩方法、系统、终端及存储介质 | |
CN113835639A (zh) | 一种i/o请求处理方法、装置、设备及可读存储介质 | |
US20210200679A1 (en) | System and method for mixed tile-aware and tile-unaware traffic through a tile-based address aperture | |
CN113448492B (zh) | 数据存储系统以及非挥发式存储器控制方法 | |
CN107918654B (zh) | 文件解压缩方法、装置及电子设备 | |
CN113407463A (zh) | 控制存储器系统的方法、计算机装置以及存储介质 | |
CN113625953B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200904 |
|
RJ01 | Rejection of invention patent application after publication |