弹性搜索中的primary_term到底是什么?

在阅读了许多文档之后,我了解到primary_term和sequence_number一起用于乐观并发控制,以防止文档的旧版本覆盖较新的文档。但是,我的问题是primary_term到底是什么?它和主要分片一样吗?

chenbin79 回答:弹性搜索中的primary_term到底是什么?

每当一个不同的分片在故障转移期间成为主分片时,主项就会增加。这有助于解决重新联机的旧主服务器上发生的更改与新主服务器上发生的更改(新主服务器)。

这些主要术语是增量的,当主要术语发生变化时会发生变化 晋升。它们被持久化在集群状态,因此代表一个 集群所在的初选的某种“版本”或“代”。

https://www.elastic.co/blog/elasticsearch-sequence-ids-6-0

,

来自docs

为确保文档的较旧版本不会覆盖较新的版本,对文档执行的每项操作都会由协调变化的主分片分配给序列号

比方说,您的索引由5个主要分片组成(这是版本7之前的默认值)。针对主要分片执行索引和更新请求。如果您有多个主要分片,elasticsearch可以将传入的请求(例如巨大的批量请求)并行化/分配给多个分片,以提高性能。

因此, primary_term 提供了有关执行/协调更改/更新的主分片(在此示例中为#1,#2,#3,#4或#5)的信息。

问:与主要分片相同吗?

A:如果您的意思是主分片数量 相同,那么可以,如果您的索引只有一个主分片,则值将平等。

本文链接:https://www.f2er.com/2817714.html

大家都在问