본문으로 건너뛰기

[Grafana Loki] 검증이 완료될 때까지 accepted stream 캐시를 비활성화

PR 링크: grafana/loki#20879 상태: Merged | 변경: +4 / -4

들어가며

바로 전 PR(#20860)에서 리팩터링된 accepted streams 캐시는 블룸 필터를 사용하는 확률적 자료구조입니다. 블룸 필터는 false positive가 발생할 수 있어, 실제로 제한을 초과한 스트림이 캐시에 의해 통과될 가능성이 있습니다. 이 PR은 캐시의 효과를 더 검증할 시간이 필요하다고 판단하여 기본값을 true에서 false로 변경합니다.

핵심 코드 분석

Before: 캐시 기본 활성

f.BoolVar(
    &cfg.AcceptedStreamsCacheEnabled,
    "ingest-limits-frontend.accepted-streams-cache-enabled",
    true,
    "Enable the accepted streams cache.",
)

After: 캐시 기본 비활성 + 실험적 태그

f.BoolVar(
    &cfg.AcceptedStreamsCacheEnabled,
    "ingest-limits-frontend.accepted-streams-cache-enabled",
    false,
    "[Experimental]: Enable the accepted streams cache.",
)

왜 이게 좋은가

  • 안전 우선: 확률적 자료구조의 정확성이 완전히 검증되지 않은 상태에서 프로덕션에 기본 활성화하는 것은 리스크입니다.
  • 점진적 도입: [Experimental] 태그를 추가하여 사용자가 명시적으로 활성화해야 하므로, 문제 발생 시 영향 범위가 제한됩니다.
  • 기능 보존: 코드를 제거하지 않고 플래그만 변경하여, 검증이 완료되면 다시 기본 활성화할 수 있습니다.
  • 운영 관행의 모범: 새로운 최적화를 도입할 때 바로 기본 활성화하기보다 opt-in으로 시작하고 메트릭을 수집한 후 기본값을 바꾸는 것이 안전합니다.

참고 자료

댓글

관련 포스트

PR Analysis 의 다른글