Flush API

Flush API

1.0에서 도입되었어요. Flush API는 메모리 안의 모든 작업을 디스크의 세그먼트로 저장해요. 인덱스 세그먼트로 flush된 작업은 이제 Lucene 인덱스에 저장되므로 클러스터 재시작 중에 트랜잭션 로그에 더 이상 필요하지 않아요.

OpenSearch는 트랜잭션 로그 크기 같은 조건에 따라 백그라운드에서 자동으로 flush를 수행해요. 트랜잭션 로그 크기는 index.translog.flush_threshold_size 설정이 제어해요. 수동 재시작이나 메모리 확보 같은 경우에만 Flush API를 아껴서 사용하세요.

출처: 문서

본문

엔드포인트 (Endpoints)

Flush API는 다음 경로를 지원해요.

GET /_flush
POST /_flush
GET /{index}/_flush
POST /{index}/_flush

경로 파라미터 (Path parameters)

다음 표는 사용 가능한 경로 파라미터를 보여줘요. 모든 경로 파라미터는 선택 사항이에요.

파라미터 데이터 타입 설명
<index> String 작업을 적용할 인덱스, 데이터 스트림, 인덱스 별칭의 쉼표 구분 목록이에요. 와일드카드 표현(*)을 지원해요. 클러스터의 모든 인덱스와 데이터 스트림을 지정하려면 _all 또는 *를 사용해요.

쿼리 파라미터 (Query parameters)

모든 파라미터는 선택 사항이에요.

파라미터 데이터 타입 설명
allow_no_indices Boolean false이면 어떤 와일드카드 표현이나 인덱스 별칭이 닫히거나 없어진 인덱스를 대상으로 할 때 요청이 오류를 반환해요. 기본값은 true예요.
expand_wildcards String 와일드카드 표현이 확장될 수 있는 인덱스 유형을 지정해요. 쉼표로 구분된 값을 지원해요. 유효한 값은 다음과 같아요.
- all : 숨겨진 인덱스를 포함해 모든 열린·닫힌 인덱스로 확장해요.
- open : 열린 인덱스로 확장해요.
- closed : 닫힌 인덱스로 확장해요.
- hidden : 확장할 때 숨겨진 인덱스를 포함해요. open, closed, 또는 둘 다와 함께 사용해야 해요.
- none : 와일드카드 표현을 허용하지 않아요.
기본값은 open이에요.
force Boolean true이면 인덱스에 메모리 안의 변경 사항이 없어도 flush를 강제로 수행해요. 기본값은 true예요.
ignore_unavailable Boolean true이면 OpenSearch가 없거나 닫힌 인덱스를 무시해요. false이면 force merge 작업이 없거나 닫힌 인덱스를 만날 때 OpenSearch가 오류를 반환해요. 기본값은 false예요.
wait_if_ongoing Boolean true이면 다른 flush 요청이 진행 중일 때 Flush API가 실행되지 않아요. false이면 다른 flush 요청이 진행 중일 때 OpenSearch가 오류를 반환해요. 기본값은 true예요.

예제 요청: 특정 인덱스 flush (Example request: Flushing a specific index)

다음 예제는 shakespeare라는 인덱스를 flush해요.

예제 요청: 모든 인덱스 flush (Example request: Flushing all indexes)

다음 예제는 클러스터의 모든 인덱스를 flush해요.

예제 응답 (Example response)

OpenSearch는 flush 요청을 확인한 샤드 수, 요청을 완료한 샤드 수, 실패한 샤드 수로 응답해요.

{
  "_shards": {
    "total": 10,
    "successful": 10,
    "failed": 0
  }
}

필요한 권한 (Required permissions)

Security plugin을 사용한다면 indices:admin/flush 및 indices:admin/flush* 권한이 있는지 확인하세요.

더 알아보기 (Learn more)