본문 바로가기
WIKI 기술 지식 베이스

Caching

원문 보기 위키 갱신

출처: 문서

본문

캐싱

OpenSearch는 다양한 온힙(on-heap) 캐시 타입을 활용해 데이터 조회 속도를 높이고, 검색 지연 시간을 크게 개선해요. 하지만 캐시 크기는 노드에서 사용할 수 있는 메모리 양에 따라 제한돼요. 캐싱될 가능성이 있는 더 큰 데이터셋을 처리할 때는 캐시 크기 제한 때문에 많은 데이터가 캐시에서 제거되거나 아예 캐싱되지 않아서 쿼리가 불완전해질 수 있어요. 이렇게 되면 OpenSearch가 쿼리를 다시 처리해야 하고, 그 과정에서 리소스 소모가 커지기 때문에 성능에도 영향을 미쳐요.

데이터가 캐시를 어떻게 사용하는지 이해하면 클러스터 성능을 개선하고 메모리를 과도하게 사용하는 것을 막는 데 도움이 돼서, 데이터를 쿼리하는 비용을 줄일 수 있어요.

지원되는 온힙(on-heap) 캐시 타입

OpenSearch는 다음과 같은 온힙(on-heap) 캐시 타입을 지원해요:

  • 인덱스 요청 캐시(Index request cache): 각 샤드에서 로컬 결과를 캐싱해요. 덕분에 자주 사용되고 리소스를 많이 소모할 수 있는 검색 요청도 거의 즉시 결과를 반환할 수 있어요.
  • 쿼리 캐시(Query cache): 비슷한 쿼리에서 공통으로 사용되는 데이터를 샤드 레벨에서 캐싱해요. 쿼리 캐시는 요청 캐시보다 더 세밀한 단위로 동작해서, 서로 다른 쿼리에서 재사용할 데이터를 캐싱할 수 있어요.
  • 필드 데이터 캐시(Field data cache): 필드 데이터와 글로벌 오디널(global ordinals)을 캐싱해요. 이 둘은 특정 필드 타입에 대한 애그리게이션(aggregations)을 지원하는 데 사용돼요.

추가 캐시 스토어

2.14에 도입 {: .label .label-purple }

기존의 커스텀 OpenSearch 온힙(on-heap) 캐시 스토어 외에도, 캐시 플러그인은 다음과 같은 캐시 스토어를 제공해요:

  • 디스크 캐시(Disk cache): 쿼리 결과를 미리 계산해서 디스크에 저장해요. 디스크 지연 시간이 허용 가능한 범위 안에 있다면, 디스크 캐시를 사용해 훨씬 더 큰 데이터셋을 캐싱할 수 있어요.
  • 티어드 캐시(Tiered cache): 각 티어가 고유한 특성과 성능 수준을 가지는 다중 레벨 캐시예요. 예를 들어 티어드 캐시는 온힙 티어와 디스크 티어를 모두 포함할 수 있어요. 서로 다른 티어를 조합하면 캐시 성능과 크기 사이의 균형을 맞출 수 있어요. 자세한 내용은 티어드 캐시(Tiered cache)를 참고하세요.

OpenSearch 2.14에서는 요청 캐시(request cache)가 캐시 플러그인과 통합됐어요. 티어드 캐시나 디스크 캐시를 요청 레벨 캐시로 사용할 수 있어요. {: .note}

더 알아보기 (Learn more)