CN107678685B - 基于闪存的存储路径优化的键值存储管理方法 - Google Patents

基于闪存的存储路径优化的键值存储管理方法 Download PDF

Info

Publication number
CN107678685B
CN107678685B CN201710812821.9A CN201710812821A CN107678685B CN 107678685 B CN107678685 B CN 107678685B CN 201710812821 A CN201710812821 A CN 201710812821A CN 107678685 B CN107678685 B CN 107678685B
Authority
CN
China
Prior art keywords
key value
flash memory
value storage
storage management
management system
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.)
Active
Application number
CN201710812821.9A
Other languages
English (en)
Other versions
CN107678685A (zh
Inventor
陆游游
舒继武
张佳程
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201710812821.9A priority Critical patent/CN107678685B/zh
Publication of CN107678685A publication Critical patent/CN107678685A/zh
Priority to PCT/CN2018/094909 priority patent/WO2019047612A1/zh
Application granted granted Critical
Publication of CN107678685B publication Critical patent/CN107678685B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management 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 (5)

1.一种基于闪存的存储路径优化的键值存储管理方法,其特征在于,包括以下步骤:
S1:通过键值存储管理***直接对裸闪存设备进行管理,绕过文件***和闪存转换层,其中,所述裸闪存设备直接将设备的内部结构信息,导出到用户态,并通过特定的接口,使得键值存储管理***能够在用户态,所述键值存储管理***不包括文件***和闪存转换层,直接对裸闪存设备进行管理,其中,所述设备的内部结构信息至少包括闪存通道数量,闪存块大小,闪存的读写、擦除控制信息;
S2:在所述键值存储管理***进行物理空间分配时,采用并发数据布局方法,将键值文件以闪存块为单位分布到闪存设备的不同闪存通道上,同时,键值存储管理***将键值存储文件以闪存块的整数倍进行存储;
S3:在所述键值存储管理***进行数据压缩时,采用动态压缩方法,根据前台用户的访问特征,动态的采用相应数量的闪存通道对压缩数据进行写入,其中,所述动态压缩方法,具体包括:所述键值存储管理***在对键值数据进行后台压缩时,先判断前台用户请求的读写比例,当用户的写比例大于第一预设比例时,所述键值存储管理***使用所有的闪存通道写入压缩后的键值文件,当用户的请求中,读比例高于第二预设比例时,所述键值存储管理***会使用一半的闪存通道写入压缩文件;所述键值存储管理***通过对连续两次压缩操作之间的用户请求类型进行记录,来进行判断读写比例;对于用户的前台压缩请求,所述键值存储管理***会使用所有的闪存通道,进行数据写入;
S4:在所述键值存储管理***进行数据缓存时,采用压缩感知的缓存算法,对压缩的数据不进行缓存,节省出的空间用于缓存用户的读写数据,其中,所述压缩感知的缓存算法,具体包括:所述键值存储管理***在压缩过程启动后,将需要被压缩的键值文件的第一部分读入到缓存中,并对缓存中的数据进行压缩;在所述键值存储管理***压缩时,所述键值存储管理***的缓存会启动预取过程,将需要被压缩的键值文件的后一部分数据,预先加载到缓存中;在第一部分数据压缩完毕后,所述键值存储管理***对预取的后部分数据进行压缩,此时缓存将第一部分已经使用过的数据,替换出缓存;对于前台用户的读写请求,所述键值存储管理***的缓存采用针对前台用户的读写请求优化的缓存算法,所述缓存算法包括:对前台用户的读写请求,使用闪存页的长度为缓存粒度,进行缓存管理;对前台用户的读请求,不进行预取处理;当缓存空间不足时,按照最近最少使用的原则,对缓存数据进行替换;
S5:在所述键值存储管理***进行请求调度时,采用基于优先级的调度策略,优先调度用户和前台的压缩请求,根据当前闪存设备的可用空间,判断擦除请求调度的优先级,其中,所述基于优先级的调度策略,具体包括:对于前台用户的读写请求,所述键值存储管理***在调度时,给予其高优先级,进行调度;对于后台数据压缩操作产生的读写请求,所述键值存储管理***在调度时,给予其低优先级,进行调度;在同一个优先级别中,读请求优先于写请求进行调度;对于擦除请求,所述键值存储管理***在调度时,会根据当前闪存设备的使用情况,动态调整其优先级。
2.根据权利要求1所述基于闪存的存储路径优化的键值存储管理方法,其特征在于,在所述S2中,所述并发数据布局方法,具体包括:
所述键值存储管理***通过裸闪存设备传递的闪存通道数量和闪存块大小,设定键值文件的长度;
所述键值存储管理***在存储键值文件时,将键值文件以闪存块长度为单位进行分割,将不同的闪存块分布到不同的闪存通道中;
键值文件中的数据在闪存块中,以轮询的方式进行分布。
3.根据权利要求1所述的基于闪存的存储路径优化的键值存储管理方法,其特征在于,所述键值存储管理***进行数据压缩,具体包括:
所述键值存储管理***在进行数据压缩时,先读取需要被压缩的键值文件,所述键值存储管理***会同时读取多个键值文件中的固定长度到缓存中;
在将缓存中的键值数据压缩完成后,再读取多个键值文件中的后续数据,依次类推,所有要被压缩的键值文件读取完;
所述键值存储管理***会将压缩后的数据写入到闪存设备中,压缩过程结束。
4.根据权利要求1所述的基于闪存的存储路径优化的键值存储管理方法,其特征在于,所述键值存储管理***动态调整擦除请求的优先级,具体包括:
所述键值存储管理***记录当前闪存设备的可用空间;
当可用空间小于总存储空间的第三预设比例时,所述键值存储管理***给予擦除请求最高的优先级,擦除请求最先调度;
当可用空间大于总存储空间的第三预设比例时,所述键值存储管理***给予擦除请求最低的优先级,擦除请求最晚调度。
5.根据权利要求4所述的基于闪存的存储路径优化的键值存储管理方法,其特征在于,所述第三预设比例为40%。
CN201710812821.9A 2017-09-11 2017-09-11 基于闪存的存储路径优化的键值存储管理方法 Active CN107678685B (zh)

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 CN107678685A (zh) 2018-02-09
CN107678685B true 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)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107678685B (zh) * 2017-09-11 2020-01-17 清华大学 基于闪存的存储路径优化的键值存储管理方法
CN108509353A (zh) * 2018-03-14 2018-09-07 清华大学 基于裸闪存的对象存储构建方法及装置
CN114362976A (zh) * 2020-09-27 2022-04-15 华为云计算技术有限公司 一种裸机的对接存储方法、装置及***
CN113742127B (zh) * 2021-09-16 2023-07-07 重庆大学 一种裸闪存文件***的故障恢复方法
CN113742304B (zh) * 2021-11-08 2022-02-15 杭州雅观科技有限公司 一种混合云的数据存储方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436420A (zh) * 2010-10-20 2012-05-02 微软公司 使用辅助存储器的低ram空间、高吞吐量的持久键值存储
CN106469198A (zh) * 2016-08-31 2017-03-01 华为技术有限公司 键值存储方法、装置及***

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5524144B2 (ja) * 2011-08-08 2014-06-18 株式会社東芝 key−valueストア方式を有するメモリシステム
US9098403B2 (en) * 2012-11-09 2015-08-04 Sandisk Technologies Inc. NAND flash based content addressable memory
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 清华大学 基于闪存的存储路径优化的键值存储管理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436420A (zh) * 2010-10-20 2012-05-02 微软公司 使用辅助存储器的低ram空间、高吞吐量的持久键值存储
CN106469198A (zh) * 2016-08-31 2017-03-01 华为技术有限公司 键值存储方法、装置及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种基于裸闪存的Key-Value数据块优化方法;秦雄军等;《计算机研究与发展》;20170815;第54卷(第6期);说明书第1327-1332页 *

