gpt4 book ai didi

alias - 每个用户的伪造索引:别名不好吗?

转载 作者:行者123 更新时间:2023-12-02 22:45:11 26 4
gpt4 key购买 nike

在Elastic / Elasticsearch网站上的Faking Index per User article中,建议对多个(数千个)客户端使用单个索引,并使用过滤器别名以不可见的方式分离其数据。

我听说有人说这不是一个好习惯,因为别名是集群状态的一部分。

为什么会这样呢?这是我第一次听到。

最佳答案

别名本身没有错。别名非常轻巧:创建别名时,它会查找索引并在该索引上放置一个“别名”。

对别名执行搜索时,如果没有匹配的索引,它将检查标记的别名并使用基础索引。整个过程非常轻松。因此,从搜索的 Angular 来看,拥有许多别名确实没有问题。

但是,有关群集状态的注释是有效的(排序)。数百万个别名(或数百万个字段等)将使群集状态膨胀。只要发生更改,此集群状态就会发布到所有节点,这就是Elasticsearch保证所有节点可以响应所有查询的方式。

因此,问题在于,如果群集状态变得庞大(数百兆字节等),则将其发布到群集的物理行为就变得不可忽略。想象一下,每次添加字段或别名时,将800mb文件发布到100个节点。主服务器上也有一定的CPU成本,这成为一个问题。

在实践中,有很多技巧可以使此问题易于管理,例如压缩,集群状态之间的差异,批处理等。但是从根本上说,集群状态代表了一个瓶颈,如果让状态变得太大,可能会成为问题。

在现实世界中,几乎没有集群会遇到此问题,因为它需要大量的字段/别名/索引/分析器才能使集群状态实际上膨胀到如此大的规模。

如果您对此有所担心,可以关注Pending Tasks API。待处理任务将显示排队等待在主节点上处理的所有集群级任务。它几乎应该总是空的,因为主服务器很少是集群中的瓶颈。但是,如果您看到此队列在增长(并且主服务器上的负载很高),则可能是群集状态问题。

关于alias - 每个用户的伪造索引:别名不好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29081170/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com