橡皮、老虎皮、狮子皮哪一个最不好?

index.routing_partition_size作用

Elasticsearch | 作者 woniu5 | 发布于2018年04月15日 | 阅读数:6360

看官网资料时,看到该参数,但是没有理解该参数的具体意义何在?哪位大神指教一下,多谢!!!
已邀请:

yayg2008

赞同来自: chinagrowing

对比两个计算公式,默认:
shard_num = hash(_routing) % num_primary_shards
 
设置之后:
shard_num = (hash(_routing) + hash(_id) % routing_partition_size) % num_primary_shards
 
不难发现,设置这个参数之后,可以通过routing,id两个参数来决定数据在哪个分片。这样做的目的,是让数据尽可能的均匀分布,解决单一hash的热点问题。

niyanchun - https://niyanchun.com/

赞同来自: guluo

对于同一个routing值,hash(_routing)的结果固定的,hash(_id) % routing_partition_size的结果有 routing_partition_size 个可能的值,两个组合在一起,对于同一个routing值的多个doc,也就能计算出 routing_partition_size 可能的shard了,即一个shard集合。
 
可查看我的关于routing机制分析的文章:详解ElasticSearch中的路由(_routing)机制
 

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

自定义路由到分片,官网有解读:https://www.elastic.co/guide/e ... .html

woniu5

赞同来自:

我再好好理解一下,多谢!!!

yongge

赞同来自:

让数据分布更均匀,但可能加重查询负担

要回复问题请先登录注册