Also Published As

Publication number Publication date
CN107678685A (zh) 2018-02-09
WO2019047612A1 (zh) 2019-03-14

Similar Documents

Publication Publication Date Title
CN107678685B (zh) 基于闪存的存储路径优化的键值存储管理方法
US10013177B2 (en) Low write amplification in solid state drive
EP1561168B1 (en) Method and apparatus for splitting a logical block
US9817755B2 (en) Garbage collection management in memories
EP2396729B1 (en) Memory system and method of controlling memory system
US8631192B2 (en) Memory system and block merge method
US9804784B2 (en) Low-overhead storage of a hibernation file in a hybrid disk drive
US8468292B2 (en) Solid state drive data storage system and method
JP5418808B2 (ja) 適応ハイブリッド密度メモリ記憶装置の制御方法、及び適応ハイブリッド密度メモリ記憶装置
KR101552207B1 (ko) 예비 영역을 가지는 반도체 메모리 장치
US20110296089A1 (en) Programming method and device for a buffer cache in a solid-state disk system
CN103608782A (zh) Lsb页面和msb页面中的选择性数据存储
EP2122473A2 (en) Adaptive memory system for enhancing the performance of an external computing device
CN105339910B (zh) 在混合驱动器中的虚拟nand容量扩展
JP2012108912A (ja) データ格納装置、使用者装置及びそれの住所マッピング方法
KR20100009464A (ko) 메모리 스토리지 장치 및 그 제어 방법
US11036429B2 (en) Memory control method, memory storage device and memory control circuit unit to determine a source block using interleaving information
JP2011070365A (ja) メモリシステム
CN110377233A (zh) Ssd读性能优化方法、装置、计算机设备及存储介质
CN114185492A (zh) 一种基于强化学习的固态硬盘垃圾回收算法
US20190317694A1 (en) Memory management method, memory storage device and memory control circuit unit
KR20110070656A (ko) 플래시 메모리의 데이터 처리 방법 및 장치
US20220413758A1 (en) Efficient Handling of Background Operations for Improving Sustained Performance of Host Reads and Writes
US11036414B2 (en) Data storage device and control method for non-volatile memory with high-efficiency garbage collection
US20240168683A1 (en) Folding Zone Management Optimization in Storage Device

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