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* 권한이 있는지 확인하세요.