[发明专利]用于键值存储的持久性存储器在审
申请号: | 201880025961.4 | 申请日: | 2018-03-15 |
公开(公告)号: | CN110678836A | 公开(公告)日: | 2020-01-10 |
发明(设计)人: | 周平 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06;G06F12/02;G06F16/182 |
代理公司: | 11644 北京清源汇知识产权代理事务所(特殊普通合伙) | 代理人: | 冯德魁;窦晓慧 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 持久存储介质 物理地址 直接存储 键操作 持久性存储器 持久性存储 存储器 键值存储 原位更新 直接访问 持久性 检索 | ||
公开了使用持久性存储器来进行键值存储,包括:接收包括键和相应的值的放置键操作;使用至少部分地基于键确定的物理地址来将键直接存储到持久性存储介质,其中,持久存储介质支持存储器持久性和原位更新;将值直接存储到持久存储介质;接收包括键的获取键操作;以及使用至少部分地基于键确定的物理地址来直接访问持久存储介质以检索与键对应的值。
背景技术
在传统存储器/存储分层结构上运行的现有键值数据库遭受显著的低效率。例如,传统的存储器/存储分层结构包括动态随机存取存储器(DRAM)和固态驱动器(SSD)和/或硬盘驱动器(HDD)的组合。来自应用的键值数据在它到达存储介质之前经过长的路径,并且每次访问都会产生多个磁盘I/O。
在将键值数据存储在传统存储器/存储分层结构中的一些示例处理中,键值记录在它们通过“压缩”处理写入磁盘文件之前首先存储在存储器数据结构中。为了改善响应时间,磁盘文件被组织成具有不同大小的多个级别(例如,级别0到级别3),最频繁(和最近)使用的记录最初存储在级别0中。当一个级别的文件填满时,所述文件的数据还通过压缩处理移动到下一级别。因此,查找键可能涉及跨多个级别读取多个文件。此外,一些数据在多个级别之间重复,因此浪费了一些存储空间。由于这些问题,传统的键值存储技术遭受高开销、高读/写放大和空间放大(浪费的空间)。
附图说明
在以下详细描述和附图中公开了本发明的各种实施例。
图1是示出存储在键值数据库中的各种示例键值对的图。
图2是示出传统键值存储方案的图。
图3是用于键值存储的持久性存储器的系统的实施例的图。
图4A是示出用于将接收到的键值对存储在用于键值存储的持久性存储器中的处理的实施例的流程图。
图4B是示出在用于键值存储的持久性存储器处检索存储的与接收到的键相对应的值的处理的实施例的流程图。
图4C是示出用于使用持久性存储器进行键值存储的处理的实施例的流程图。
图5是示出用于维护页面使用数据结构的处理的实施例的流程图。
图6A示出了存储的用于键页面的示例元数据。
图6B示出了存储的用于值页面示例元数据。
图7是示出用于在KVPM中存储新键值对的处理的实施例的流程图。
图8是示出用于对存储的键执行原位更新的处理的实施例的流程图。
图9是示出用于对存储的键执行异地更新的处理的实施例的流程图。
图10是示出用于执行放置键操作的处理的示例的流程图。
图11示出了使用放置键操作来将新键值对存储在KVPM的页面中的结果的示例。
图12示出了在原位更新模式中使用放置键操作来将先前存储的键的新值存储在KVPM的页面中的结果的示例。
图13示出了在异地更新模式中使用放置键操作来将先前存储的键的新值存储在KVPM的页面中的结果的示例。
图14是示出释放对应于存储的键的值的快照版本的实施例的流程图。
图15示出了与存储与键对应的值的各种版本相关联的值页面和键页面之间的指针的示例。
图16示出了释放与键对应的值的快照版本的示例。
图17是示出用于从KVPM检索对应于键的存储值的处理的实施例的流程图。
图18是示出用于执行获取键操作的处理的示例的流程图。
图19示出了使用获取键操作来从KVPM的页面检索对应于给定键的存储值的结果的示例。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201880025961.4/2.html,转载请声明来源钻瓜专利网。