ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 엘라스틱 서치와 루씬 요약
    공부하기/엘라스틱서치 2024. 2. 12. 18:44

    루씬 : 문서를 색인하고 검색하는 라이브러리

    - 루씬에서 검색하려면 먼저 파일을 열어야한다.

    - 색인이 완료된 문서만 검색할 수 있다.

     

    세그먼트

    - 디스크에 기록된 파일들이 모인 단위

    - 루씬의 검색 대상

    - 불변( immutable ) 데이터로 구성돼 있다.

    - 새 문서는 새 세그먼트로 생성된다.

    - 문서를 update,delete 하는 경우 세그먼트의 삭제 플래그를 표시하고 새 세그먼트를 생성한다.

    - 여러 세그먼트가 모이ㅏ면 하나의 루씬 인덱스가 된다.

     

    루씬 flush

    -> 시스템의 페이지 캐시에 데이터를 넘겨주는 것까지만 보장할 뿐 디스크에 파일이 실제로 기록되는 것까지 보장하지 않습니다.

     

    과정 : 문서 색인 요청 -> 문서 분석 -> 역색인 생성 -> 메모리 버퍼에 저장 ->디스크 flush

     

     

    루씬 commit

    -> 시스템 콜을 통해 주기적으로 커널 시스템의 페이지 캐시의 내용과 디스크에 기록된 내용의 싱크를 맞추는 작업을 수행

     

    과정 : 인메모리 버퍼 -> 루씬 flush -> 세그먼트 생성 -> 루씬 commit 

     

    엘라스틱서치 샤드

    - 루씬 인덱스 하나를 래핑한 단위

    - 엘라스틱서치 샤드 여러개가 모이면 엘라스틱서치 인덱스가 된다.

    - 엘라스틱서치 검색 요청이 오면 각 샤드를 검색한 뒤 그결과를 모아 병합하여 응답

     

    translog

    - 엘라스틱서치 샤드는 모든 작업마다 translog라는 로그를 남긴다.

    - translog 기록까지 끝난 이후에야 작업 요청이 승인된다.

    - 장애가 발생한 경우 translog 기록과 루씬 commit을 비교하여 누락된 내용을 복구한다.

    - 엘라스틱서치 flush는 commit을 수행하고 새로운 translog를 만드는 작업이다.

    - 엘라스틱서치 flush가 백그라운드에서 주기적으로 수행되며 translog의 크기를 적잘한 수준으로 유지한다.

     

Designed by Tistory.