【技术实现步骤摘要】
数据平衡处理方法、装置及电子设备
[0001]本申请涉及计算机
,尤其涉及一种数据平衡处理方法
、
装置及电子设备
。
技术介绍
[0002]随着计算机的发展,数据的种类和数量越来越多,数据库存储系统的种类和数量也越来越多
。
数据库存储系统中的数据需要进行合理的管理,以确保数据的准确以及数据查询
、
处理的效率
。
随着摩尔定律的结束和信息时代的到来,数据管理系统利用机群来处理快速增长的大量数据
。
因此基于共享无系统的并行数据管理系统由于其可扩展性而被广泛使用
。
在无共享的并行数据管理系统中,记录被分片到一个节点集群中,这些节点通过互连网络相互通信,使得这些系统在节点数量增加时可以水平扩展
。
数据库存储系统中存储有大量的数据,如何实现数据库存储系统中各个节点的数据平衡,是保证系统性能和查询效率的关键
。
[0003]早期的并行数据管理系统,通常假设节点集群相对静态,然而这个假设现在已经不成立了,动态调整集群大小是可取的,有很多原因,例如:在云计算时代,动态地调整集群大小可以在工作负载发生变化时更经济
。
此外,随着存储数据随时间积累,集群也需要扩展才能更好地服务于查询工作负载,为了扩展集群存储的记录必须重新平衡,以便可以被重新分区到新的节点集合中
。
不管是数据库存储系统中各个节点对于数据的存储,还是需要对系统中的数据进行调整,都需要尽量 ...
【技术保护点】
【技术特征摘要】
1.
一种数据平衡处理方法,其特征在于,所述方法应用于数据库存储系统,所述方法包括:接收节点移除或新增节点触发的数据平衡请求,并获取所述数据库存储系统中各个节点的本地数据存储目录;所述本地数据存储目录用于表征各个节点中的数据在各个节点的分区数据集中的数据存储桶中的存储路径;根据各个节点的本地数据存储目录,确定出各个节点中分区数据集的分区负载和数据存储桶的桶负载;从各个节点的分区数据集中选择分区负载最大的第一分区数据集和分区负载最小的第二分区数据集;将所述第一分区数据集中桶负载最小的数据存储桶预分配到所述第二分区数据集中,分别计算数据存储桶预分配前后所述第一分区数据集和所述第二分区数据集之间的分配前负载差异和分配后负载差异,若所述分配后负载差异小于所述分配前负载差异,则将所述桶负载最小的数据存储桶转移至所述第二分区数据集对应的本地数据存储目录,将所述桶负载最小的数据存储桶作为待移动数据存储桶,将所述第二分区数据集作为所述待移动数据存储桶的目标分区数据集,并返回所述从各个节点的分区数据集中选择所述分区负载最大的第一分区数据集和所述分区负载最小的第二分区数据集的步骤,直至所述第一分区数据集和所述第二分区数据集的分配后负载差异大于或等于分配前负载差异;将所述待移动数据存储桶中的数据移动至对应的目标分区数据集,以实现所述数据库存储系统中的数据平衡
。2.
根据权利要求1所述的方法,其特征在于,所述数据平衡请求为移除指定节点触发的,所述根据各个节点的本地数据存储目录,确定出各个节点中分区数据集的分区负载和数据存储桶的桶负载,包括:根据各个节点的本地数据存储目录,确定出各个节点中分区数据集的原始分区负载和数据存储桶的桶负载;将所述指定节点中的数据存储桶分配给原始分区负载最小的分区数据集中;更新各个节点的本地数据存储目录,并根据更新后的本地数据存储目录,获得各个节点中分区数据集的分区负载
。3.
根据权利要求1所述的方法,其特征在于,每个数据存储桶中包括内存组件和磁盘组件,所述本地数据存储目录中包括各个节点中每个分区数据集对应的主索引,所述主索引采用日志结构合并树格式,并通过所述日志结构合并树格式将分区数据集中各个数据存储桶中的数据索引关系分开存储,所述将所述待移动数据存储桶中的数据移动至对应的目标分区数据集,包括:根据所述待移动数据存储桶对应的原分区数据集的主索引,在所述待移动数据存储桶对应的原分区数据集中扫描所述待移动数据存储桶中的磁盘组件,获得所述待移动数据存储桶中的存储数据;复制所述待移动数据存储桶数据存储桶中新写入的日志记录,获得所述待移动数据存储桶中的写入数据;在所述目标分区数据集中创建新数据存储桶,将所述原分区数据集中的存储数据加载到所述新数据存储桶对应的磁盘组件中,将所述待移动数据存储桶中的写入数据存储到所
述新数据存储桶对应的内存组件中,并更新所述目标分区数据集的主索引
。4.
根据权利要求3所述的方法,其特征在于,所述本地数据存储目录中包括各个节点中分区数据集对应的本地二级索引,所述本地二级索引采用日志结构合并树格式,并通过所述日志结构合并树格式将各个分区数据集中各个数据存储桶中的数据索引关系统一存储,所述将所述待移动数据存储桶中的数据移动至对应的目标分区数据集,还包括:在所述目标分区数据集对应的本地二级索引对应的存储区域中创建一个新存储组件,将所述待移动数据存储桶中的存储数据和写入数据存储到所述新存储组件中,且所述新存储组件对查询不可见
。5.
根据权利要求1所述的方法,其特征在于,所述将所述待移动数据存储桶中的数据移动至对应的目标分区数据集,包括:将不同节点对应的所述待移动数据存储桶分配给不同的线程,采用不同的线程将所述待移动数据存储桶移动至对应的目标分区数据集
。6.
根据权利要求1所述的方法,其特征在于,所述方法还包括:将接收到所述数据平衡请求之前各个数据存储桶中的存储数据保存在桶快照中;将接收到所述数据平衡请求之后各个数据存储桶中的写入数据复制到对应的目标分区数据集中
。7.
根据权利要求1所述的方法,其特征在于,在接收到所述数据平衡请求之前,所述方法还包括:将待存储数据采用一致性哈希分区法划分为多个分区数据集,并将各个分区数据集分配到对应的节点;为各个分区数据集分别分配预设数量的数据存储桶,并分别设置各个分区数据集中各个数据存储桶的桶编号;将各个分区数据集中的待存储数据对应的哈希值进行哈希计算,并将哈希计算结果按照各个分区数据集中的数据存储桶的数量进行取余计算;将所述待存储数据对应的取余计算结果和所述待存储数据所在的分区数据集中的数据存储桶的桶编号进行匹配,将所述待存储数据分配到相匹配的数据存储桶中存储
。8.
...
【专利技术属性】
技术研发人员:石志林,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。