웹캐싱

 

웹캐싱

  • 저장장치 계층 간의 속도 차이 완충.
  • 컨텐츠 전송 네트워크 (Contents Delivery Network(CDN)) 서비스 활성화로 단일 시스템이 아닌 원격지의 객체를 캐싱하는 기법의 중요성이 커지고 있다.
  • 웹 사용자의 의해 빈번히 요청되는 데이터를 사용자와 지리적으로 가까운 웹캐시 서버에 보관해 빠른 서비스를 가능하게 하는 기법.

 

프락시서버

  • 통상적으로 일개 그룹의 웹 사용자에 대한 서비스 지연시간을 줄이기 위해 사용.
  • 네트워크 대역폭 절약과 함께 웹서버의 부하를 줄이는 역할도 담당.

 


캐시 교체 알고리즘 (cache replacement algorithm)

  • 캐시 성능에 중요한 역할.
  • 한정된 캐시 공간을 가지고 사용자들의 지속적인 요청을 처리하기 위해, 어떤 객체를 캐시에 보관하고 삭제할지 온라인으로 결정.
  • 미래의 참조를 미리 알지 못하는 상태에서 한정된 캐시 공간에 보관하고 있을 객체와 삭제할 객체를 동적으로 결정.
  • 일관성 유지(consistency policy) 기법 필요
    • 캐시에 보관된 웹 객체가 근원지 서버에서 변경될 수 있기 때문
    • 캐싱된 객체가 근원지 서버에 있는 객체와 동일한지를 확인해서 사용자에게 최신의 정보를 전달하기 위함
    • 전통적인 시스템과는 조금 차이가 있다. 큰 문제점을 야기하지 않는 경우가 대부분.
  • 효과 극대화를 위해서는 웹캐시 간의 공유 및 협력 기법이 필요하다.

 

1.교체 알고리즘 성능 척도

캐시적중률(Hit Rate : HR) : 사용자의 총 요청 중 캐시에서 적중되서 서비스된 요청의 비율.

웹캐싱에서는 객체들의 크기와 인출 비용이 균일하지 않기 때문에 객체들의 참조 가능성과 이질성을 함꼐 고려해서 객체들의 가치를 평가하는 것이 바람직하다.

2.참조 가능성의 예측

궁극적으로 미래의 참조 가능성을 얼마나 잘 예측하는가가 효율성을 좌우한다. LRU (Least Recently Used), LFU (Least Frequently Used) 등의 알고리즘처럼 캐싱된 객체의 최근 참조 성향과 참조 빈도에 근거해 미래의 참조 성향을 예측하는 과거 참조 기록에 의한 방법을 일반적으로 사용한다.

3.객체의 이질성에 대한 고려

웹캐싱에서처럼 캐싱의 단위 객체들이 이질적인 환경에서는 참조 가능성 이외에 객체의 크기와 인출 비용을 고려한 합리적인 가치평가를 해야 한다.

  • 캐시 적중률을 높이고자 한다면 크기가 작은 객체에 높은 가치부여. 한정된 캐시 공간에 많은 객체를 보관하므로 적중률을 높일 수 있다.
    • SIZE, LRU-MIN
  • 비용절감률을 높이는 경우 (많은 알고리즘이 보통 이를 높이려고 한다.)
      1. 웹 객체의 참조 가능성에 대한 예측치와 그 객체의 단위 크기당 비용을 곱해 객체의 전체적인 가치를 평가. ex.LNC-R, SW-LFU, SLRU, LRV, LUV 등
      1. GD-SIZE 계열의 알고리즘. 역시 객체의 크기와 비용을 고려하지만, 1번 부류와는 달리 객체의 참조 가능성과 이질성을 정규화된 방법으로 고려하지 않는다. 시간이 흐름에 따라 참조되지 않은 객체의 가치를 감소시키는 노회 메커니즘을, 객체의 인출 비용에 관계없이 모든 객체들에 대해 동일한 값으로 적용.

4.알고리즘의 시간 복잡도

실제 시스템에 유효하게 사용되려면 시간복잡도 측면에서 현실성이 필요하다. 빈 공간이 필요할 때마다 즉시 삭제할 객체를 선별해야 해서 시간적인 제약 조건이 따르기 때문이다.

일반적으로 캐시 운영에 드는 시간이 O(logN)을 넘기지 않는 것이 바람직하다.