elastic search - single document creating, deleting, indexing

참치돌고래·2023년 1월 3일
0

elasticsearch

목록 보기
1/2

하나의 도큐먼트 삭제, 업데이트, 인덱싱

  1. 클라이언트가 create, index or delete 요청을 예를 들어, node 1 에 보낸다.
  2. 도큐먼트 id를 통해서 어떤 shard 에 있는지 파악. 해당 shard의 primary shard가 있는 노드에 해당 요청 전송.
  3. 해당하는 shard가 각 replica shard에 해당 도큐먼트 존재하는지 파악(동시에). 요청 처리 후, 처음 요청을 받은 Node1 에 해당 요청 결과를 알려준다.

도큐먼드 읽어오기

  1. 클라이언트가 특정 노드 1에 요청을 보낸다.
  2. 해당 도큐먼트가 존재하는 shard를 파악한 후, 해당 shard의 복제본 모두에게 전송을 보낸다. 해당 도큐먼트가 존재하는 노드가 처음 요청을 받은 노드에 결과를 반환하고, 최종적으로 클라이언트에게 처음 요청받은 노드가 반환한다.

도큐먼트 부분적 업데이트

  1. 클라이언트가 특정 노드 1에 요청을 보낸다.
  2. 해당 도큐먼트가 있는 Primary shard가 존재하는 노드에 포워드한다.
  3. 포워드 된 노드가 _source 필드에 있는 json을 변경시킨다. 그리고 reindex한다. 만일 도큐먼트가 이미 다른 프로세스에 의해 변경되었다면, retry_on_conflict 의 설정된 값까지 재시도하고, 이후 포기한다.
  4. 만약 요청이 성공적으로 완료되었다면, parallel 하게 replica shard가 있는 노드에 reindex 요청을 하게 된다. 그리고 해당 요청을 처리한 primary shards가 있는 노드가 클라이언트에게 해당 요청 처리 결과를 반환한다.
profile
안녕하세요

0개의 댓글