[发明专利]包括资源有效索引的键值存储系统有效
申请号: | 201780042781.2 | 申请日: | 2017-07-04 |
公开(公告)号: | CN109416694B | 公开(公告)日: | 2022-01-25 |
发明(设计)人: | J·G·本内特;傅忱;A·S·卡德 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F16/901 | 分类号: | G06F16/901 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 王茂华;彭梦晔 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 包括 资源 有效 索引 键值 存储系统 | ||
1.一种由一个或多个计算设备实现的键值存储系统,包括:
内容存储库,存储键值条目,所述键值条目包括全键和相应的关联值;
索引,包括:
散列桶,所述散列桶包括链接的散列桶单元的集合,
所述散列桶单元包括组成员资格过滤器和散列块,
所述组成员资格过滤器提供用于确定所考虑的组成员资格键是否与对应的散列桶单元相关联的机制,所述组成员资格键从所考虑的特定全键得到,
所述散列块包括散列条目,
所述散列条目至少提供部分键和地址值,
所述部分键从相应的所述全键得到,
所述地址值指定对应的键值条目在所述内容存储库中的位置,以及
最近创建的散列块中的一个或多个散列块被存储在存储器中索引存储库中,并且至少一些其他散列块被存储在辅助索引存储库中;
一个或多个处理器设备;以及
计算机可读存储介质,存储计算机可读指令,所述计算机可读指令当由所述一个或多个处理器设备执行时,使得所述一个或多个处理器设备:
通过将新的散列条目存储在链接的散列桶单元的特定集合的头部散列桶单元中,并且当先前头部散列桶单元不能容纳所述新的散列条目时创建新的头部散列桶单元,来至少基于创建时间按照时间顺序将所述散列条目存储在所述特定集合中,
接收针对所述内容存储库中的经修改的键值条目的修改信息,所述经修改的键值条目已经被垃圾收集功能修改,所述修改信息包括与所述经修改的键值条目相关联的旧的地址值、与所述经修改的键值条目相关联的经修改的地址值和与所述经修改的键值条目相关联的经修改的键;
至少基于所述修改信息在所述索引中查找匹配的散列条目;以及
至少基于所述修改信息更新所述匹配的散列条目。
2.根据权利要求1所述的键值存储系统,其中所述键值存储系统至少部分由与网络可访问存储服务相关联的一个或多个服务器计算设备实现。
3.根据权利要求1所述的键值存储系统,其中所述键值存储系统至少部分由客户计算设备实现。
4.根据权利要求1所述的键值存储系统,其中所述键值存储系统省略了用于对所述索引中的所述部分键进行排序的排序功能。
5.根据权利要求1所述的键值存储系统,其中一对部分键和组成员资格键至少基于对应的全键的不同部分。
6.根据权利要求1所述的键值存储系统,其中每个组成员资格过滤器对应于布隆过滤器。
7.根据权利要求1所述的键值存储系统,其中所述散列桶单元包括指针,所述指针指向散列块被存储在所述辅助索引存储库中的位置。
8.根据权利要求1所述的键值存储系统,其中所述计算机可读指令还使得所述一个或多个处理器设备:
接收新的全键和与新的键值条目相关联的新的值;
将所述新的全键和与所述新的键值条目相关联的所述新的值存储在所述内容存储库中;
散列所述新的全键以生成新的散列桶标识符;
至少基于所述新的全键生成新的部分键;
至少基于所述新的全键生成新的组成员资格过滤器条目;
至少基于所述新的散列桶标识符标识匹配的散列桶;
确定所述匹配的散列桶中的现有头部散列桶单元内包含的现有头部散列块是否已满;
响应于确定所述现有头部散列块已满:
创建具有新的头部散列块的新的头部散列桶单元;
将所述新的组成员资格过滤器条目添加到所述新的头部散列桶单元的组成员资格过滤器;以及
将新的散列条目存储在所述新的头部散列块中,所述新的散列条目至少包括所述新的部分键和所述新的键值条目被存储在所述内容存储库中的新的地址值;以及
响应于确定所述现有头部散列块未满:
将所述新的组成员资格过滤器条目添加到所述现有头部散列桶单元的组成员资格过滤器;以及
将所述新的散列条目存储在所述现有头部散列块中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780042781.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:服务器装置、终端装置以及信息处理方法
- 下一篇:在自动聊天中提供本地服务信息