[发明专利]复合分区函数有效
申请号: | 201580057337.9 | 申请日: | 2015-10-14 |
公开(公告)号: | CN107077497B | 公开(公告)日: | 2020-07-28 |
发明(设计)人: | J·A·科雷茨基;D·A·范布林克 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27 |
代理公司: | 永新专利商标代理有限公司 72002 | 代理人: | 刘瑜;王英 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 复合 分区 函数 | ||
1.一种由计算设备实现的方法,所述方法包括:
利用第一分区函数来对数据库分区;以及
通过以下方式来对所述数据库重新分区:
创建位于重新分区时存在的分区中的数据条目的键成员资格的记录,其中,所述键成员资格的记录被配置为记录与位于所述重新分区时存在的所述分区中的数据条目相关联的键值,并且其中,所述重新分区被执行,使得位于所述重新分区时存在的分区中的所述数据条目保持其各自的位置;
添加与第二分区函数相关联的一个或多个新分区;
定义用于后续数据库操作的复合分区函数,所述复合分区函数被配置为:
对具有在所述键成员资格的记录中找到的键值的数据应用所述第一分区函数;并且
对具有在所述键成员资格的记录中未找到的键值的数据应用所述第二分区函数。
2.如权利要求1所述的方法,其中,所述键成员资格的记录包括压缩的数据结构,所述压缩的数据结构被配置为识别与在所述重新分区时存在于所述数据库中的数据条目对应的键。
3.如权利要求1所述的方法,其中,所述键成员资格的记录包括布隆过滤器。
4.根据权利要求1所述的方法,其中,所述复合分区函数被配置为组合与连续的分区布置相关联的两个或更多个分区函数。
5.根据权利要求1所述的方法,其中,所述第一分区函数和所述第二分区函数被配置为散列函数,当被应用于数据请求的键值时,所述散列函数返回识别与所述键值对应的所述数据库的分区的数据。
6.根据权利要求1所述的方法,其中,所述第一分区函数包括针对所述数据库的先前的重新分区建立的以用于添加附加存储容量的在先的复合函数,并且其中,被定义的所述复合分区函数被配置为对于具有在所述键成员资格的记录中找到的键值的数据应用所述在先的复合函数,而对于其他数据应用所述第二分区函数。
7.根据权利要求1所述的方法,其中,所述复合分区函数被配置为将数据的分配偏置于在所述新分区上放置新数据条目以平衡所述数据库的分区上的数据的分布。
8.根据权利要求1所述的方法,其中,所述复合分区函数将新数据条目的至少一些键值误识别为在所述键成员资格的记录中被找到,使得与误识别的键值相关联的数据条目被分配给所述重新分区时存在的所述分区并且一致地定位在所述重新分区时存在的所述分区内。
9.一种计算设备,包括:
处理系统;以及
一个或多个模块,当由所述处理系统执行时,所述一个或多个模块执行用于数据库的重新分区以增加存储容量的操作,所述操作包括:
创建位于所述重新分区时存在的所述数据库的分区中的数据条目的键成员资格的记录,在重新分区时存在的所述数据库的分区与第一分区函数相关联;
添加与第二分区函数相关联的新分区;以及
定义用于处理后续的数据库请求的复合分区函数,其被配置为:
对于包括在所述键成员资格的记录中找到的键值的数据请求应用所述第一分区函数;并且
对于包括未在所述键成员资格的记录中找到的键值的数据请求应用所述第二分区函数,使得位于所述重新分区时存在的分区中的数据条目保持其在所述重新分区时存在的所述分区中的各自的位置。
10.根据权利要求9所述的计算设备,其中,所述键成员资格的记录被配置为布隆过滤器,所述布隆过滤器具有针对与所述重新分区时存在的数据条目相关联的键而设置的位值,以用于经由所述布隆过滤器来指示所述键的成员资格。
11.根据权利要求10所述的计算设备,其中:
所述布隆过滤器根据能够配置的容限而产生假阳性错误,其使得在重新分区之后创建的数据条目中的至少一部分被误识别并且被使用所述第一分区函数来处理,所述假阳性错误是一致的,使得误识别的数据条目被使用所述第一分区函数而可靠地定位;以及
所述布隆过滤器的紧凑程度取决于所述能够配置的容限。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201580057337.9/1.html,转载请声明来源钻瓜专利网。