[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) 발생 하기 때문에 사용시 주의하셔야 합니다.