본문 바로가기
WIKI 기술 지식 베이스

Segment replication backpressure

원문 보기 위키 갱신

출처: 문서

본문

세그먼트 복제 백프레셔

세그먼트 복제 백프레셔는 클러스터의 레플리카 샤드가 프라이머리 샤드보다 뒤처질 때 인덱싱 요청을 동적으로 거부하는 샤드 수준의 거부 메커니즘이에요. 세그먼트 복제 백프레셔에서는 복제 그룹 내 stale 샤드의 비율이 segrep.pressure.replica.stale.limit(기본값 50%)를 초과하면 인덱싱 요청이 거부돼요. 레플리카가 프라이머리 샤드보다 segrep.pressure.checkpoint.limit 설정을 초과하는 수의 체크포인트만큼 뒤처져 있고, 현재 복제 지연이 정의된 segrep.pressure.time.limit 필드보다 크면 stale 상태로 간주돼요.

또한 레플리카 샤드는 장기간 멈춰 있거나 뒤처져 있는지 판단하기 위해 모니터링돼요. 레플리카 샤드가 segrep.pressure.time.limit 필드에 정의된 시간의 두 배를 넘게 멈춰 있거나 뒤처져 있으면 해당 샤드는 제거되고 새 레플리카 샤드로 교체돼요.

요청 본문 필드

세그먼트 복제 백프레셔는 기본적으로 비활성화되어 있어요. 활성화하려면 segrep.pressure.enabled를 true로 설정하세요. 클러스터 설정 API 엔드포인트를 사용해서 다음 동적 클러스터 설정을 업데이트할 수 있어요.

필드 데이터 타입 설명
segrep.pressure.enabled Boolean 세그먼트 복제 백프레셔 메커니즘을 활성화해요. 기본값은 false예요.
segrep.pressure.time.limit Time unit 레플리카 샤드가 프라이머리 샤드에서 복사하는 데 걸릴 수 있는 최대 시간이에요. segrep.pressure.time.limit이 segrep.pressure.checkpoint.limit과 함께 초과되면 세그먼트 복제 백프레셔 메커니즘이 시작돼요. 기본값은 5 minutes예요.
segrep.pressure.checkpoint.limit Integer 프라이머리에서 복사할 때 레플리카 샤드가 뒤처질 수 있는 인덱싱 체크포인트의 최대 개수예요. segrep.pressure.checkpoint.limit이 segrep.pressure.time.limit과 함께 초과되면 세그먼트 복제 백프레셔 메커니즘이 시작돼요. 기본값은 4 체크포인트예요.
segrep.pressure.replica.stale.limit Floating point 복제 그룹에 존재할 수 있는 stale 레플리카 샤드의 최대 개수예요. segrep.pressure.replica.stale.limit이 초과되면 세그먼트 복제 백프레셔 메커니즘이 시작돼요. 기본값은 .5로, 복제 그룹의 50%에 해당해요.

엔드포인트

세그먼트 복제 API 엔드포인트를 사용하면 다음과 같이 세그먼트 복제 백프레셔 지표를 조회할 수 있어요:

GET _cat/segment_replication

{% include copy-curl.html %}

응답 예시

shardId       target_node    target_host   checkpoints_behind bytes_behind   current_lag   last_completed_lag   rejected_requests
[index-1][0]     runTask-1    127.0.0.1              0              0b           0s              7ms                    0

checkpoints_behind와 current_lag 지표는 세그먼트 복제 백프레셔가 시작될 때 고려돼요. 두 지표는 각각 segrep.pressure.checkpoint.limit과 segrep.pressure.time.limit을 기준으로 확인돼요.

더 알아보기 (Learn more)