KR100383407B1 - 적응형 캐쉬 교체 방법 - Google Patents

적응형 캐쉬 교체 방법 Download PDF

Info

Publication number
KR100383407B1
KR100383407B1 KR10-2001-0017181A KR20010017181A KR100383407B1 KR 100383407 B1 KR100383407 B1 KR 100383407B1 KR 20010017181 A KR20010017181 A KR 20010017181A KR 100383407 B1 KR100383407 B1 KR 100383407B1
Authority
KR
South Korea
Prior art keywords
proxy cache
value
cache
stored
objects
Prior art date
Application number
KR10-2001-0017181A
Other languages
English (en)
Other versions
KR20010067820A (ko
Inventor
최승락
김미영
이윤준
이재혁
Original Assignee
주식회사 아라기술
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 아라기술 filed Critical 주식회사 아라기술
Priority to KR10-2001-0017181A priority Critical patent/KR100383407B1/ko
Publication of KR20010067820A publication Critical patent/KR20010067820A/ko
Application granted granted Critical
Publication of KR100383407B1 publication Critical patent/KR100383407B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 시간 지역성(temporal locality)과 Zipf 빈도 분포(frequency distribution)의 웹 워크로드(workload)의 특성을 반영하여 미래 참조 가능성을 보다 정확히 예측함으로써 BHR을 높여 사용자 지연 시간을 줄이는 프락시 캐쉬 교체 방법에 관한 것으로,
본 발명의 특징은, F값이 가장 작은 오브젝트를 빅팀 오브젝트로 선정할 것인가 판단하는 단계; 상기 단계에서 상기 F값이 가장 작은 오브젝트가 상기 빅팀 오브젝트로 선정되면 상기 빅팀 오브젝트를 삭제하는 단계; 프락시 캐쉬 내의 모든 오브젝트의 상기 F값을 소정 함수 만큼 감소시키는 단계; 및 상기 F값이 가장 작은 오브젝트가 상기 빅팀 오브젝트로 선정되지 않거나, 상기 모든 오브젝트의 상기 F값이 상기 소정 함수 만큼 감소되면 상기 프락시 캐쉬가 충분한 공간을 확보하는 단계를 포함하는데 있다.
이와 같이, 본 발명은 오브젝트의 라이프 타임과 프락시 캐쉬의 액티브 세트 변화율 사이의 관계를 이용하여 LFU의 단점인 캐쉬 오염 문제를 극복하고, LFU에서 고려하지 않은 웹 워크로드 특성인 시간 지역성을 액티브 세트의 변화율(active-set drift)에 따라 반영할 수 있는 이점이 있다.

Description

적응형 캐쉬 교체 방법{Method for the adaptive cache replacement}
본 발명은 적응형 캐쉬 교체 방법에 관한 것으로, 보다 상세하게는 시간 지역성(temporal locality)과 Zipf 빈도 분포(frequency distribution)의 웹 워크로드(workload)의 특성을 반영하여 미래 참조 가능성을 보다 정확히 예측함으로써 BHR을 높여 사용자 지연 시간을 줄이는 적응형 캐쉬 교체 방법에 관한 것이다.
일반적으로 서버(100), DB(110), 무선통신망(120), 서브 네트워크(130), 프락시 캐쉬(140) 및 클라이언트컴퓨터(150) 구조를 보인 도 1에 도시된 바와 같은 프락시 캐쉬(140)는 네트워크 트래픽을 줄이고 사용자 지연 시간(User Delay Latency)을 단축하기 위하여 사용자가 자주 요구하는 웹 오브젝트를 한정된 저장 공간에 보관해두었다가 미래에 사용자가 보관되어 있는 웹 오브젝트를 요구하였을 때 빠르게 제공한다. 프락시 캐쉬(140)는 클라이언트컴퓨터(150)를 이용하는 다수의 사용자가 요청한 웹 오브젝트를 한정된 저장 공간에 저장해야 하기 때문에 요청된 모든 오브젝트를 저장할 수 없는 문제점이 있다.
따라서, 본 발명은 이와 같은 문제점을 해결하기 위한 것으로서, 본 발명은 프락시 캐쉬에 보관되어 있지 않은 새로운 오브젝트에 대한 사용자의 참조 요청이 있을 때 보관되어 있는 오브젝트 중에 미래 참조 가능성이 적은 오브젝트를 온라인의 동적으로 선정하여 새로운 오브젝트가 저장될 수 있을 만큼의 공간을 확보할 때까지 프락시 캐쉬에서 삭제하기 위한 적응형 캐쉬 교체 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적은 사용자로부터 새로운 오브젝트에 대한 참조 요청이 있을 때 마다 프락시 캐쉬에 보관할 오브젝트와 삭제할 오브젝트를 동적으로 결정하는 적응형 캐쉬 교체 방법을 제공하는데 있다.
도 1은 일반적인 서버, 프락시 캐쉬 및 클라이언트 구조를 보인 구성도,
도 2는 본 발명에 따른 적응형 캐쉬 교체 방법의 오브젝트 라이프 사이클 관계를 보인 도면,
도 3은 본 발명에 따른 적응형 캐쉬 교체 방법의 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
100 : 서버 110 : 데이터베이스
120 : 무선통신망 130 : 서브 네트워크
140 : 프락시 캐쉬 150 : 클라이언트컴퓨터
이와 같은 목적을 달성하기 위한 본 발명의 특징은, F값이 가장 작은 오브젝트를 빅팀 오브젝트로 선정할 것인가 판단하는 단계; 상기 단계에서 상기 F값이 가장 작은 오브젝트가 상기 빅팀 오브젝트로 선정되면 상기 빅팀 오브젝트를 삭제하는 단계; 프락시 캐쉬 내의 모든 오브젝트의 상기 F값을 소정 함수 만큼 감소시키는 단계; 및 상기 F값이 가장 작은 오브젝트가 상기 빅팀 오브젝트로 선정되지 않거나, 상기 모든 오브젝트의 상기 F값이 상기 소정 함수 만큼 감소되면 상기 프락시 캐쉬가 충분한 공간을 확보하는 단계를 포함하는데 있다.
바람직하게, 상기 F값은 오브젝트의 참조 회수, 액티브 세트 변화율과 관련된 값임을 특징으로 한다.
바람직하게, 상기 라이프 타임은 오브젝트가 뉴 오브젝트로 프락시 캐쉬에 보관될 때부터 상기 빅팀 오브젝트가 되어 상기 프락시 캐쉬에서 삭제될 때까지를 나타내며, 상기 라이프 타임 내에서 라이프 사이클이 일어나는 타임임을 특징으로 한다.
바람직하게, 상기 빅팀 오브젝트는 뉴 오브젝트를 상기 프락시 캐쉬에 저장하기 위해서 상기 프락시 캐쉬에 저장되어 있는 오브젝트 중 일부를 상기 프락시 캐쉬에서 삭제해야 하는 대상이 되는 오브젝트임을 특징으로 한다.
바람직하게, 상기 뉴 오브젝트는 사용자로부터 참조 요청이 들어온 오브젝트 중에 상기 프락시 캐쉬에 보관되어 있지 않은 오브젝트이며, 상기 프락시 캐쉬 내에 저장할 수 있는 경우, 상기 사용자에게 제공하면서 상기 프락시 캐쉬에도 저장하며, 상기 프락시 캐쉬에 저장할 수 없는 경우, 상기 프락시 캐쉬에 저장되어 있는 다른 오브젝트를 상기 프락시 캐쉬에서 삭제하여 필요한 공간을 확보하는 오브젝트임을 특징으로 한다.
바람직하게, 상기 프락시 캐쉬 내의 모든 오브젝트는 라이브 오브젝트와 데드 오브젝트임을 특징으로 한다.
바람직하게, 상기 라이브 오브젝트는 상기 프락시 캐쉬에 저장되어 있는 오브젝트 중에 미래에 다시 참조될 오브젝트로, 미래에 다시 참조될 오브젝트이기 때문에 상기 프락시 캐쉬에 보관할 가치가 있는 오브젝트임을 특징으로 한다.
바람직하게, 상기 데드 오브젝트는 상기 프락시 캐쉬에 저장되어 있는 오브젝트 중에 더 이상 참조되지 않을 오브젝트로, 상기 프락시 캐쉬에서 삭제하는 것이 바람직한 오브젝트임을 특징으로 한다.
바람직하게, 상기 소정 함수는 라이프 타임에 반비례하는 함수임을 특징으로 한다.
이하, 본 발명의 바람직한 실시예에 대하여 첨부 도면을 참조하여 상세히 설명한다.
도 2는 본 발명에 따른 적응형 캐쉬 교체 방법의 오브젝트 라이프 사이클 관계를 보인 도면이며, 도 3은 본 발명에 따른 적응형 캐쉬 교체 방법의 흐름도이다.
도 2 및 도 3에 있어서, 도 1에 도시된 프락시 캐쉬(140)를 이용하여 본 발명의 프락시 캐쉬 교체 방법의 오브젝트 라이프 사이클 관계를 설명하면 다음과 같다.
도 2의 뉴 오브젝트(new object)(no)는 사용자로부터 참조 요청이 들어온 오브젝트 중에 프락시 캐쉬(140)에 보관되어 있지 않은 오브젝트인데 프락시 캐쉬(140) 내에 저장할 수 있는 경우, 사용자에게 제공하면서 프락시 캐쉬(140)에도 저장한다. 이때, 프락시 캐쉬(140)에 저장할 수 없는 경우 프락시 캐쉬(140)에 저장되어 있는 다른 오브젝트를 프락시 캐쉬(140)에서 삭제하여 필요한 공간을 확보한다.
프락시 캐쉬(140) 내의 라이브 오브젝트(live object)(lo)는 프락시 캐쉬(140)에 저장되어 있는 오브젝트 중에 미래에 다시 참조될 오브젝트로, 미래에 다시 참조될 오브젝트이기 때문에 프락시 캐쉬(140)에 보관할 가치가 있다. 또한, 프락시 캐쉬(140) 내의 데드 오브젝트(dead object)(do)는 프락시 캐쉬(140)에 저장되어 있는 오브젝트 중에 더 이상 참조되지 않을 오브젝트로, 이러한 오브젝트의 경우 프락시 캐쉬(140)에서 삭제하는 것이 바람직하다.
빅팀 오브젝트(victim object)(vo)는 뉴 오브젝트를 프락시 캐쉬(140)에 저장하기 위해서 프락시 캐쉬(140)에 저장되어 있는 오브젝트 중 일부를 프락시 캐쉬(140)에서 삭제해야 하는 대상이 되는 오브젝트이다.
한편, 단위 시간의 기본적인 시간 단위를 사용자의 참조 요청으로 하는데, 실제 시간을 기준으로 할 경우 단위 결정의 문제가 발생한다. 이와 같은 단위 결정은 초, 분, 시간 등의 시간 단위 중에 어떤 것을 선택하는냐에 따라 프락시 캐쉬(140)의 교체 정책의 성능은 크게 달라진다. 또한, 프락시 캐쉬(140)마다 초당 처리하는 참조 요청의 수가 다르기 때문에 실제 시간을 기준으로 삼은 프락시 캐쉬(140)의 교체 정책의 경우 예상치 못한 성능 차이가 발생할 수 있다. 사용자의 참조 요청이 없는 경우, 프락시 캐쉬(140)의 상태는 변화하지 않고, 사용자의 참조 요청이 있는 경우 비로소 프락시 캐쉬(140)의 상태가 변할 수 있기 때문에 단위 시간을 사용자의 참조 요청으로 한다.
사용자가 참조 요청한 오브젝트가 프락시 캐쉬(140)에 없을 경우 프락시 캐쉬(140)는 다른 프락시 캐쉬나 서버(100)에게 오브젝트를 요청하게 된다. 프락시 캐쉬(140)가 요청한 오브젝트는 뉴 오브젝트(no)가 되어 프락시 캐쉬(140)에 보관된다. 이때, 뉴 오브젝트(no)는 라이브 오브젝트(lo)나 데드 오브젝트(do)가 된다. 60%~70%의 오브젝트가 한 번만 참조되고 더 이상 참조되지 않는 웹 워크로드 특성에 의해 1/3 정도의 뉴 오브젝트(no)는 라이브 오브젝트(lo)가 되고, 나머지 2/3 가량의 뉴 오브젝트(no)는 데드 오브젝트(do)가 된다.
한편, 라이브 오브젝트(lo)의 경우 결국 미래의 어느 시간에 더 이상 참조 요청이 되지 않게 되어 데드 오브젝트(do)가 된다. 실제로는 라이브 오브젝트(lo) 임에도 불구하고 오랫동안 참조되지 않아 뉴 오브젝트(no)에 의해 프락시 캐쉬(140)에서 삭제되었다가 다시 참조 요청되었을 때 뉴 오브젝트(no)로 프락시 캐쉬(140)에 새롭게 보관되는 경우도 있기 때문에 실제로 뉴 오브젝트(no) 중에 라이브 오브젝트(lo)가 되는 경우는 1/3을 넘는다고 볼 수 있다. 라이프 타임(life time)은 오브젝트가 뉴 오브젝트(no)로 프락시 캐쉬(140)에 보관될 때부터 빅팀 오브젝트(vo)가 되어 프락시 캐쉬(140)에서 삭제될 때까지를 나타내며, 라이프 타임 내에서 라이프 사이클(life cycle)이 일어난다. 액티브 세트(active set)는 라이브 오브젝트(lo)의 집합으로 각 오브젝트의 라이프 사이클로 인해 라이브 오브젝트(lo)의 집합인 액티브 세트 역시 계속 변하게 되며, 하나의 프락시 캐쉬의 액티브 세트는 하나이다.
이와 같이, 오브젝트는 반드시 뉴, 라이브, 데드, 빅팀의 네 가지 중 하나의 상태에 있는데, 프락시 캐쉬(140)가 온라인의 동적 결정을 내리는 시점에는 각 오브젝트의 상태를 알 수 없다. 라이프 사이클의 라이브, 데드 상태는 개념을 설명하기 위한 것이지 실제로는 각 오브젝트의 상태를 알 수 없으며, 라이브 오브젝트(lo)를 알 수 없기 때문에 라이브 오브젝트(lo)의 집합인 액티브 세트도 알 수 없다. 이때, 라이브 오브젝트(lo)나 액티브 세트를 프락시 캐쉬(140)의 교체 정책에서 알 수 없는 이유는 프락시 캐쉬(140)가 미래 참조를 알지 못하기 때문이다.
한편, 액티브 세트는 라이브 오브젝트(lo)의 집합이기 때문에 오브젝트의 라이프 사이클과 밀접한 관련이 있다. 각 오브젝트의 상태가 변할 때마다 액티브 세트 역시 바뀌게 된다. 프락시 캐쉬(140)에 뉴 오브젝트(no)가 많아지면 뉴 오브젝트(no)를 보관하기 위한 공간을 확보해야 하기 때문에 빅팀 오브젝트(vo)도 많아진다. 뉴 오브젝트(no)는 웹 워크로드 특성에 의하면 1/3 이상이 라이브 오브젝트(lo)가 되며, 빅팀 오브젝트(vo)는 빅팀이 되기 전 상태가 라이브일 수도 있고 데드일 수도 있다. 이와 같이, 빅팀으로 선정된 오브젝트가 대부분 데드 오브젝트(do)일수록 좋은 성능의 프락시 캐쉬 교체 정책이라 할 수 있다.
라이브 오브젝트(lo)가 빅팀으로 선정되었더라도 오랫동안 참조되지 않을 오브젝트일 경우 좋은 성능을 기대할 수 있는 바, 빅팀 오브젝트(vo)로 선정하는 시점에는 미래 참조를 모르기 때문에 오브젝트의 상태의 정확한 상태를 알 수 없다. 프락시 캐쉬 알고리즘은 웹 워크로드의 특성을 파악하여 데드 오브젝트(do)일 가능성이 높은 오브젝트를 빅팀으로 선정하게 된다. LFU의 경우 웹 워크로드의 특성인 오브젝트 Zipf 빈도 분포에 근거하여 참조 회수가 낮은 오브젝트가 데드 오브젝트(do)일 가능성이 높다고 보고 참조 회수가 낮은 오브젝트를 빅팀으로 선정한다.
한편, 액티브 세트의 변화율과 오브젝트의 라이프 타임은 반비례 관계가 있다. 오브젝트의 라이프 타임은 뉴 오브젝트(no)로 프락시 캐쉬(140)에 보관되는 시점부터 빅팀 오브젝트(vo)로 선정되어 프락시 캐쉬(140)에서 삭제되는 시점까지 이다. 즉, 오브젝트의 라이프 타임은 오브젝트가 프락시 캐쉬(140)에 저장되어 있는 시간이라 할 수 있다. 액티브 세트 변화율이 커질수록 프락시 캐쉬(140) 내의 각 오브젝트의 라이프 타임이 짧아지게 되는데, 액티브 세트의 변화율은 사용자가 프락시 캐쉬(140)에 저장되어 있지 않은 오브젝트를 요구하는 비율이 높을수록 커지기 때문에 프락시 캐쉬(140)에 새롭게 저장되는 뉴 오브젝트(no)가 많아지는 것을 의미한다.
뉴 오브젝트(no)를 위한 공간 확보를 위해 프락시 캐쉬(140)의 교체가 빈번해짐으로써 빅팀 오브젝트(vo) 또한 많아지게 되어 결과적으로 전체적인 오브젝트의 라이프 타임이 짧아진다. 액티브 세트의 변화율이 낮은 경우에는 사용자가 요구하는 오브젝트가 대부분 프락시 캐쉬(140)에 저장되어 있는 오브젝트이기 때문에 뉴 오브젝트(no)가 상대적으로 적다. 이와 같이, 뉴 오프젝트(no)가 적은 경우 프락시 캐쉬(140)의 교체가 상대적으로 적은 빈도로 발생하기 때문에 오브젝트의 라이프 타임은 길어지게 된다.
액티브 세트의 변화율은 웹 워크로드의 특성과 연관시켜 생각할 수 있는 바, 액티브 세트의 변화율이 큰 경우 시간 지역성을 Zipf 빈도 분포보다 우선적으로 고려해야 하며, 참조 회수가 높은 오브젝트라도 액티브 세트의 변화율이 큰 경우 상대적으로 미래 참조 가능성이 낮다고 볼 수 있다. 액티브 세트의 변화율이 큰 상황에서는 시간 지역성을 우선적으로 고려하는 LRU와 같은 교체 정책이 우수한 성능을 보인다. 이와는 다르게 액티브 세트의 변화율이 낮은 경우 Zipf 빈도 분포를 우선적으로 고려하는 것이 바람직한데, 사용자가 요구하는 오브젝트가 대부분 프락시 캐쉬(140) 내에 저장되어 있는 오브젝트이기 때문에 참조 회수가 높은 오브젝트가 미래 참조 가능성이 상대적으로 높기 때문으로 LFU와 같이 Zipf 빈도 분포를 우선적으로 고려하는 교체 정책이 우수한 성능을 보인다.
본 발명의 프락시 캐쉬 교체 방법은 오브젝트의 참조 회수(frequency), 라이프 타임과 관련된 F값을 이용하여 제거할 오브젝트를 결정하는데, F값은 오브젝트의 참조 회수에 근거한다. 프락시 캐쉬(140)에서 교체가 일어날 때, 프락시 캐쉬(140)에 보관되어 있는 모든 오브젝트의 F값에서 교체되는 오브젝트의 1/(라이프 타임)에 비례하는 값을 빼준다. 따라서, F값이 가장 작은 오브젝트를 빅팀 오브젝트(vo)로 선정하였는가 판단하여(단계 S100), S100 단계에서 F값이 가장 작은 오브젝트가 빅팀 오브젝트(vo)로 선정되었으면, F값이 가장 작은 빅팀 오브젝트(S110)가 우선적으로 프락시 캐쉬(140)에서 삭제된다(단계 S110).
사용자가 요청한 오브젝트가 프락시 캐쉬(140)에 존재하지 않을 경우, 프락시 캐쉬(140)는 다른 프락시 캐쉬나 서버(100)로부터 사용자가 요청한 오브젝트를가져온다. 이때, 프락시 캐쉬(140)에 새로 가져온 오브젝트를 저장할 공간이 없을 경우, 필요한 공간을 확보할 때까지 프락시 캐쉬(140)에서 F값이 낮은 오브젝트를 삭제하는데, 새롭게 프락시 캐쉬(140)에 저장되는 오브젝트의 F값은 1이다. 이는 F값이 참조 회수에 근거를 둔 값이고, LFU와 동일하게 처음 프락시 캐쉬(140)에 들어온 오브젝트는 참조 회수가 1이기 때문이다. 사용자가 요청한 오브젝트가 프락시 캐쉬(140)에 존재하는 경우엔 참조된 오브젝트의 F값에 1을 더해준다. F값에 1을 더해주는 이유는 F값의 기반이 참조 회수이기 때문에 참조 회수가 높아지는 것을 반영하기 위함이다.
S110 단계에서 새롭게 프락시 캐쉬(140)에 저장될 오브젝트를 위한 저장 공간 확보를 위해 프락시 캐쉬(140)에서 빅팀 오브젝트(vo)가 삭제될 때, 프락시 캐쉬(140)에 저장되어 있는 모든 오브젝트의 F값에서 삭제되는 오브젝트의 1/(라이프 타임)과 비례하는 값을 빼서 감소시킨다(단계 S120). 시간이 t인 시점에서 프락시 캐쉬(140)에서 삭제되는 오브젝트 r의 라이프 타임을 l이라고 하고, 시간이 t인 시점에서 오브젝트 i의 F값을 F(i,t)라고 한다. 시간이 t인 시점에서 오브젝트 r이 프락시 캐쉬(140)에서 삭제되는 경우, 프락시 캐쉬(140)에 저장되어 있는 모든 오브젝트 i에 대해 F값은 아래의 [수학식1]에 의해 다시 계산된다.
[수학식1]의 소정 함수 f(l)은 라이프 타임에 반비례하는 함수로서 액티브세트 변화율에 따라 시간 지역성과 Zipf 빈도 분포를 액티브 세트 인식 LFU(Active set aware LFU : 이하 A-LFU라 한다)에 반영하는 정도를 맞추어준다. f(l)은 아래의 [수학식2]와 같이 나타낼 수 있으며, p,q는 양의 상수이다.
p,q는 액티브 세트 변화율을 반영하는 정도를 결정하는 값이다. A-LFU는 p의 값이 클수록 시간 지역성을 우선적으로 반영하며, 작을 경우 Zipf 빈도 분포를 시간 지역성에 비해 우선적으로 반영한다. q의 값은 액티브 세트 변화율에 따라 시간 지역성과 Zipf 빈도 분포를 반영하는 비율을 변화시키는 정도를 나타낸다. A-LFU는 q의 값이 클수록 시간 지역성과 Zipf 빈도 분포를 반영하는 비율이 액티브 세트의 변화율에 민감하게 변한다. 함수 f(l)의 주요한 특성은 단순 감소이다. 따라서 [수학식2]에서 (라이프 타임)부분은 지수 함수나 로그 함수를 적용할 수도 있다. 이와 같은 경우에도 단조 감소 비율이 큰 함수를 적용할 경우 시간 지역성과 Zipf 빈도 분포를 반영하는 비율이 액티브 세트의 변화율에 민감하게 변하는 것은 동일하다.
프락시 캐쉬(140)에서 개체가 삭제될 때마다 [수학식1]에 의하여 프락시 캐쉬(140)에 저장되어 있는 모든 오브젝트의 F값이 삭제되는 오브젝트의 1/(라이프 타임)과 비례하게 줄여줌으로써, 기존 LFU가 가지고 있던 단점인 캐쉬 오염(cache pollution) 현상을 극복하고, 장점인 Zipf 빈도 분포를 고려하였다. A-LFU의 경우참조 회수가 높으나 오랜동안 참조되지 않은 오브젝트는 F값이 지속적으로 줄어들기 때문에 프락시 캐쉬(140)에 남아 있을 수 없다.
LFU의 참조 회수와 같이, 프락시 캐쉬(140)에 새로 저장되는 오브젝트는 참조 회수에 의해 F값이 1이다. LFU의 경우 이전에 프락시 캐쉬(140)에 저장된 오브젝트 중에 참조 회수가 1인 다른 오브젝트와 새롭게 저장된 오브젝트는 모두 참조 회수가 동일하다. A-LFU는 이전에 저장되어 있던 오브젝트는 프락시 캐쉬(140)에서 삭제가 일어날 때 마다 [수학식1]에 의해 F값이 줄어들었기 때문에 F값이 다르다. 즉, 동일한 참조 회수를 가진 오브젝트라 할지라도 프락시 캐쉬(140)에 저장되어 있던 시간과 저장되어 있던 시간 동안의 액티브 세트 변화율에 따라 F값이 다르다. 이로인해 LFU에서 고려하지 못한 시간 지역성을 반영한 프락시 캐쉬 교체 정책이라 할 수 있다.
본 발명의 A-LFU 교체 정책은 꾸준히 참조되지 않는 오브젝트의 F값을 지속적으로 줄인다. F값은 프락시 캐쉬(140)에서 삭제되는 오브젝트의 라이프 타임에 의해 줄어들기 때문에 상수값에 의해 값을 줄이는 경우와는 달리 프락시 캐쉬(140)의 액티브 세트 변화율에 따라 F값의 감소량이 달라진다. 액티브 세트의 변화율이 오브젝트의 라이프 타임과 반비례하는 특성에 의해, 프락시 캐쉬(140)에 저장되어 있지 않은오브젝트를 사용자가 요구하는 비율이 커지는 경우, 프락시 캐쉬(140)에서 삭제되는 오브젝트의 평균 라이프 타임이 자아지기 때문에 프락시 캐쉬(140)에 저장되어 있는 오브젝트의 F값의 감소량은 전반적으로 커지게 된다. 즉, 액티브 세트의 변화율이 커지면 F값의 감소량 역시 커지게 된다. 이와 같은 특성으로 인해A-LFU는 액티브 세트의 변화율을 고려한 프락시 캐쉬 교체 정책으로 볼 수 있다.
한편, F값은 오브젝트의 Zipf 빈도 분포에 의해 값이 증가하는데, 프락시 캐쉬(140)에 새로 저장되는 오브젝트의 F값은 1이며, 프락시 캐쉬(140)에 저장되어 있는 오브젝트를 참조할 경우 참조된 오브젝트의 F값은 1씩 증가한다. 이와 같이 F값이 증가하는 부분은 LFU와 동일하다. F값은 오브젝트의 시간 지연성에 의해 값이 감소하는데, 프락시 캐쉬(140)에 공간이 부족할 경우 F값이 가장 작은 오브젝트를 삭제한다. 이때, 삭제되는 오브젝트의 라이프 타임에 반비례하는 값을 프락시 캐쉬(140)에 저장되어 있는 모든 오브젝트의 F값에서 빼준다. 전체적으로 A-LFU의 알고리즘은 LFU에 기반을 두며, F값이 감소하느 부분은 A-LFU가 워크로드 변화에 따라 Zipf 빈도 분포와 시간 지역성을 반영하는 비율을 동적으로 결정할 수 있게 한다.
프락시 캐쉬(140)에 저장되어 있는 모든 오브젝트에 대해 [식1]에 의해 F값을 감소하는 것은 현실적으로 어려움이 있다. 프락시 캐쉬(140)에 저장된 오브젝트의 개수를 n이라 할 때, 매번 프락시 캐쉬(140)에서 오브젝트가 삭제될 때마다 [식1]을 n번 계산해야 하는 프락시 캐쉬 알고리즘은 시간 복잡도 측면에서 사용하기가 힘들다. 따라서, A-LFU 교체 정책을 구현할 때는 모든 오브젝트에 대해 [식1]을 계산하는 방법보다는 팽창 변수인 Inf를 이용하여 프락시 캐쉬(140)에서 오브젝트가 삭제될 때마다 1/(라이프 타임)을 Inf에 더해주는 방법을 쓰면 시간 복잡도가 증가하는 문제를 해결할 수 있다. 프락시 캐쉬(140)에 새롭게 저장되는 캐쉬의 경우, 저장되는 시점의 Inf값을 기억해 두고, 이후 다른 오브젝트와 F값을 비교할 때비교하는 시점의 Inf값과 캐쉬에 저장된 시점의 Inf값을 이용하면 [식1]의 계산을 매번 할 필요가 없다.
F값은 오브젝트가 참조되는 경우와 프락시 캐쉬(140)에서 오브젝트가 삭제되는 경우에 값이 바뀐다. 프락시 캐쉬(140)에서 오브젝트가 삭제되는 경우, 프락시 캐쉬(140)에 저장되어 있는 모든 오브젝트에서 삭제되는 오브젝트의 1/(라이프 타임)과 비례하여 빼주기 때문에 오브젝트의 삭제로 인해 다른 오브젝트의 대소 관계가 변하지 않는다. 따라서, 프락시 캐쉬(140) 내에 있는 오브젝트 중에서 참조되지 않은 오브젝트들 간에는 F값의 대소 관계가 유지되므로 F값에 따른 힙(heap) 구조를 이용하여 프락시 캐쉬(140) 내의 오브젝트를 관리함으로써 시간 복잡도 O(log N)으로 프락시 캐쉬(140)의 운영이 가능하도록 충분한 공간을 확보한다(단계 S130).
이와 같이, 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범주에서 벗어나지 않는 한도 내에서 여러가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
결국, 본 발명에 의한 적응형 캐쉬 교체 방법에 따르면 다음과 같은 이점이 발생한다.
즉, 오브젝트의 라이프 타임과 프락시 캐쉬의 액티브 세트 변화율 사이의 관계를 이용하여 LFU의 단점인 캐쉬 오염 문제를 극복하고, LFU에서 고려하지 않은 웹 워크로드 특성인 시간 지역성을 액티브 세트의 변화율에 따라 반영할 수 있다.

Claims (9)

  1. F값이 가장 작은 오브젝트를 빅팀 오브젝트로 선정할 것인가 판단하는 단계;
    상기 단계에서 상기 F값이 가장 작은 오브젝트가 상기 빅팀 오브젝트로 선정되면 상기 빅팀 오브젝트를 삭제하는 단계;
    프락시 캐쉬 내의 모든 오브젝트의 상기 F값을 소정 함수 만큼 감소시키는 단계; 및
    상기 F값이 가장 작은 오브젝트가 상기 빅팀 오브젝트로 선정되지 않거나, 상기 모든 오브젝트의 상기 F값이 상기 소정 함수 만큼 감소되면 상기 프락시 캐쉬가 충분한 공간을 확보하는 단계를 포함하는 것을 특징으로 하는 적응형 캐쉬 교체 방법.
  2. 제 1 항에 있어서, 상기 F값은
    오브젝트의 참조 회수, 액티브 세트 변화율과 관련된 값임을 특징으로 하는 적응형 캐쉬 교체 방법.
  3. 제 2 항에 있어서, 상기 라이프 타임은
    상기 오브젝트가 뉴 오브젝트로 상기 프락시 캐쉬에 보관될 때부터 빅팀 오브젝트가 되어 상기 프락시 캐쉬에서 삭제될 때까지를 나타내며, 상기 라이프 타임 내에서 라이프 사이클이 일어나는 타임임을 특징으로 하는 적응형 캐쉬 교체 방법.
  4. 제 1 항에 있어서, 상기 빅팀 오브젝트는
    뉴 오브젝트를 상기 프락시 캐쉬에 저장하기 위해서 상기 프락시 캐쉬에 저장되어 있는 오브젝트 중 일부를 상기 프락시 캐쉬에서 삭제해야 하는 대상이 되는 오브젝트임을 특징으로 하는 적응형 캐쉬 교체 방법.
  5. 제 4 항에 있어서, 상기 뉴 오브젝트는
    사용자로부터 참조 요청이 들어온 오브젝트 중에 상기 프락시 캐쉬에 보관되어 있지 않은 오브젝트이며, 상기 프락시 캐쉬 내에 저장할 수 있는 경우, 상기 사용자에게 제공하면서 상기 프락시 캐쉬에도 저장하며, 상기 프락시 캐쉬에 저장할 수 없는 경우, 상기 프락시 캐쉬에 저장되어 있는 다른 오브젝트를 상기 프락시 캐쉬에서 삭제하여 필요한 공간을 확보하는 오브젝트임을 특징으로 하는 적응형 캐쉬 교체 방법.
  6. 제 1 항에 있어서,
    상기 프락시 캐쉬 내의 모든 오브젝트는 라이브 오브젝트와 데드 오브젝트임을 특징으로 하는 적응형 캐쉬 교체 방법.
  7. 제 6 항에 있어서, 상기 라이브 오브젝트는
    상기 프락시 캐쉬에 저장되어 있는 오브젝트 중에 미래에 다시 참조될 오브젝트로, 미래에 다시 참조될 오브젝트이기 때문에 상기 프락시 캐쉬에 보관할 가치가 있는 오브젝트임을 특징으로 하는 적응형 캐쉬 교체 방법.
  8. 제 6 항에 있어서, 상기 데드 오브젝트는
    상기 프락시 캐쉬에 저장되어 있는 오브젝트 중에 더 이상 참조되지 않을 오브젝트로, 상기 프락시 캐쉬에서 삭제하는 것이 바람직한 오브젝트임을 특징으로 하는 적응형 캐쉬 교체 방법.
  9. 제 1 항에 있어서, 상기 소정 함수는
    라이프 타임에 반비례하는 함수임을 특징으로 하는 적응형 캐쉬 교체 방법.
KR10-2001-0017181A 2001-03-31 2001-03-31 적응형 캐쉬 교체 방법 KR100383407B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0017181A KR100383407B1 (ko) 2001-03-31 2001-03-31 적응형 캐쉬 교체 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0017181A KR100383407B1 (ko) 2001-03-31 2001-03-31 적응형 캐쉬 교체 방법

Publications (2)

Publication Number Publication Date
KR20010067820A KR20010067820A (ko) 2001-07-13
KR100383407B1 true KR100383407B1 (ko) 2003-05-12

Family

ID=19707690

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0017181A KR100383407B1 (ko) 2001-03-31 2001-03-31 적응형 캐쉬 교체 방법

Country Status (1)

Country Link
KR (1) KR100383407B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030055482A (ko) * 2001-12-26 2003-07-04 한국전자통신연구원 선택적인 캐시관리방법 및 장치
WO2013095639A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Utility and lifetime based cache replacement policy

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030053285A (ko) * 2001-12-22 2003-06-28 엘지전자 주식회사 웹 캐쉬 대체 구조 및 방법
KR101407630B1 (ko) 2007-09-07 2014-06-13 삼성전자주식회사 분산 파일 시스템 및 분산 파일 시스템의 캐쉬 데이터 대체방법
KR20210130341A (ko) 2020-04-22 2021-11-01 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030055482A (ko) * 2001-12-26 2003-07-04 한국전자통신연구원 선택적인 캐시관리방법 및 장치
WO2013095639A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Utility and lifetime based cache replacement policy
US9075746B2 (en) 2011-12-23 2015-07-07 Intel Corporation Utility and lifetime based cache replacement policy

Also Published As

Publication number Publication date
KR20010067820A (ko) 2001-07-13

Similar Documents

Publication Publication Date Title
EP3195130B1 (en) Method and system for smart object eviction for proxy cache
US7984112B2 (en) Optimizing batch size for prefetching data over wide area networks
US6901484B2 (en) Storage-assisted quality of service (QoS)
US7051161B2 (en) Memory admission control based on object size or request frequency
US8391295B2 (en) Temporal affinity-based routing of workloads
US6425057B1 (en) Caching protocol method and system based on request frequency and relative storage duration
EP3519974B1 (en) System and method for improvements to a content delivery network
US7673108B2 (en) Methods and systems for distributed caching in presence of updates and in accordance with holding times
US7251649B2 (en) Method for prioritizing content
US8447948B1 (en) Dynamic selective cache compression
US7546475B2 (en) Power-aware adaptation in a data center
US20030217113A1 (en) Caching techniques for streaming media
CN111309650B (zh) 缓存控制方法、装置、存储介质及设备
WO2003046728A1 (en) Caching dynamic web documents
CN106021126B (zh) 缓存数据处理方法及服务器、配置设备
US11693563B2 (en) Automated tuning of a quality of service setting for a distributed storage system based on internal monitoring
KR100383407B1 (ko) 적응형 캐쉬 교체 방법
JP2013156766A (ja) 情報処理装置、メモリ管理方法およびメモリ管理プログラム
US7376792B2 (en) Variable cache data retention system
JP2005092862A (ja) 負荷分散方法及びクライアント・サーバシステム
US6915386B2 (en) Processing service level agreement (SLA) terms in a caching component of a storage system
Kangasharju et al. Implementation of optimized cache replenishment algorithms in a soft caching system
KR100690711B1 (ko) 정보 조회 서비스에서의 캐쉬 일관성 유지 방법
KR20030053285A (ko) 웹 캐쉬 대체 구조 및 방법
Patil et al. Integrating intelligent predictive caching and static prefetching in web proxy servers

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130419

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20140318

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20150313

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20160311

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20170426

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee