键值KV存储方法和装置制造方法及图纸

技术编号:16038164 阅读:28 留言:0更新日期:2017-08-19 19:59
本发明专利技术实施例提供了一种KV存储方法和装置,涉及数据存储领域,所述方法包括:在存储目标键值KV时,存储所述目标KV中的值Value至存储型内存SCM中的不定长页面;更新主索引和映射表,所述主索引中包括已存储的KV中的Key和逻辑地址之间的映射关系;所述映射表中包括已存储的KV的逻辑地址和物理地址之间的映射关系;在满足第一合并条件时,合并不定长页面中的Value至所述SCM中的定长页面;更新所述映射表;在满足第二合并条件时,合并定长页面中的Value至固态硬盘SSD中的块页面;再次更新所述映射表;解决了现有技术中KV存储的性能较低的问题,达到了可以提高KV存储的性能的效果。

【技术实现步骤摘要】
键值KV存储方法和装置
本专利技术实施例涉及数据存储
,特别涉及一种键值KV存储方法和装置。
技术介绍
随着SCM(StorageClassMemory,存储型内存)的发展,SCM已逐渐应用于KV(KeyVlaue,键值)存储中。在使用SCM进行存储时,可以使用SCM和SSD(SolidStateDrives,固态硬盘)混合存储。而现有技术中通常将SCM作为SSD的缓存使用,因此这并未充分利用SCM的特性,现有的KV存储的性能较低。
技术实现思路
为了解决现有技术中KV存储的存储性能低的问题,本专利技术实施例提供了一种KV存储方法和装置,所述技术方案如下:第一方面,提供了一种KV存储方法,该方法包括:在存储目标键值KV时,存储目标KV中的值Value至存储型内存SCM中的不定长页面;更新主索引和映射表,主索引中包括已存储的KV中的Key和逻辑地址之间的映射关系;映射表中包括已存储的KV的逻辑地址和物理地址之间的映射关系;在满足第一合并条件时,合并不定长页面中的Value至SCM中的定长页面;更新映射表;在满足第二合并条件时,合并定长页面中的Value至固态硬盘SSD中的块页面;再次更新映射表。通过将目标KV中的Value存储至SCM中的不定长页面,进而在满足第一合并条件时,将不定长页面中的Value合并至SCM中的定长页面,并在满足第二合并条件时,将SCM中的定长页面中的Value合并至SSD中;也即充分使用SCM和SSD进行混合存储;解决了现有技术中KV存储的性能较低的问题,达到了可以提高KV存储的性能的效果。在第一种可能的实现方式中,上述更新映射表的步骤可以包括:获取目标KV的目标逻辑地址以及在不定长页面中的目标物理地址;获取映射表中目标逻辑地址所对应的初始物理地址;生成物理地址链,物理地址链中包括目标物理地址以及设置在目标物理地址的预设位置处的指示信息,预设位置包括目标物理地址之前或者之后的位置,指示信息用于指向初始物理地址;将映射表中的初始物理地址更新为物理地址链。在第二种可能的实现方式中,在满足第一合并条件时,合并不定长页面中的Value至SCM中的定长页面;更新映射表,包括:在物理地址链满足预设条件时,将物理地址链所指向的物理地址中的Value合并至SCM中的定长页面;预设条件包括:物理地址链的长度达到预设长度,或者,物理地址链所对应的不定长页面的个数达到预设个数。在第三种可能的实现方式中,获取映射表中目标逻辑地址所对应的初始物理地址,包括:若映射表中不存在目标逻辑地址所对应的物理地址,则将初始物理地址确定为空。在第四种可能的实现方式中,在满足第一合并条件时,合并不定长页面中的Value至SCM中的定长页面;更新映射表,包括:在SCM中不定长页面的剩余资源低于第一阈值时,合并不定长页面中的Value至SCM中的定长页面。在第五种可能的实现方式中,在满足第二合并条件时,合并定长页面中的Value至SSD中的块页面,包括:在相邻的定长页面的个数达到预设个数时,合并预设个数的定长页面中的Value至块页面;相邻的定长页面是指存储的Value所对应的Key的取值连续的页面;或者,在SCM中的定长页面的空闲资源低于第二阈值时,合并定长页面中的Value至块页面。在第六种可能的实现方式中,该方法还包括:在存储目标KV中的Value至不定长页面之后,更新临时索引,临时索引中包括已存储的KV中的Key和Value在不定长页面中的物理地址之间的映射关系;更新主索引和映射表,包括:在提交目标KV之后,根据临时索引更新主索引和映射表。第二方面,提供了一种KV存储装置,该装置用于实现第一方面所述的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。本专利技术的这些方面或其他方面在以下实施例的描述中会更加简明易懂。附图说明图1是本专利技术各个实施例所涉及的存储设备的示意图。图2是本专利技术一个实施例提供的KV存储方法的方法流程图。图3是本专利技术一个实施例提供的KV存储方法的方法流程图。图4是本专利技术一个实施例提供的读取数据的方法流程图。图5是本专利技术一个实施例提供的读取数据的方法流程图。图6是本专利技术一个实施例提供的KV存储装置的框图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。下述各个实施例提供的KV存储方法可以用于存储设备中,如图1所示,该存储设备中可以包括Accessmethod(接入入口)11、StorageEngine(存储引擎)12、DRAM(DynamicRandomAccessMemory,动态随机存取存储器)13、SCM14和SSD15。其中:Accessmethod11用于提供对外的KV存储入口,Accessmethod11中包含临时索引和主索引。其中,临时索引用于索引未commit(提交)的KV,该临时索引中包括Key与Value的物理地址之间的映射关系;主索引用于索引已commit的KV,该主索引中包括Key与Value的逻辑地址之间的映射关系。StorageEngine12中包括映射表以及页面管理器。映射表包括已存储的KV的逻辑地址和物理地址之间的映射关系,物理地址用于指向DRAM13、SCM14和SSD15;页面管理器用于管理DRAM13、SCM14和SSD15,其用于申请和释放资源。SCM14可以提供三种接口。第一种接口提供类似于内存的方式,可以使用字节寻址,也即可以申请不定长的页面,其由硬件管理;比如,M-type;第二种接口类似于块设备的方式,也即申请的页面均为定长如固定为200kB,通常情况下其由软件管理;比如,S-type;第三种接口是指可以根据使用需求灵活结合第一种接口和第二种接口的接口。在下述各个实施例中,除特殊说明外,下述各个实施例中的SCM使用第三种接口。请参考图2,其示出了本专利技术一个实施例提供的KV存储方法的流程图,本实施例以该KV存储方法用于图1所示的存储设备中来举例说明。如图2所示,该KV存储方法包括:步骤201,在存储目标KV时,存储目标KV中的Value至SCM中的不定长页面。用户需要存储数据至存储设备时,用户可以触发数据存储请求,相应的,存储设备可以接收到该数据存储请求。其中,数据存储请求中携带有需要存储的目标KV,其中,目标KV可以为一个,也可以为多个,对此并不做限定。并且,该数据存储请求可以为首次存储目标KV的存储请求,也可以为更新已有Key的Value的更新请求,对此并不做限定。存储设备接收到数据存储请求之后,存储设备可以根据目标KV中的Vlaue的大小在M-type的SCM中申请一个不定长页面。其中,不定长页面的大小大于Vlaue的大小,并且通常等于Vlaue的大小和数据包头的大小的总和。在申请不定长页面时,存储设备可以根据M-type的SCM中各个存储地址被写入数据的写入次数,在M-type的SCM中申请写入次数满足预设条件的各个存储地址,申请到的各个存储地址共同组成该不定长页面。其中,预设条件包括写入次数最少,或者,写入次数小于预设次数,本实施例对此并不做限定。通过在申请不定长页面时申请写入次数满足本文档来自技高网...
键值KV存储方法和装置

