[发明专利]包括资源有效索引的键值存储系统有效
申请号: | 201780042781.2 | 申请日: | 2017-07-04 |
公开(公告)号: | CN109416694B | 公开(公告)日: | 2022-01-25 |
发明(设计)人: | J·G·本内特;傅忱;A·S·卡德 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F16/901 | 分类号: | G06F16/901 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 王茂华;彭梦晔 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 包括 资源 有效 索引 键值 存储系统 | ||
本文中描述了一种用于使用资源有效索引来与内容存储库中的键值条目进行交互的键值存储系统。索引提供包括多个散列桶的数据结构。每个散列桶包括散列桶单元的链表。键值存储系统基于其创建时间以分布式方式在存储器中索引存储库与辅助索引存储库之间存储散列桶单元的每个链表中的散列条目。键值存储系统还被配置为按时间顺序存储链接的散列桶单元的特定集合中的散列条目以反映其创建时间。索引还包括影响键值存储系统的性能的各种可调参数。
背景技术
键值存储系统使用索引来访问内容存储库中的信息。例如,键值存储系统使用索引将给定键映射到对应的值在内容存储库中的位置。通常,索引使用存储器中散列表来执行这个映射操作。然而,提供以资源有效方式提供令人满意的性能的存储器中索引仍然是一项具有挑战性的任务。
发明内容
本文中描述了一种用于使用资源有效索引来与内容存储库中的键值条目进行交互的键值存储系统。总的来说,索引使得键值存储系统能够从存储器使用、操作速度和处理器负载的角度提供良好的性能。
根据一个说明性方面,索引提供包括多个散列桶的数据结构。每个散列桶包括散列桶单元的链表。每个散列桶单元又包括组成员资格过滤器(例如,布隆过滤器)和散列块。散列块存储散列条目的集合。组成员资格过滤器提供用于测试对应的散列块是否可以包含所寻求的特定散列条目的机制。
根据另一说明性方面,散列块中的每个散列条目包括部分键。与内容存储库中提供的完整对应键相比,部分键的大小减小。
根据另一说明性方面,键值存储系统以分布式方式将与散列桶相关联的散列块存储在存储器中索引存储库与辅助索引存储库(诸如但不限于基于磁盘的辅助索引存储库)之间。
根据另一说明性方面,键值存储系统被配置为按照通常的时间顺序将散列条目存储在链接的散列桶单元的特定集合中,例如通过将每个新的散列条目存储在特定集合的头部散列桶单元中并且当先前头部散列桶单元不能容纳新的散列条目时创建新的头部散列桶单元。
根据另一说明性方面,键值存储系统不包括用于对键值进行排序的排序功能。因此,键值存储系统可以消除与排序功能相关联的处理负担。
根据另一说明性方面,索引还包括影响键值存储系统的性能的各种可调参数(本文中描述)。开发人员可以调节参数的值以平衡存储器消耗、系统速度和处理器负载,以实现期望的整体性能水平。
根据另一说明性方面,键值存储系统包括用于响应于垃圾收集过程来更新索引的机制。该机制提供了与垃圾收集过程的特定性质无关的服务。
根据另一说明性方面,键值存储系统提供了一种在内容存储库中保留(并且稍后访问)每个键值条目的多个版本的方式。
以上概括的功能可以表现在各种类型的系统、设备、组件、方法、计算机可读存储介质、数据结构、图形用户界面呈现、制品等中。
提供本“发明内容”是为了以简化的形式介绍一些概念;这些概念在下面的“具体实施方式”中进一步描述。本“发明内容”不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
附图说明
图1示出了使用资源有效索引的键值存储系统的概述。
图2示出了由索引使用的数据结构的一部分。图2还示出了数据结构与存储在内容存储库中的键值条目的关系。
图3示出了键值存储系统可以在存储器中索引存储库与辅助索引存储库之间分布散列条目的一种方式。
图4示出了用于计算各种键相关值以用于图1的键值存储系统的功能。
图5示出了根据一个实现的用于实现图1的键值存储系统的计算机相关设备。
图6和7一起示出了用于将新的键值条目添加到图1的键值存储系统的过程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780042781.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:服务器装置、终端装置以及信息处理方法
- 下一篇:在自动聊天中提供本地服务信息