Vitess
v24.0.0Storage & DataVitess 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 플래그 제거 — 스트리밍 응답에서 세션이 항상 전송됨