【技术保护点】
一种键值KV存储方法,其特征在于,所述方法包括:在存储目标键值KV时,存储所述目标KV中的值Value至存储型内存SCM中的不定长页面;更新主索引和映射表,所述主索引中包括已存储的KV中的Key和逻辑地址之间的映射关系;所述映射表中包括已存储的KV的逻辑地址和物理地址之间的映射关系;在满足第一合并条件时,合并不定长页面中的Value至所述SCM中的定长页面;更新所述映射表;在满足第二合并条件时,合并定长页面中的Value至固态硬盘SSD中的块页面;再次更新所述映射表。

【技术特征摘要】
1.一种键值KV存储方法,其特征在于,所述方法包括:在存储目标键值KV时,存储所述目标KV中的值Value至存储型内存SCM中的不定长页面;更新主索引和映射表,所述主索引中包括已存储的KV中的Key和逻辑地址之间的映射关系;所述映射表中包括已存储的KV的逻辑地址和物理地址之间的映射关系;在满足第一合并条件时,合并不定长页面中的Value至所述SCM中的定长页面;更新所述映射表;在满足第二合并条件时,合并定长页面中的Value至固态硬盘SSD中的块页面;再次更新所述映射表。2.根据权利要求1所述的方法,其特征在于,所述更新映射表,包括:获取所述目标KV的目标逻辑地址以及在所述不定长页面中的目标物理地址;获取所述映射表中所述目标逻辑地址所对应的初始物理地址;生成物理地址链,所述物理地址链中包括所述目标物理地址以及设置在所述目标物理地址的预设位置处的指示信息,所述预设位置包括所述目标物理地址之前或者之后的位置,所述指示信息用于指向所述初始物理地址;将所述映射表中的所述初始物理地址更新为所述物理地址链。3.根据权利要求2所述的方法,其特征在于,所述在满足第一合并条件时,合并不定长页面中的Value至所述SCM中的定长页面,包括:在所述物理地址链满足预设条件时,将所述物理地址链所指向的物理地址中的Value合并至所述SCM中的定长页面;所述预设条件包括:所述物理地址链的长度达到预设长度,或者,所述物理地址链所对应的不定长页面的个数达到预设个数。4.根据权利要求2所述的方法,其特征在于,所述获取所述映射表中所述目标逻辑地址所对应的初始物理地址,包括:若所述映射表中不存在所述目标逻辑地址所对应的物理地址,则将所述初始物理地址确定为空。5.根据权利要求1所述的方法,其特征在于,所述在满足第一合并条件时,合并不定长页面中的Value至所述SCM中的定长页面,包括:在所述SCM中不定长页面的剩余资源低于第一阈值时,合并不定长页面中的Value至所述SCM中的定长页面。6.根据权利要求1所述的方法,其特征在于,所述在满足第二合并条件时,合并定长页面中的Value至SSD中的块页面,包括:在相邻的定长页面的个数达到预设个数时,合并所述预设个数的定长页面中的Value至所述块页面;所述相邻的定长页面是指存储的Value所对应的Key的取值范围连续的页面;或者,在所述SCM中的定长页面的空闲资源低于第二阈值时,合并所述定长页面中的Value至所述块页面。7.根据权利要求1至6任一所述的方法,其特征在于,所述方法还包括:在存储所述目标KV中的Value至所述不定长页面之后,更新临时索引,所述临时索引中包括已存储的KV中的Key和Value在不定长页面中的物理地址之间的映射关系;所述更新主索引和映射表,包括...

【专利技术属性】
技术研发人员:黄飞腾任波高波
申请(专利权)人:成都华为技术有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1