5.X/8. Breaking Changes

v5.0-08. Allocation changes

drscg 2017. 10. 22. 20:43

Primary shard allocationedit

Previously, primary shards were only assigned if a quorum of shard copies were found (configurable using index.recovery.initial_shards, now deprecated). In case where a primary had only a single replica, quorum was defined to be a single shard. This meant that any shard copy of an index with replication factor 1 could become primary, even it was a stale copy of the data on disk. This is now fixed thanks to shard allocation IDs.

이전에는, primary shard는 단지 shard 복사본의 quorum이 발견된 경우에만 할당되었다(현재는 deprecated index.recovery.initial_shards 를 사용하여 구성 가능한). primary가 단일 replica만을 가지는 경우 quorum은 단일 shard로 정의되었다. 즉, replication factor 1을 가지는 index의 어떤 복사본이라도 primary가 될 수 있었지만, 디스크의 데이터 복사본이 오래된 경우에도 마찬가지였다. 이것은 shard allocation ID로 수정되었다.

Allocation IDs assign unique identifiers to shard copies. This allows the cluster to differentiate between multiple copies of the same data and track which shards have been active so that, after a cluster restart, only shard copies containing the most recent data can become primaries.

allocation ID는 shard 복사본에 고유 식별자를 할당한다. 이렇게 하면 cluster가 동일한 데이터의 여러 복사본을 구별하고 어떤 shard가 활성 상태인지 추적할 수 있으므로, cluster를 다시 시작한 후에 최신 데이터가 들어있는 shard 복사본만 primary가 될 수 있다.

Indices Shard Stores commandedit

By using allocation IDs instead of version numbers to identify shard copies for primary shard allocation, the former versioning scheme has become obsolete. This is reflected in the Indices Shard Stores API.

version number 대신 allocation ID를 사용하여, primary shard allocation에 대한 shard 복사본을 식별함으로써 이전 버전 관리 체계는 쓸모 없게되었습니다. 이것은 Indices Shard Stores API에 반영된다.

A new allocation_id field replaces the former version field in the result of the Indices Shard Stores command. This field is available for all shard copies that have been either created with the current version of Elasticsearch or have been active in a cluster running a current version of Elasticsearch. For legacy shard copies that have not been active in a current version of Elasticsearch, a legacy_version field is available instead (equivalent to the former version field).

새로운 allocation_id field는 Indices Shard Stores 명령의 결과에서 이전의 version field를 대체한다. 이 field는 현재 버전의 Elasticsearch로 생성되었거나 현재 버전의 Elasticsearch를 실행하는 cluster에서 활성화 된 모든 shard 복사본에서 사용할 수 있다. Elasticsearch의 현재 버전에서 활성화되지 않은 legacy shard 복사본의 경우 대신 legacy_version field를 사용할 수 있습니다 (이전의 version field와 동일).

Reroute commandsedit

The reroute command allocate has been split into two distinct commands allocate_replica and allocate_empty_primary. This was done as we introduced a new allocate_stale_primary command. The new allocate_replica command corresponds to the old allocate command with allow_primary set to false. The new allocate_empty_primary command corresponds to the oldallocate command with allow_primary set to true.

reroute command allocate 는 두개의 별개의 command allocate_replica 와allocate_empty_primary 로 나뉘어졌다. 이것은 새로운 allocate_stale_primary command 도입에 따른 것이다. 새로운 allocate_replica command는 allow_primary 가 false로 설정된 기존의 allocatecommand에 해당한다. 새로운 allocate_empty_primary command는 allow_primary 가 true로 설정된 기존의 allocate command에 해당한다.

Custom Reroute Commandsedit

Elasticsearch no longer supports plugins registering custom allocation commands. It was unused and hopefully unneeded.

Elasticsearch는 더 이상 사용자 지정 allocation command을 등록하는 플러그인을 지원하지 않는다. 사용되지 않았고 불필요하다.

index.shared_filesystem.recover_on_any_node changesedit

The behavior of index.shared_filesystem.recover_on_any_node: true has been changed. Previously, in the case where no shard copies could be found, an arbitrary node was chosen by potentially ignoring allocation deciders. Now, we take balancing into account but don’t assign the shard if the allocation deciders are not satisfied.

index.shared_filesystem.recover_on_any_node: true 의 동작이 변경되었습니다. 이전에는 shard 복사본을 찾을 수 없는 경우, allocation decider를 무시하고 가능성 있는 arbitrary node가 선택되었다. 이제 균형 조정을 고려하지만 allocation decider가 만족스럽지 않으면 shard를 할당하지 않는다.

The behavior has also changed in the case where shard copies can be found. Previously, a node not holding the shard copy was chosen if none of the nodes holding shard copies were satisfying the allocation deciders. Now, the shard will be assigned to a node having a shard copy, even if none of the nodes holding a shard copy satisfy the allocation deciders.

shard 복사본을 찾을 수 있는 경우에도 동작이 변경되었습니다. 이전에는 shard 복사본을 보유한 node 중 어느 노드도 allocation decider를 만족하지 못하면, shard 복사본을 보유하지 않은 노드가 선택되었다. 이제, shard 복사본을 보유한 node 중 어느 것도 allocation decider를 만족시키지 않더라도, shard 복사본을 가지고 있는 node에 shard가 할당된다.


'5.X > 8. Breaking Changes' 카테고리의 다른 글

v5.0-06. Document API changes  (0) 2017.10.23
v5.0-07. Settings changes  (0) 2017.10.22
v5.0-09. HTTP changes  (0) 2017.10.22
v5.0-10. REST API changes  (0) 2017.10.22
v5.0-11. CAT API changes  (0) 2017.10.22