[Elasticsearch - The Definitive Guide] Segment Merging

Elastic/TheDefinitiveGuide 2015. 12. 9. 17:25

알아 두면 매우 좋은 내용입니다.


원문링크)

https://www.elastic.co/guide/en/elasticsearch/guide/current/merge-process.html


원문 Snippet)

With the automatic refresh process creating a new segment every second, it doesn’t take long for the number of segments to explode.

...중략...

This is the moment when those old deleted documents are purged from the filesystem. Deleted documents (or old versions of updated documents) are not copied over to the new bigger segment.

...중략...

The merge process... does not interrupt indexing and searching.

...중략...

Once merging has finished, the old segments are deleted



아래는 merge flow 요약 입니다.


1) merge 하기 위한 new segment 를 생성 합니다. (run optimize)

2) deleted mark 된 것들을 제외 하고 신규 segment 로 merge 대상 segment 들이 합쳐 집니다.)

3) 신규 commit point 를 생성 합니다. (merge 대상 segment 는 제거 하고, 신규 segment 와 아직 merge 가 안된 segment 정보만 기록 합니다.)

4) 검색 가능한 상태가 됩니다.

5) merge 가 완료된 segment는 삭제 됩니다.


※ 이 작업은 상당한 비용이(cpu, disk i/o) 발생 하기 때문에 사용시 주의하셔야 합니다.


: