Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Local Cache와 Global Cache의 차이 #8

Open
yunyoung1819 opened this issue Jul 14, 2023 · 0 comments
Open

Local Cache와 Global Cache의 차이 #8

yunyoung1819 opened this issue Jul 14, 2023 · 0 comments
Assignees
Labels

Comments

@yunyoung1819
Copy link
Owner

yunyoung1819 commented Jul 14, 2023

개념

캐시(Cache)

컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다.
캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용한다. 캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있다.

  • 즉 캐시는 접근 비용이 비싼 데이터의 사본을 만들어 저장하고, 동일한 요청이 있을 때 원본 데이터에 접근하지 않고 사본 데이터를 제공할 수 있게 하는 중간 장치의 개념
  • 네트워크 통신, 하드 디스크 접근 등 컴퓨터 시스템의 곳곳에서 병목이 일어날 수 있을만한 지점의 성능 향상을 위해 캐시를 사용함
  • 데이터의 실시간성을 약간 포기하고 큰 성능적 이점을 얻는 것
  • Caching은 애플리이션의 처리 속도를 높여줌. 이미 가져온 데이터나 계산된 결과 값의 복사본을 저장함으로써 처리 속도를 향상시키며, 이를 통해 향후 요청을 더 빠르게 처리할 수 있음
  • 대부분의 프로그램이 동일한 데이터나 명령어에 반복해서 액세스하기 때문에 Caching은 효율적인 아키텍처 패턴임

Local Cache vs Global Cache

  • Cache 관리 전략을 선택할 때 가장 먼저 고려해야할 요소는 캐시 데이터를 저장할 스토리지를 서버가 자체적으로 소유하고 있을지 외부 서버에 캐시 저장소를 따로 둘 지에 대한 부분임
  • 캐시 저장소를 서버에 두는 방식을 Local Cache, 외부 캐시 저장소를 두는 방식을 Global Cache라고 함

Local Cache의 특징

  • Local Cache는 서버마다 Cache를 따로 저장하는 방법
  • 각 서버 장비의 리소스(Memory, Disk)를 이용하기 때문에 다른 서버의 Cache를 참조하기 어려움
  • 해당 서버 내에서 작동하기 때문에 Global Cache에 비해 속도가 빠름
  • 캐시에 저장된 데이터가 변경되는 경우에는 해당 서버를 제외한 모든 Peer에 변경사항을 전달하고 복사하는 과정을 거침

Global Cache의 특징

  • Global Cache는 여러 서버에서 캐시 서버에 접근하여 참조하는 방법
  • 별도의 캐시 서버를 이용하기 때문에 서버 간 데이터 공유가 쉽고 데이터를 분산하여 저장할 수 있음
  • 하지만 네트워크 트래픽을 사용하기 때문에 Local Cache보다는 속도가 느림
  • Local Cache와 다르게 캐시에 저장된 데이터가 변경되더라도 추가적인 작업이 별도로 필요하지 않음

Local Cache vs Global Cache, 어떤 기준으로 적용해야 할까?

  • 어떤 것을 선택해야 할지에 대한 기준은 '데이터의 일관성이 깨져도 비즈니스에 영향을 주지 않는가?' 이다.
  • 예를 들어 사용자 프로필의 경우 프로필에 반영되는데 시간이 조금 걸린다 해도 전체적인 서비스 운영에 큰 타격을 주지 않음. 이러한 경우 서버간 동기화 없이 서버 자체적으로 로컬 캐싱을 하는 것이 유리함
  • 하지만 상품 데이터의 경우 동기화가 속도보다 중요하며 동기화가 확실하게 보장되는 Global Cache를 사용하는 것이 좋음

참고

@yunyoung1819 yunyoung1819 self-assigned this Jul 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant