[Elasticsearch] 색인 과정에서의 낙관적 동시성 제어


[Elasticsearch] 색인 과정에서의 낙관적 동시성 제어

낙관적 동시성 제어 인덱스에 색인 과정 시 프라이머리 샤드 변경 내용은 레플리카 샤드로 복제가 된다. 이때 분산 클러스터 특성상 여러 요청이 들어오게 되면 어떤 요청이 먼저 복제본 샤드로 들어갈지는 보장할 수 없다. 엘라스틱 서치에서는 이러한 상황에서 값이 역전되는 상황을 막기 위해서 _seq_no을 사용한다. _seq_no _seq_no은 각 프라이머리 샤드마다 들고 있는 시퀀스 숫자 값이고 매 작업마다 1씩 증가한다. _seq_no 값을 이용해서 역전되는 상황을 막는다. 시간 작업 _seq_no 오후 11시 40분 인덱스에 "name" : "ryool" 색인 0 오후 11시 43분 12초 인덱스에 "name" : "ryool1"으로 색인 1 오후 11시 43분 13초 인덱스에 "name" : "ryool2"으로 색인 2 위와 같은 상황에서 최종 결과는 name : ryool2가 되어야 된다. 만약 동시성 제어를 하지 않는다면 13초 작업이 먼저 들어오고 12초 작업이 나중에 들어...


#elasticsearch #seqno #동시성 #엘라스틱서치

원문링크 : [Elasticsearch] 색인 과정에서의 낙관적 동시성 제어