申请/专利权人:新华智云科技有限公司
申请日:2021-07-28
公开(公告)日:2023-09-05
公开(公告)号:CN113568749B
主分类号:G06F9/50
分类号:G06F9/50
优先权:
专利状态码:有效-授权
法律状态:2023.09.05#授权;2021.11.16#实质审查的生效;2021.10.29#公开
摘要:本申请提供一种基于Elasticsearch集群的shard分配方法,在创建新索引时,主节点在分配一个新的shard时,先考虑当前每一个可分配从节点的CPU状态和内存状态再进行分配,可以实现将新的shard分配在当前CPU利用率和内存利用率综合最小的可分配从节点上,避免将新的shard创建在已经负载很高的可分配从节点上,从而使得Elasticsearch集群运行更均衡,更稳定。
主权项:1.一种基于Elasticsearch集群的shard分配方法,其特征在于,应用于Elasticsearch集群的存储计算分离模式,所述方法包括:判断是否接收到客户端发送的创建索引请求;若接收到客户端发送的创建索引请求,则依据所述创建索引请求构建shard分配规则;依据shard分配规则获取从节点中的可分配从节点;依据每一个可分配从节点的CPU利用状态和内存利用状态,计算每一个可分配从节点的权重,并选取权重最小的可分配从节点作为shard分配节点;在所述shard分配节点处创建一个shard;返回所述依据每一个可分配从节点的CPU利用状态和内存利用状态的步骤,创建下一个shard,直至创建的shard总数达到预设shard数量,完成索引的创建;其中,所述依据每一个可分配从节点的CPU利用状态和内存利用状态,计算每一个可分配从节点的权重,并选取权重最小的可分配从节点作为shard分配节点,包括:选取一个可分配从节点;获取预设索引权重平衡因子、预设节点权重平衡因子、所述索引在所述可分配从节点上的shard总数、以及所述索引在所有可分配从节点上的shard平均数;获取所述可分配从节点上当前已有的shard总数、以及所有可分配从节点上当前已有的shard平均数;依据公式1分别计算所述可分配从节点的索引权重和节点权重; 其中,WEIGHTindexnode,index为所述可分配从节点的索引权重,WEIGHTnodenode,index为所述可分配从节点的节点权重,indexBalance为预设索引权重平衡因子,shardBalance为预设节点权重平衡因子,Node.numShardsindex为所述索引在所述可分配从节点上的shard总数,avgShardsPerNodeindex为所述索引在所有可分配从节点上的shard平均数;Node.numShards为所述可分配从节点上当前已有的shard总数,avgShardsPerNode为所有可分配从节点上当前已有的shard平均数;获取所述可分配从节点的当前CPU利用率和当前内存利用率,以及第一配置参数、第二配置参数和第三配置参数;依据公式2计算所述可分配从节点的CPU权重和内存权重; 其中,WEIGHTcpu为所述可分配从节点的CPU权重,WEIGHTmem为所述可分配从节点的内存权重,RATIOcpu为所述可分配从节点的当前CPU利用率,RATIOmem为所述可分配从节点的当前内存利用率,θ0为第一配置参数,θ1为第二配置参数,θ2为第三配置参数;依据公式3计算所述可分配从节点的平衡权重;WEIGHTnode,index=[WEIGHTindexnode,index+WEIGHTinodenode,index]×θ2公式3;其中,WEIGHTnode,index为所述可分配从节点的平衡权重,WEIGHTindexnode,index为所述可分配从节点的索引权重,WEIGHTinodenode,index为所述可分配从节点的节点权重,θ2为第三配置参数;依据公式4计算所述可分配从节点的权重; 其中,WEIGHTnode为所述可分配从节点的权重,WEIGHTcpu为所述可分配从节点的CPU权重,WEIGHTmem为所述可分配从节点的内存权重,WEIGHTnode,index为所述可分配从节点的平衡权重;返回选取一个可分配从节点的步骤,直至所有可分配从节点的权重均计算完毕;选取权重最小的可分配从节点作为shard分配节点。
全文数据:
权利要求:
百度查询: 新华智云科技有限公司 基于Elasticsearch集群的shard分配方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。