[发明专利]一种基于MongoDB冷热数据自动分片的方法在审
申请号: | 201910886479.6 | 申请日: | 2019-09-19 |
公开(公告)号: | CN110597468A | 公开(公告)日: | 2019-12-20 |
发明(设计)人: | 程永新;孙玉颖;阮飞鹏 | 申请(专利权)人: | 上海新炬网络技术有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 31290 上海科律专利代理事务所(特殊普通合伙) | 代理人: | 袁亚军 |
地址: | 201707 上海市青浦区外青*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据分片 热数据 数据迁移 冷热 热负载 区间确定 数据分布 数据分区 数据负载 数据判定 贝叶斯 不均衡 热表 热块 算法 预设 扫描 访问 时机 | ||
本发明公开了一种基于MongoDB冷热数据自动分片的方法,包括以下步骤:步骤S101:扫描各个数据分片的热数据比例值;步骤S102:判断是否有热数据比例值超过预设阈值,如果有热数据比例值超结束;步骤S103:根据数据分区key区间确定适合的数据分片大小;步骤S104:将最大热块数据迁移到最小冷块上。本发明提供的基于MongoDB冷热数据自动分片的方法,通过朴素贝叶斯算法对数据的访问特性进行冷热数据判定,将数据分片中热数据的所占比重作为热负载值以确定数据迁移时机,并根据数据分片之间的热负载差异建立新的数据迁移策略,避免数据分布不均导致热表访问频繁以及数据负载不均衡。
技术领域
本发明涉及一种冷热数据自动分片的方法,尤其涉及一种基于MongoDB冷热数据自动分片的方法。
背景技术
MongoDB是一个基于分布式文件存储的数据库。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。MongoDB最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB的Auto-Sharding机制可帮助MongoDB数据库解决高扩展性、高伸缩性问题,在不影响当前集群工作状态的情况下平衡集群负载。但是Auto-Sharding机制在数据分片及制定数据迁移策略时仅仅考虑数据量平衡,并未考虑数据访问时效,从而造成服务器之间的负载差异。
因此有必要提供一种基于数据冷热访问特征的Auoto-Sharding优化机制。
发明内容
本发明所要解决的技术问题是提供一种基于MongoDB冷热数据自动分片的方法,根据数据分片之间的热负载差异建立新的数据迁移策略,避免数据分布不均导致热表访问频繁以及数据负载不均衡。
本发明为解决上述技术问题而采用的技术方案是提供一种基于MongoDB冷热数据自动分片的方法,其中,包括以下步骤:
步骤S101:扫描各个数据分片的热数据比例值;
步骤S102:判断是否有热数据比例值超过预设阈值,如果有热数据比例值超过预设阈值,则跳转到步骤S103,如果没有热数据比例值超过预设阈值,则结束;
步骤S103:根据数据分区key区间确定适合的数据分片大小;
步骤S104:将最大热块数据迁移到最小冷块上。
优选地,所述步骤S101中的各个分片的热数据比例值通过朴素贝叶斯算法计算。
优选地,朴素贝叶斯算法具体用以下公式计算:
其中,s(Yhot|S)表示热数据的最大概率,s(Xcold|S)表示冷数据的最大概率,s(t)、s(o)为常数,s(Yhot)表示热数据的先验概率,s(Xcold)表示冷数据的先验概率,s(t|Yhot)表示热数据在最大概率比中存在的时间,s(o|Yhot)表示热数据在最大概率中的权重比,s(t|Xcold)表示冷数据在最大概率比中存在的时间,s(o|Xcold)表示冷数据在最大概率中的权重比,t为数据的存在时间,o表示数据操作占数据库总操作量的权重比。
优选地,所述热数据的先验概率s(Yhot)为20%,所述冷数据的先验概率s(Xcold)为80%。
优选地,R表示读数据的次数,U表示更新数据的次数,I表示插入数据的次数,D表示删除数据的次数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海新炬网络技术有限公司,未经上海新炬网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910886479.6/2.html,转载请声明来源钻瓜专利网。