Skip to main content
Weave는 반복적으로 쿼리하거나 네트워크 대역폭이 제한된 환경에서 작업할 때 성능을 높일 수 있도록 서버 응답 캐싱을 제공합니다. 이 문서에서는 캐싱이 언제 도움이 되는지, 이를 활성화하는 방법, Weave가 어떤 요청을 캐싱하는지, 그리고 캐시가 디스크 공간을 어떻게 사용하는지 설명하므로, 이를 활성화할지 여부를 결정하고 저장소 사용량을 계획할 수 있습니다. 이 기능은 기본적으로 비활성화되어 있습니다.

캐싱을 사용해야 하는 경우

서버 응답 캐싱은 다음과 같은 경우에 유용합니다.
  • 동일한 쿼리를 자주 실행하는 경우
  • 네트워크 대역폭이 제한적인 경우
  • 지연 시간이 높은 환경에서 작업하는 경우
  • 오프라인으로 개발하면서 나중에 사용하기 위해 응답을 캐싱하려는 경우
이 기능은 데이터셋에 대해 반복적으로 평가를 실행할 때 특히 유용합니다. Weave가 run 간에 데이터셋을 캐시할 수 있기 때문입니다.

캐싱 활성화

캐싱을 활성화하려면 다음 환경 변수를 설정하세요. WEAVE_USE_SERVER_CACHE는 캐시를 활성화하고, 나머지 변수로는 캐시의 크기와 위치를 조정할 수 있습니다.
# 서버 응답 캐싱 활성화
export WEAVE_USE_SERVER_CACHE=true

# 캐시 크기 제한 설정 (기본값: 1 GB)
export WEAVE_SERVER_CACHE_SIZE_LIMIT=1000000000

# 캐시 디렉터리 설정 (선택, 기본값: 임시 디렉터리)
export WEAVE_SERVER_CACHE_DIR=/path/to/cache

캐싱 방식

이 섹션에서는 Weave가 어떤 서버 요청을 캐시하는지 설명하므로, 어떤 오퍼레이션이 캐싱의 이점을 얻는지 예측할 수 있습니다. 이 기능은 서버에 대한 멱등 요청을 캐시합니다. Weave는 다음 요청을 캐시합니다.
  • obj_read
  • table_query
  • table_query_stats
  • refs_read_batch
  • file_content_read

캐시 크기 및 저장소 세부 정보

이 섹션을 참고하여 캐시에 필요한 디스크 공간을 추정하고, 환경에 맞게 WEAVE_SERVER_CACHE_SIZE_LIMIT 값을 설정하세요. WEAVE_SERVER_CACHE_SIZE_LIMIT(바이트 단위)는 캐시 크기를 제어합니다. 실제 디스크 사용량은 다음 세 가지 컴포넌트로 구성됩니다.
  • 항상 32 KB인 체크섬 파일
  • 실행 중인 클라이언트당 최대 약 4 MB의 쓰기 전 로그(WAL) 파일. 프로그램이 종료되면 Weave가 WAL 파일을 자동으로 제거합니다.
  • 기본 데이터베이스 파일로, 최소 32 KB이며 최대 WEAVE_SERVER_CACHE_SIZE_LIMIT입니다.
총 디스크 사용량:
  • 실행 중 >= 32 KB + 약 4 MB + 캐시 크기
  • 종료 후 >= 32 KB + 캐시 크기
예를 들어, 캐시 제한이 5 MB인 경우:
  • 실행 중: 최대 약 9 MB
  • 종료 후: 최대 약 5 MB

성능