RATATOSKRATATOSK
로그인

Vitess

v24.0.0Storage & Data
2026년 4월 30일

Vitess v24는 구조화 JSON 로깅을 기본 채택하고, 샤드 키스페이스에서 윈도우 함수 푸시다운을 지원하며, 백업 MANIFEST 명령 주입 취약점을 차단합니다. 총 460개 PR이 병합됐습니다.

  • breaking백업 복구 설정에서 MANIFEST 압축 해제 동작 확인 필요

    --external-decompressor 플래그 없이 MANIFEST에 저장된 명령으로 압축 해제에 의존하던 환경이라면, v24에서 복구 시 압축 해제가 묵시적으로 건너뛰어져 복구 자체가 실패할 수 있습니다. 기존 동작을 유지하려면 VTTablet 설정에 --external-decompressor-use-manifest를 추가하세요. 다만 보안 고려가 필요합니다 — 백업 스토리지 쓰기 권한이 있는 공격자가 임의 명령을 실행할 수 있는 경로가 됩니다. --external-decompressor로 명시적으로 전달하는 방식으로 전환하는 것이 더 안전합니다.

  • breakingVTOrc API 엔드포인트와 메트릭 참조 즉시 교체

    /api/replication-analysis는 v24에서 404를 반환합니다. 해당 URL을 호출하는 모니터링 스크립트, Grafana 대시보드, 알림 규칙이 있다면 프로덕션 배포 전에 /api/detection-analysis로 전환하세요 (파라미터와 응답 형식 동일). DiscoverInstanceTimings를 사용하는 대시보드도 DiscoveryInstanceTimings로 교체해야 합니다.

  • security백업 MANIFEST 명령 주입 취약점 기본 차단

    v24 이전에는 백업 스토리지 쓰기 권한을 가진 공격자가 MANIFEST 파일을 수정해 VTTablet 복구 시 임의 셸 명령을 실행할 수 있었습니다. v24부터 --external-decompressor-use-manifest 플래그 없이는 MANIFEST의 압축 해제 명령이 무시됩니다. v23 이하를 운영 중이라면 백업 스토리지 접근 제어를 보안 경계로 간주하고 쓰기 권한 보유자를 즉시 감사하세요.

  • enhancementOpenTelemetry 트레이싱 마이그레이션은 지금 하세요

    opentracing-jaeger와 opentracing-datadog는 v24에서 지원 중단 경고가 나오고 v25에서 완전히 제거됩니다. 마이그레이션 자체는 간단합니다. --tracer opentracing-jaeger를 --tracer opentelemetry로, --jaeger-agent-host host:port를 --otel-endpoint host:4317로 바꾸면 됩니다. Jaeger v1.35 이상은 기본적으로 4317 포트에서 OTLP를 수신하고, Datadog는 Agent의 OTLP 수집 엔드포인트를 사용하면 됩니다. 이번 업그레이드 주기에 처리하는 편이 낫습니다.

  • enhancementVTOrc에 --cell 플래그 지금 추가하세요

    v24에서는 선택 사항이지만 v25부터 필수가 됩니다. 멀티셀 환경이라면 지금 추가하는 것이 좋습니다. 기동 시 토폴로지 검증으로 설정 오류를 조기에 잡을 수 있고, 향후 VTOrc의 크로스셀 복구 로직도 이 플래그를 기반으로 동작할 예정입니다. 다운타임 없이 플래그 하나로 v25 강제 변경을 미리 피할 수 있습니다.

주요 변경 (6)

  • 구조화 JSON 로깅이 기본값으로 변경 (사람이 읽기 쉬운 형식은 --log-format=text; glog는 v25에서 제거)
  • PARTITION BY 절이 유니크 vindex와 일치할 때 윈도우 함수를 샤드별로 푸시다운 가능 — 단일 샤드 라우팅 강제 해제
  • 백업 MANIFEST의 외부 압축 해제 명령을 기본적으로 무시 (보안 수정); --external-decompressor-use-manifest 플래그로 명시적 opt-in 필요
  • OpenTracing 백엔드(jaeger, datadog) 지원 중단 예고 — v25 이전에 --tracer opentelemetry로 마이그레이션 필요
  • VTOrc /api/replication-analysis 엔드포인트와 DiscoverInstanceTimings 메트릭 제거 — 대시보드 및 스크립트 즉시 업데이트 필요
  • VTGate의 --grpc-send-session-in-streaming 플래그 제거 — 스트리밍 응답에서 세션이 항상 전송됨