본문으로 건너뛰기
최종 수정: 에

Tablet Compaction 점수 조회

설명​

이 읽기 전용 API를 사용하면 단일 BE 노드에서 compaction 점수가 높은 tablet을 찾을 수 있습니다. tablet의 점수는 해당 tablet에 속한 rowset 점수의 합계입니다. 결과는 compaction_score를 기준으로 내림차순 정렬됩니다. 스토리지-컴퓨트 분리 모드에서 이 API는 클러스터의 모든 tablet이 아니라 해당 BE에 현재 캐시된 실행 중인 tablet을 검사합니다.

사전 요구 사항​

BE HTTP 포트(기본값: 8040)에 직접 연결하세요. BE 설정 enable_all_http_auth가 활성화되어 있으면 전역 ADMIN 권한이 있는 Doris 계정을 사용하세요. 예제의 인증 정보를 해당 계정의 인증 정보로 바꾸세요.

요청​

GET /api/compaction_score?top_n=<integer>&sync_meta=<boolean>

요청 본문은 없습니다.

쿼리 매개변수​

매개변수유형필수 여부기본값설명
top_n음이 아닌 정수아니요사용 가능한 모든 tablet점수가 가장 높은 tablet을 최대 N개 반환합니다. 0이면 []를 반환합니다. 값은 부호 있는 64비트 정수 범위 내에 있어야 합니다.
sync_metaBoolean: true 또는 false아니요false스토리지-컴퓨트 분리 모드에서만 사용할 수 있습니다. true이면 점수를 계산하기 전에 Meta Service에서 해당 BE에 캐시된 실행 중인 tablet의 메타데이터와 rowset을 동기화합니다. 스토리지-컴퓨트 결합 모드에서는 sync_meta=false를 포함해 이 매개변수를 아예 지정하지 마세요.

기본 사용법​

다음 요청은 tablet 행을 반환하지 않고 연결 상태와 매개변수 처리를 확인합니다:

curl -u '<user>:<password>' 'http://127.0.0.1:8040/api/compaction_score?top_n=0'
[]

응답​

요청이 성공하면 HTTP 200 상태 코드와 JSON 배열을 반환합니다. 각 요소에는 문자열 값을 갖는 필드가 두 개 있습니다:

필드설명
tablet_idtablet ID.
compaction_scoretablet에 속한 rowset의 compaction 점수 합계.

예를 들어, 다음과 같이 최대 10개의 tablet을 반환할 수 있습니다:

curl -u '<user>:<password>' 'http://127.0.0.1:8040/api/compaction_score?top_n=10'

다음 출력은 예시입니다. ID, 점수, 반환되는 tablet 수는 BE에 따라 달라집니다:

[
{"compaction_score": "5", "tablet_id": "42595"},
{"compaction_score": "4", "tablet_id": "10034"}
]

스토리지-컴퓨트 분리 모드에서는 점수를 계산하기 전에 캐시된 tablet의 최신 메타데이터를 요청할 수 있습니다:

curl -u '<user>:<password>' 'http://127.0.0.1:8040/api/compaction_score?top_n=10&sync_meta=true'

응답은 동일한 JSON 형식을 사용하며, 동기화 후에 계산된 결과를 반환합니다.

오류 처리 및 주의 사항​

  • top_n을 파싱할 수 없거나 값이 음수이면 HTTP 400을 반환합니다. 예: invalid argument: top_n=wrong.
  • 스토리지-컴퓨트 결합 모드에서 sync_meta가 비어 있지 않으면 HTTP 400을 반환합니다: param `sync_meta` is only available for cloud mode.
  • 스토리지-컴퓨트 분리 모드에서 sync_meta가 비어 있지 않고 true나 false가 아니면 HTTP 400을 반환합니다. 예: invalid argument: sync_meta=wrong.
  • 메타데이터 동기화에 실패하면 HTTP 500을 반환합니다. 인증이 활성화된 경우 인증 정보가 누락되었거나 유효하지 않으면 HTTP 401 또는 403을 반환할 수 있습니다.
  • top_n은 응답 크기를 제한하며, 검사하거나 동기화하는 tablet 수를 제한하지는 않습니다. 점수는 해당 BE의 tablet 상태를 관찰한 값이며, 클러스터 전체의 원자적 스냅샷은 아닙니다.

권장 사항​

추가 조사가 필요한 tablet을 찾으려면 작은 top_n 값과 기본값인 sync_meta=false로 시작하세요. 최신 메타데이터가 필요한 경우 sync_meta=true를 사용하세요. 이 설정은 top_n을 적용하기 전에 캐시된 모든 실행 중인 tablet을 동기화하므로 지연 시간과 Meta Service 부하가 증가할 수 있습니다.