CN107678685A - 基于闪存的存储路径优化的键值存储管理方法 - Google Patents
基于闪存的存储路径优化的键值存储管理方法 Download PDFInfo
- Publication number
- CN107678685A CN107678685A CN201710812821.9A CN201710812821A CN107678685A CN 107678685 A CN107678685 A CN 107678685A CN 201710812821 A CN201710812821 A CN 201710812821A CN 107678685 A CN107678685 A CN 107678685A
- Authority
- CN
- China
- Prior art keywords
- key assignments
- flash memory
- management system
- storage management
- data
- 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
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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to 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)
- 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)
- Memory System (AREA)
Abstract
本发明提出一种基于闪存的存储路径优化的键值存储管理方法,包括:键值存储管理系统直接对裸闪存设备进行管理,绕过文件系统和闪存转换层;在进行物理空间分配时,将键值文件以闪存块为单位分布到闪存设备的不同闪存通道上,同时将键值存储文件以闪存块的整数倍进行存储;在进行数据压缩时,根据前台用户的访问特征,动态的采用相应数量的闪存通道对压缩数据进行写入;在进行数据缓存时,采用压缩感知的缓存算法,对压缩的数据不进行缓存;在进行请求调度时,优先调度用户和前台的压缩请求,根据当前闪存存储设备的可用空间,判断擦除请求调度的优先级。本发明提高了键值存储系统的性能,减少了对闪存设备的写入量,延长了设备的使用寿命。
Description
技术领域
本发明涉及闪存存储技术领域,特别涉及一种基于闪存的存储路径优化的键值存储管理方法。
背景技术
闪存是一种电子式可擦除编程存储器。与传统的磁盘介质相比,闪存具有读写带宽高、访问延迟低、功耗低、稳定性强的特点,目前已经开始在数据中心、个人电脑、移动设备上普及。闪存以页为单位进行读写,当闪存重写一个页之前,需要先进行擦除操作。闪存以块为单位进行擦除,一个闪存块中包含几百个闪存页。闪存的单元具有有限次的擦写操作,即每个闪存单元具有有限的寿命。闪存盘的内部结构和磁盘也有显著的区别。在闪存盘内部,闪存芯片通过不同的通道连接到闪存控制器。在闪存芯片中,封装有多个闪存颗粒,每个颗粒可以独立执行指令。每个颗粒包含多个闪存片,每个闪存片拥有独立的寄存器,可提供多闪存片之间的流水指令执行。通过不同级别的并发,固态盘可提供充足的访问带宽。这一特性被称为闪存设备的内部并发。
目前通用的固态盘是以闪存盘为基础构建的,通过使用闪存转换层对闪存的读写擦除、内部并发进行管理,并向软件系统提供与传统磁盘相同的读写接口。闪存转换层主要包含三种功能:地址映射、垃圾回收和磨损均衡。地址映射是用于记录闪存异地更新过程中逻辑地址和闪存物理地址的映射关系;垃圾回收是选择并擦除失效的闪存页,以恢复空闲状态,留作新数据写入;磨损均衡是为保证数据的可靠存储,将数据均匀的写入每个闪存页中。除此之外,闪存转换层还包含ECC(Error Correction Code,错误检查和纠正)校验、坏块管理等功能。
闪存转换层对闪存的特有性质进行管理,对上层的软件透明。这样现有的软件程序能够在不做任何修改的情况下,运行在固态盘上,节省了软件二次开发和部署的成本。但是将现有的软件,如键值存储管理软件直接部署到闪存存储系统上还存在很多的问题和额外的开销。现有的键值存储管理软件是运行在文件系统之上的。文件系统在功能上,与闪存转换层存在着冗余。例如文件系统与闪存转换层都具有空间分配、垃圾回收、寻址的功能。这些冗余的功能,给软件的性能带来了额外的软件开销。同时,文件系统与闪存转换层存在着语义隔离的问题。闪存转换层不能针对上层的键值存储管理软件做特定的优化,而文件系统也无法感知底层闪存的特性,发挥其内部并发的特性。另一个突出的问题是,在整个当前键值存储系统的存储路径上,所有的软件中间件是基于以前磁盘的特性进行设计和开发的,没有根据闪存和键值存储系统的特性进行优化,不能发挥两者的性能优势。目前针对如何优化基于闪存的键值存储的存储路径的研究较少。
发明内容
本发明旨在至少解决上述技术问题之一。
为此,本发明的目的在于提出一种基于闪存的存储路径优化的键值存储管理方法,该方法提高了键值存储系统的性能,减少了对闪存设备的写入量,延长了设备的使用寿命。
为了实现上述目的,本发明的实施例提出了一种基于闪存的存储路径优化的键值存储管理方法,包括以下步骤:S1:通过键值存储管理系统直接对裸闪存设备进行管理,绕过文件系统和闪存转换层;S2:在所述键值存储管理系统进行物理空间分配时,采用并发数据布局方法,将键值文件以闪存块为单位分布到闪存设备的不同闪存通道上,同时,键值存储管理系统将键值存储文件以闪存块的整数倍进行存储;S3:在所述键值存储管理系统进行数据压缩时,采用动态压缩方法,根据前台用户的访问特征,动态的采用相应数量的闪存通道对压缩数据进行写入;S4:在所述键值存储管理系统进行数据缓存时,采用压缩感知的缓存算法,对压缩的数据不进行缓存,节省出的空间用于缓存用户的读写数据;S5:在所述键值存储管理系统进行请求调度时,采用基于优先级的调度策略,优先调度用户和前台的压缩请求,根据当前闪存存储设备的可用空间,判断擦除请求调度的优先级。
另外,根据本发明上述实施例的基于闪存的存储路径优化的键值存储管理方法还可以具有如下附加的技术特征:
在一些示例中,在所述S1中,所述裸闪存设备直接将设备的内部结构信息,导出到用户态,并通过特定的接口,使得键值存储管理系统能够在用户态,直接对裸闪存设备进行管理,以绕过传统键值存储管理系统结构中的文件系统和闪存转换层,其中,所述设备的内部结构信息至少包括闪存通道数量,闪存块大小,闪存的读写、擦除控制。
在一些示例中,在所述S2中,所述并发数据布局方法,具体包括:所述键值存储管理系统通过裸闪存设备传递的闪存通道数量和闪存块大小,设定键值文件的长度;所述键值存储管理系统在存储键值文件时,将键值文件以闪存块长度为单位进行分割,将不同的闪存块分布到不同的闪存通道中;键值文件中的数据在闪存块中,以轮询的方式进行分布。
在一些示例中,在所述S3中,所述动态压缩方法,具体包括:所述键值存储管理系统在对键值数据进行后台压缩时,先判断前台用户请求的读写比例,当用户的写比例大于第一预设比例时,所述键值存储管理系统使用所有的闪存通道写入压缩后的键值文件,当用户的请求中,读比例高于第二预设比例时,所述键值存储管理系统会使用一半的闪存通道写入压缩文件;所述键值存储管理系统通过对连续两次压缩操作之间的用户请求类型进行记录,来进行判断读写比例;对于用户的前台压缩请求,所述键值存储管理系统会使用所有的闪存通道,进行数据写入。
在一些示例中,压缩数据的方法,具体包括:所述键值存储管理系统在进行数据压缩时,先读取需要被压缩的键值文件,所述键值存储管理系统会同时读取多个文件中的固定长度到缓存中;在将缓存中的键值数据压缩完成后,再读取多个文件中的后续数据,依次类推,所有要被压缩的文件读取完;所述键值存储管理系统会将压缩后的数据写入到闪存设备中,压缩过程结束。
在一些示例中,在所述S4中,所述压缩感知的缓存算法,具体包括:所述键值存储管理系统在压缩过程启动后,将需要被压缩的键值文件的第一部分读入到缓存中,并对缓存中的数据进行压缩;在所述键值存储管理系统压缩时,所述键值存储管理系统的缓存会启动预取过程,将需要被压缩的键值文件的后一部分数据,预先加载到缓存中;在第一部分数据压缩完毕后,所述键值存储管理系统对预取的后部分数据进行压缩,此时缓存将第一部分已经使用过的数据,替换出缓存;对于前台的用户读写请求,所述键值存储管理系统的缓存采用针对前台请求优化的缓存算法。
在一些示例中,在对前台用户的请求缓存时,针对前台请求优化的缓存算法包括:对前台用户的读写请求,使用闪存页的长度为缓存粒度,进行缓存管理;对前台用户的读请求,不进行预取处理;当缓存空间不足时,按照最近最少使用的原则,对缓存数据进行替换。
在一些示例中,在所述S5中,所述基于优先级的调度策略,具体包括:对于前台用户的读写请求,所述键值存储管理系统在调度时,给予其高优先级,进行调度;对于后台数据压缩操作产生的读写请求,所述键值存储管理系统在调度时,给予其低优先级,进行调度;在同一个优先级别中,读请求优先于写请求进行调度;对于擦除请求,所述键值存储管理系统在调度时,会根据当前闪存设备的使用情况,动态调整其优先级。
在一些示例中,所述键值存储管理系统动态调整擦出请求的优先级,具体包括:所述键值存储管理系统记录当前闪存设备的可用空间;当可用空间小于总存储空间的第三预设比例时,所述键值存储管理系统给予擦除请求最高的优先级,擦除请求最先调度;当可用空间大于总存储空间的第三预设比例时,所述键值存储管理系统给予擦除请求最低的优先级,擦除请求最晚调度。
在一些示例中,所述第三预设比例为40%。
根据本发明实施例的基于闪存的存储路径优化的键值存储管理方法,在存储架构上,去除了传统键值存储管理系统结构中的文件系统和闪存转换层,在用户态直接对键值数据在闪存上的存储进行管理,消除了由文件系统和闪存转换层带来的语义隔离、冗余管理的问题,避免了其带来的额外垃圾回收和写放大的开销;在键值数据的物理存储上,使用并发数据布局方法,通过将键值文件的大小设计成闪存块的整数倍,并将属于同一个键值文件的闪存块分布到不同的闪存通道中,从而发挥闪存的内部并发优势,提升数据读取和写入的有效带宽,降低读写延迟;在对键值数据进行压缩时,使用动态压缩方法,根据前台用户的读写比例,动态的减少压缩数据写入时所占的通道数量,能够降低数据在后台压缩时,对前台用户读写的干扰;在对键值数据进行缓存时,使用压缩感知的缓存算法,优先淘汰压缩数据,将更多的空间用来存储用户的读写数据,能够有效提高缓存的命中率;在对闪存的读写请求进行调度时,使用基于优先级的调度策略,优先调度用户和前台的压缩请求,能够减少用户可见的延迟。因此,该方法提高了键值存储系统的性能,减少了对闪存设备的写入量,延长了设备的使用寿命。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据一个本发明实施例的基于闪存的存储路径优化的键值存储管理方法的流程图;
图2是根据本发明一个实施例的基于闪存的存储路径优化的键值存储管理方法的实现原理示意图;
图3是根据本发明一个实施例的并发数据布局的示意图;
图4是根据本发明一个实施例的动态压缩的示意图;
图5是根据本发明一个实施例的压缩感知的缓存算法的示意图;
图6是根据本发明一个实施例的基于优先级的调度策略的示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
以下结合附图描述根据本发明实施例的基于闪存的存储路径优化的键值存储管理方法。
图1是根据本发明一个实施例的基于闪存的存储路径优化的键值存储管理方法的流程图。如图1所示,该方法包括以下步骤:
步骤S1:通过键值存储管理系统直接对裸闪存设备进行管理,绕过文件系统和闪存转换层。
具体地,在步骤S1中,所述的裸闪存设备是指闪存存储设备去除了传统闪存固态盘的闪存转换层。裸闪存设备直接将设备的内部结构信息,导出到用户态,并通过特定的接口,使得键值存储管理系统能够在用户态,直接对裸闪存设备进行管理,以绕过传统键值存储管理系统结构中的文件系统和闪存转换层。其中,设备的内部结构信息至少包括闪存通道数量,闪存块大小,闪存的读写、擦除控制。
换言之,即,裸闪存设备例如包括:去除闪存转换层的闪存盘设备,将闪存设备内部信息和控制命令传递到用户态键值存储管理系统的内核态设备驱动。键值存储管理系统直接对裸闪存设备进行管理,包括:键值存储管理系统为需要写入的键值文件,分配物理闪存页;键值存储管理系统使用擦除请求,回收用过的物理闪存空间,这一过程也叫垃圾回收;键值存储管理系统对读取和写入的数据进行缓存;键值存储管理系统对发向闪存设备的读请求、写请求、擦除请求进行调度。
步骤S2:在键值存储管理系统进行物理空间分配时,采用并发数据布局方法,将键值文件以闪存块为单位分布到闪存设备的不同闪存通道上,同时,键值存储管理系统将键值存储文件以闪存块的整数倍进行存储。
具体地,在步骤S2中,并发数据布局方法,具体包括:键值存储管理系统通过裸闪存设备传递的闪存通道数量和闪存块大小,设定键值文件的长度,其中,键值文件的长度是闪存通道数和闪存块长度的乘积;键值存储管理系统在存储键值文件时,将键值文件以闪存块长度为单位进行分割,将不同的闪存块分布到不同的闪存通道中;键值文件中的数据在闪存块中,以轮询的方式进行分布。
步骤S3:在键值存储管理系统进行数据压缩时,采用动态压缩方法,根据前台用户的访问特征,动态的采用相应数量的闪存通道对压缩数据进行写入。
具体地,在步骤S3中,动态压缩方法具体包括:键值存储管理系统在对键值数据进行后台压缩时,先判断前台用户请求的读写比例,当用户的写比例大于第一预设比例(即表示写比例较高)时,键值存储管理系统使用所有的闪存通道写入压缩后的键值文件,当用户的请求中,读比例高于第二预设比例(即表示读比例较高)时,键值存储管理系统会使用一半的闪存通道写入压缩文件;键值存储管理系统通过对连续两次压缩操作之间的用户请求类型进行记录,来进行判断读写比例;对于用户的前台压缩请求,键值存储管理系统会使用所有的闪存通道,进行数据写入。其中,判断前台用户请求读写比例的方法,包括:键值存储管理系统对两次压缩之间的前台用户读写请求次数进行记录;通过比较用户读请求和写请求的次数的比,能够得出当前用户是读比例较高还是写比例较高。
其中,在上述过程中,压缩数据的方法,具体包括:键值存储管理系统在进行数据压缩时,先读取需要被压缩的键值文件,键值存储管理系统会同时读取多个文件中的固定长度到缓存中;在将缓存中的键值数据压缩完成后,再读取多个文件中的后续数据,依次类推,所有要被压缩的文件读取完;键值存储管理系统会将压缩后的数据写入到闪存设备中,压缩过程结束。
步骤S4:在键值存储管理系统进行数据缓存时,采用压缩感知的缓存算法,对压缩的数据不进行缓存,节省出的空间用于缓存用户的读写数据。
具体地,在步骤S4中,压缩感知的缓存算法,具体包括:键值存储管理系统在压缩过程启动后,将需要被压缩的键值文件的第一部分读入到缓存中,并对缓存中的数据进行压缩;在键值存储管理系统压缩时,键值存储管理系统的缓存会启动预取过程,将需要被压缩的键值文件的后一部分数据,预先加载到缓存中;在第一部分数据压缩完毕后,键值存储管理系统对预取的后部分数据进行压缩,此时缓存将第一部分已经使用过的数据,替换出缓存;对于前台的用户读写请求,键值存储管理系统的缓存采用针对前台请求优化的缓存算法。
其中,在对前台用户的请求缓存时,针对前台请求优化的缓存算法包括:对前台用户的读写请求,使用闪存页的长度为缓存粒度,进行缓存管理;对前台用户的读请求,不进行预取处理;当缓存空间不足时,按照最近最少使用的原则,对缓存数据进行替换。
步骤S5:在键值存储管理系统进行请求调度时,采用基于优先级的调度策略,优先调度用户和前台的压缩请求,根据当前闪存存储设备的可用空间,判断擦除请求调度的优先级。
具体地,在步骤S5中,基于优先级的调度策略,具体包括:对于前台用户的读写请求,键值存储管理系统在调度时,给予其高优先级,进行调度;对于后台数据压缩操作产生的读写请求,键值存储管理系统在调度时,给予其低优先级,进行调度;在同一个优先级别中,读请求优先于写请求进行调度;对于擦除请求,键值存储管理系统在调度时,会根据当前闪存设备的使用情况,动态调整其优先级。
其中,键值存储管理系统动态调整擦出请求的优先级的方法,具体包括:键值存储管理系统记录当前闪存设备的可用空间;当可用空间小于总存储空间的第三预设比例时,键值存储管理系统给予擦除请求最高的优先级,擦除请求最先调度;当可用空间大于总存储空间的第三预设比例时,键值存储管理系统给予擦除请求最低的优先级,擦除请求最晚调度。其中,第三预设比例例如为40%。换言之,即键值存储管理系统记录当前闪存设备的可用空间;当可用空间小于总存储空间的40%时,键值存储管理系统给予擦除请求最高的优先级,擦除请求最先调度;当可用空间大于总存储空间的40%时,键值存储管理系统给予擦除请求最低的优先级,擦除请求最晚调度。
综上,根据本发明实施例的基于闪存的存储路径优化的键值存储管理方法,键值存储管理系统直接部署在裸闪存设备上,裸闪存设备通过特定借口将闪存的内部结构信息和读、写、擦除控制接口传递到键值存储管理系统;键值存储管理系统通过并发数据布局方法,对键值文件在闪存的物理单元上进行分布;键值存储管理系统采用动态压缩方法,根据前台用户的读写比例,动态选择压缩使用的闪存通道数量;键值存储管理系统,通过压缩感知的缓存算法,对压缩的键值数据采取预取和优先淘汰的策略,对前台用户请求的数据,采取非预取,最近最少使用的策略进行替换的策略;键值存储管理系统采用基于优先级的调度策略对闪存设备的读、写、擦除请求进行调度,其中,用户的读写请求的优先级高于后台压缩请求的优先级,擦除请求的优先级与当前闪存设备的可用空间成反比。
进一步地,裸闪存设备是固态盘设备去除了闪存转换层,并通过特定的接口,将闪存设备的内部信息和控制命令传递到用户态的键值存储管理软件中。其中,设备的内部信息包括:闪存设备的通道数量、闪存块的长度、闪存页的长度、闪存芯片的容量;设备的控制命令包括:读闪存页、写闪存页、擦除闪存块命令。通过将这些信息和控制命令传递到键值存储管理系统中,使得键值存储管理系统能直接控制底层闪存设备的空间管理、垃圾回收等工作,无需文件系统、闪存转换层的参与,消除了原有这两层的存在带来的功能冗余、语义隔离的问题,减小了系统软件上的开销,提高系统整体性能。
因此,该方法在整个存储路径上的中间件功能都得到了特定的优化,具体包括:针对数据的布局分布,设计了并发数据布局的优化;针对数据压缩,设计了动态压缩方法;针对数据缓存,设计了压缩感知的缓存算法;针对请求调度,设计了基于优先级的调度策略。这些优化措施,减少了键值存储管理系统在数据存储时的软件开销,提高了系统的性能;同时,减少了对闪存设备的写入量,利于设备寿命的提升。换言之,即该方法使用键值管理系统直接管理底层闪存设备,绕过文件系统与闪存转换层的冗余开销,优化存储路径,从而减少了键值存储管理系统在数据存储时的软件开销,提高了系统的性能;同时,减少了对闪存设备的写入量,利于设备寿命的提升。
为了便于更好地理解本发明,以下结合附图及具体的实施例,对本发明上述实施例的基于闪存的存储路径优化的键值存储管理方法进行示例性描述。
图2是根据本发明一个实施例的基于闪存的存储路径优化的键值存储管理方法的实现原理示意图。结合图2所示,在具体实施例中,该基于闪存的存储路径优化的键值存储管理方法的功能结构主要分成三个部分,分别是用户态的键值存储管理软件、内核态的裸闪存驱动、裸闪存设备。裸闪存设备是由闪存芯片,闪存通道和闪存控制固件构成的,其上去掉了传统固态盘的闪存转换层。裸闪存驱动运行在操作系统的内核态,该驱动负责将裸闪存设备的内部信息,包括:闪存通道数量、闪存页大小、闪存块大小、闪存芯片容量,以及读、写、擦除命令接口传递到用户态的键值存储管理软件;同时,裸闪存驱动还负责将用户态键值存储管理软件发出的读、写、擦除请求转发到裸闪存设备上。用户态的键值存储管理软件,通过裸闪存驱动传递的闪存内部信息和读、写、擦除控制接口,在用户态直接对底层闪存硬件进行管理,通过并发数据布局、动态压缩、压缩感知的缓存算法和基于优先级的调度策略,对存储路径进行优化。
图3是并发数据布局的功能示意图。在本发明的实施例中,键值存储管理软件将键值文件的长度设置为四个闪存块的长度分布在四个闪存同道中,称为块组。当键值存储管理系统写入键值文件时,键值文件对应的闪存块,分布在不同的闪存通道上。因此,键值文件能够同时,并行的写入闪存的四个通道中的块上,在文件的写操作上,发挥了闪存设备的内部并发特性。在键值文件的内部,键值数据是以轮询的方式分布在四个闪存块中。当键值文件中的连续数据被读取时,连续的键值是以轮询的方式分布在四个闪存通道中,即这些数据将同时并发地从闪存设备中读出,在文件的读操作上,发挥了闪存设备的内部并发特性。同时,因为在管理上,键值文件与块组的长度是一致的,键值存储管理系统以块组为单位对闪存设备进行管理,这减少了键值存储管理系统对闪存物理空间管理上的开销。
在本发明的实施例中,动态压缩的功能示意图如图4所示。键值存储管理系统对两次压缩之间的前台用户读写请求次数进行记录;通过比较用户读请求和写请求的次数的比,能够得出当前用户是读比例较高还是写比例较高。当用户的写比例较高时,键值存储管理系统会使用所有的闪存通道写入压缩后的键值文件,以缓解前台用户数据写入的压力,如图4的实线所示,系统使用全并发度写入压缩文件;当用户的请求中,读比例较高时,键值存储管理系统会使用一半的闪存通道写入压缩文件,以减少后台的数据压缩对前台用户读请求的干扰,降低用户读请求的延迟,如图4的虚线,半并发度压缩所示;对于用户的前台压缩请求,键值存储管理系统会使用所有的闪存通道,进行数据写入,以减少用户的等待时延。
在本发明的实施例中,键值存储管理系统在进行数据压缩时,会先读取需要被压缩的键值文件,键值存储管理系统会同时读取多个要被压缩的文件中的固定长度到缓存中;在将缓存中的键值数据压缩完成后,再读取多个文件中的后续数据,依次类推,直到所有要被压缩的文件读取完毕;键值存储管理系统会将压缩后的数据写入到闪存设备中,压缩过程结束。压缩感知的缓存算法的功能结构图如图5所示,键值存储管理系统在压缩过程启动后,将需要被压缩的多个键值文件的首部分读入到缓存中,并对缓存中的数据进行压缩;在键值存储管理系统压缩时,键值存储管理系统的缓存会启动预取过程,将需要被压缩的多个键值文件的后一部分数据,预先加载到缓存中;在第一部分数据压缩完毕后,键值存储管理系统对预取的后部分数据进行压缩,此时缓存将第一部分已经使用过的数据,替换出缓存;对于前台的用户读写请求,键值存储管理系统的缓存采用针对前台请求优化的缓存算法。对前台用户的读写请求,使用闪存页的长度为缓存粒度,进行缓存管理;对前台用户的读请求,不进行预取处理;当缓存空间不足时,按照最近最少使用的原则,对缓存数据进行替换。
在本发明的实施例中,键值存储管理系统使用基于优先级的调度策略对请求进行调度,如基于优先级的调度策略示意图如图6所示。对于前台用户的读写请求,键值存储管理系统在调度时,给予其高优先级,进行调度;对于后台数据压缩操作产生的读写请求,键值存储管理系统在调度时,给予其低优先级,进行调度;在同一个优先级别中,读请求优先于写请求进行调度;对于擦除请求,键值存储管理系统在调度时,会根据当前闪存设备的使用情况,动态调整其优先级。键值存储管理系统记录当前闪存设备的可用空间;当可用空间小于总存储空间的40%时,键值存储管理系统给予擦除请求最高的优先级,擦除请求最先调度;当可用空间大于总存储空间的40%时,键值存储管理系统给予擦除请求最低的优先级,擦除请求最晚调度。
综上,根据本发明实施例的基于闪存的存储路径优化的键值存储管理方法,在存储架构上,去除了传统键值存储管理系统结构中的文件系统和闪存转换层,在用户态直接对键值数据在闪存上的存储进行管理,消除了由文件系统和闪存转换层带来的语义隔离、冗余管理的问题,避免了其带来的额外垃圾回收和写放大的开销;在键值数据的物理存储上,使用并发数据布局方法,通过将键值文件的大小设计成闪存块的整数倍,并将属于同一个键值文件的闪存块分布到不同的闪存通道中,从而发挥闪存的内部并发优势,提升数据读取和写入的有效带宽,降低读写延迟;在对键值数据进行压缩时,使用动态压缩方法,根据前台用户的读写比例,动态的减少压缩数据写入时所占的通道数量,能够降低数据在后台压缩时,对前台用户读写的干扰;在对键值数据进行缓存时,使用压缩感知的缓存算法,优先淘汰压缩数据,将更多的空间用来存储用户的读写数据,能够有效提高缓存的命中率;在对闪存的读写请求进行调度时,使用基于优先级的调度策略,优先调度用户和前台的压缩请求,能够减少用户可见的延迟。因此,该方法提高了键值存储系统的性能,减少了对闪存设备的写入量,延长了设备的使用寿命。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同限定。
Claims (10)
1.一种基于闪存的存储路径优化的键值存储管理方法,其特征在于,包括以下步骤:
S1:通过键值存储管理系统直接对裸闪存设备进行管理,绕过文件系统和闪存转换层;
S2:在所述键值存储管理系统进行物理空间分配时,采用并发数据布局方法,将键值文件以闪存块为单位分布到闪存设备的不同闪存通道上,同时,键值存储管理系统将键值存储文件以闪存块的整数倍进行存储;
S3:在所述键值存储管理系统进行数据压缩时,采用动态压缩方法,根据前台用户的访问特征,动态的采用相应数量的闪存通道对压缩数据进行写入;
S4:在所述键值存储管理系统进行数据缓存时,采用压缩感知的缓存算法,对压缩的数据不进行缓存,节省出的空间用于缓存用户的读写数据;
S5:在所述键值存储管理系统进行请求调度时,采用基于优先级的调度策略,优先调度用户和前台的压缩请求,根据当前闪存存储设备的可用空间,判断擦除请求调度的优先级。
2.根据权利要求1所述的基于闪存的存储路径优化的键值存储管理方法,其特征在于,在所述S1中,所述裸闪存设备直接将设备的内部结构信息,导出到用户态,并通过特定的接口,使得键值存储管理系统能够在用户态,直接对裸闪存设备进行管理,以绕过传统键值存储管理系统结构中的文件系统和闪存转换层,其中,所述设备的内部结构信息至少包括闪存通道数量,闪存块大小,闪存的读写、擦除控制。
3.根据权利要求1所述基于闪存的存储路径优化的键值存储管理方法,其特征在于,在所述S2中,所述并发数据布局方法,具体包括:
所述键值存储管理系统通过裸闪存设备传递的闪存通道数量和闪存块大小,设定键值文件的长度;
所述键值存储管理系统在存储键值文件时,将键值文件以闪存块长度为单位进行分割,将不同的闪存块分布到不同的闪存通道中;
键值文件中的数据在闪存块中,以轮询的方式进行分布。
4.根据权利要求1所述的基于闪存的存储路径优化的键值存储管理方法,其特征在于,在所述S3中,所述动态压缩方法,具体包括:
所述键值存储管理系统在对键值数据进行后台压缩时,先判断前台用户请求的读写比例,当用户的写比例大于第一预设比例时,所述键值存储管理系统使用所有的闪存通道写入压缩后的键值文件,当用户的请求中,读比例高于第二预设比例时,所述键值存储管理系统会使用一半的闪存通道写入压缩文件;
所述键值存储管理系统通过对连续两次压缩操作之间的用户请求类型进行记录,来进行判断读写比例;
对于用户的前台压缩请求,所述键值存储管理系统会使用所有的闪存通道,进行数据写入。
5.根据权利要求4所述的基于闪存的存储路径优化的键值存储管理方法,其特征在于,压缩数据的方法,具体包括:
所述键值存储管理系统在进行数据压缩时,先读取需要被压缩的键值文件,所述键值存储管理系统会同时读取多个文件中的固定长度到缓存中;
在将缓存中的键值数据压缩完成后,再读取多个文件中的后续数据,依次类推,所有要被压缩的文件读取完;
所述键值存储管理系统会将压缩后的数据写入到闪存设备中,压缩过程结束。
6.根据权利要求1所述的基于闪存的存储路径优化的键值存储管理方法,其特征在于,在所述S4中,所述压缩感知的缓存算法,具体包括:
所述键值存储管理系统在压缩过程启动后,将需要被压缩的键值文件的第一部分读入到缓存中,并对缓存中的数据进行压缩;
在所述键值存储管理系统压缩时,所述键值存储管理系统的缓存会启动预取过程,将需要被压缩的键值文件的后一部分数据,预先加载到缓存中;
在第一部分数据压缩完毕后,所述键值存储管理系统对预取的后部分数据进行压缩,此时缓存将第一部分已经使用过的数据,替换出缓存;
对于前台的用户读写请求,所述键值存储管理系统的缓存采用针对前台请求优化的缓存算法。
7.根据权利要求6所述的基于闪存的存储路径优化的键值存储管理方法,其特征在于,在对前台用户的请求缓存时,针对前台请求优化的缓存算法包括:
对前台用户的读写请求,使用闪存页的长度为缓存粒度,进行缓存管理;
对前台用户的读请求,不进行预取处理;
当缓存空间不足时,按照最近最少使用的原则,对缓存数据进行替换。
8.根据权利要求1所述的基于闪存的存储路径优化的键值存储管理方法,其特征在于,在所述S5中,所述基于优先级的调度策略,具体包括:
对于前台用户的读写请求,所述键值存储管理系统在调度时,给予其高优先级,进行调度;
对于后台数据压缩操作产生的读写请求,所述键值存储管理系统在调度时,给予其低优先级,进行调度;
在同一个优先级别中,读请求优先于写请求进行调度;
对于擦除请求,所述键值存储管理系统在调度时,会根据当前闪存设备的使用情况,动态调整其优先级。
9.根据权利要求8所述的基于闪存的存储路径优化的键值存储管理方法,其特征在于,所述键值存储管理系统动态调整擦出请求的优先级,具体包括:
所述键值存储管理系统记录当前闪存设备的可用空间;
当可用空间小于总存储空间的第三预设比例时,所述键值存储管理系统给予擦除请求最高的优先级,擦除请求最先调度;
当可用空间大于总存储空间的第三预设比例时,所述键值存储管理系统给予擦除请求最低的优先级,擦除请求最晚调度。
10.根据权利要求9所述的基于闪存的存储路径优化的键值存储管理方法,其特征在于,所述第三预设比例为40%。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710812821.9A CN107678685B (zh) | 2017-09-11 | 2017-09-11 | 基于闪存的存储路径优化的键值存储管理方法 |
PCT/CN2018/094909 WO2019047612A1 (zh) | 2017-09-11 | 2018-07-06 | 基于闪存的存储路径优化的键值存储管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710812821.9A CN107678685B (zh) | 2017-09-11 | 2017-09-11 | 基于闪存的存储路径优化的键值存储管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107678685A true CN107678685A (zh) | 2018-02-09 |
CN107678685B CN107678685B (zh) | 2020-01-17 |
Family
ID=61135865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710812821.9A Active CN107678685B (zh) | 2017-09-11 | 2017-09-11 | 基于闪存的存储路径优化的键值存储管理方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107678685B (zh) |
WO (1) | WO2019047612A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108509353A (zh) * | 2018-03-14 | 2018-09-07 | 清华大学 | 基于裸闪存的对象存储构建方法及装置 |
WO2019047612A1 (zh) * | 2017-09-11 | 2019-03-14 | 清华大学 | 基于闪存的存储路径优化的键值存储管理方法 |
CN113742304A (zh) * | 2021-11-08 | 2021-12-03 | 杭州雅观科技有限公司 | 一种混合云的数据存储方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114362976A (zh) * | 2020-09-27 | 2022-04-15 | 华为云计算技术有限公司 | 一种裸机的对接存储方法、装置及系统 |
CN113742127B (zh) * | 2021-09-16 | 2023-07-07 | 重庆大学 | 一种裸闪存文件系统的故障恢复方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436420A (zh) * | 2010-10-20 | 2012-05-02 | 微软公司 | 使用辅助存储器的低ram空间、高吞吐量的持久键值存储 |
US20140133228A1 (en) * | 2012-11-09 | 2014-05-15 | Sandisk Technologies Inc. | Key-Value Addressed Storage Drive Using NAND Flash Based Content Addressable Memory |
CN106469198A (zh) * | 2016-08-31 | 2017-03-01 | 华为技术有限公司 | 键值存储方法、装置及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5524144B2 (ja) * | 2011-08-08 | 2014-06-18 | 株式会社東芝 | key−valueストア方式を有するメモリシステム |
US20170139594A1 (en) * | 2015-11-17 | 2017-05-18 | Samsung Electronics Co., Ltd. | Key-value integrated translation layer |
CN107066498B (zh) * | 2016-12-30 | 2020-04-14 | 成都华为技术有限公司 | 键值kv存储方法和装置 |
CN107678685B (zh) * | 2017-09-11 | 2020-01-17 | 清华大学 | 基于闪存的存储路径优化的键值存储管理方法 |
-
2017
- 2017-09-11 CN CN201710812821.9A patent/CN107678685B/zh active Active
-
2018
- 2018-07-06 WO PCT/CN2018/094909 patent/WO2019047612A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436420A (zh) * | 2010-10-20 | 2012-05-02 | 微软公司 | 使用辅助存储器的低ram空间、高吞吐量的持久键值存储 |
US20140133228A1 (en) * | 2012-11-09 | 2014-05-15 | Sandisk Technologies Inc. | Key-Value Addressed Storage Drive Using NAND Flash Based Content Addressable Memory |
CN106469198A (zh) * | 2016-08-31 | 2017-03-01 | 华为技术有限公司 | 键值存储方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
秦雄军等: "一种基于裸闪存的Key-Value数据块优化方法", 《计算机研究与发展》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019047612A1 (zh) * | 2017-09-11 | 2019-03-14 | 清华大学 | 基于闪存的存储路径优化的键值存储管理方法 |
CN108509353A (zh) * | 2018-03-14 | 2018-09-07 | 清华大学 | 基于裸闪存的对象存储构建方法及装置 |
CN113742304A (zh) * | 2021-11-08 | 2021-12-03 | 杭州雅观科技有限公司 | 一种混合云的数据存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107678685B (zh) | 2020-01-17 |
WO2019047612A1 (zh) | 2019-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107678685A (zh) | 基于闪存的存储路径优化的键值存储管理方法 | |
US9514055B2 (en) | Distributed media cache for data storage systems | |
CN102576293B (zh) | 固态存储设备和分层存储系统中的数据管理 | |
CN105242871B (zh) | 一种数据写入方法及装置 | |
CN101604226B (zh) | 一种基于虚拟raid构建动态缓存池提高存储系统性能的方法 | |
US7076598B2 (en) | Pipeline accessing method to a large block memory | |
CN102646069B (zh) | 一种延长固态盘使用寿命的方法 | |
US20080235433A1 (en) | Hybrid density memory storage device and control method thereof | |
CN102779096B (zh) | 一种基于页块面三维的闪存地址映射方法 | |
CN101236482B (zh) | 降级状态下处理数据的方法及独立冗余磁盘阵列系统 | |
US8533397B2 (en) | Improving performance in a cache mechanism by way of destaging data in partial strides | |
CN100561386C (zh) | 一种数据保存方法和装置 | |
CN106293990B (zh) | 一种基于批量写校验的独立磁盘冗余阵列读写方法 | |
TW201437807A (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
CN109671458A (zh) | 管理闪存模块的方法及相关的闪存控制器 | |
CN102135942A (zh) | 一种存储设备中实现损耗均衡的方法及存储设备 | |
CN105630413B (zh) | 一种磁盘数据的同步回写方法 | |
US20120131264A1 (en) | Storage device | |
CN101105774B (zh) | 闪存记忆体在进行数据存取时的逻辑与物理地址转换方法 | |
CN100580669C (zh) | 在Flash存储介质上的关于文件分配表的缓存实现方法 | |
US7822923B2 (en) | Storage control program, storage control apparatus, and storage control method | |
CN106371950B (zh) | 一种实现raid级别转换的方法及装置 | |
CN101833519B (zh) | 一种减少存储技术设备中地址映射表常驻内存的方法 | |
CN100468548C (zh) | 具有可变索引结构的硬盘驱动器的缺陷管理 | |
CN117312188A (zh) | 混合ssd数据缓存预取系统及方法 |
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 |