KR101690944B1 - 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법 및 장치 - Google Patents

이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법 및 장치 Download PDF

Info

Publication number
KR101690944B1
KR101690944B1 KR1020150133534A KR20150133534A KR101690944B1 KR 101690944 B1 KR101690944 B1 KR 101690944B1 KR 1020150133534 A KR1020150133534 A KR 1020150133534A KR 20150133534 A KR20150133534 A KR 20150133534A KR 101690944 B1 KR101690944 B1 KR 101690944B1
Authority
KR
South Korea
Prior art keywords
data
node
frequency
nodes
hot
Prior art date
Application number
KR1020150133534A
Other languages
English (en)
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 KR1020150133534A priority Critical patent/KR101690944B1/ko
Application granted granted Critical
Publication of KR101690944B1 publication Critical patent/KR101690944B1/ko

Links

Images

Classifications

    • G06F17/3048
    • G06F17/30097
    • G06F17/30194
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법 및 장치가 개시된다. 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법은 부하 분산 처리기가 연결된 복수의 데이터 노드 각각의 메모리 크기를 기반으로 해시 공간을 조정하는 단계, 부하 분산 처리기가 상기 복수의 데이터 노드 각각의 데이터의 재사용 가능성, 데이터의 사용 빈도수, 데이터의 접근 시간을 고려하여 상기 복수의 데이터 노드 각각에 대한 캐시 교체를 수행하는 단계를 포함할 수 있다.

Description

이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법 및 장치 {Method and apparatus for managing distributed cache in consideration of load distribution in heterogeneous computing environment}
본 발명은 캐시 관리 방법 및 장치에 관한 것으로서, 보다 상세하게는, 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법 및 장치에 관한 것이다.
최근 페이스북이나 유튜브 같은 소셜 미디어의 성장과 모바일 장치와 같은 디지털 기기의 확산에 따라 사용자는 더 이상 단순히 데이터 소비자가 아닌 데이터 생산자의 역할도 함께 수행하게 되었다. 이로 인해, 데이터의 양이 급증했을 뿐만 아니라 데이터의 유형도 다양화되면서 빅 데이터 시대가 도래되었다. 이러한 빅 데이터를 처리하기 위해 하둡(hadoop), 병렬 DBMS(database management system)와 같은 분산 저장 관리 기술이 활용되고 있다.
일반적인 분산 저장 관리 기술은 디스크에 데이터를 저장하고 처리하기 위한 기술이다. 따라서, 분산 저장 관리 기술에서 I/O(input/output) 속도로 인한 처리 비용이 증가되고 노드에 병목 현상이 증가되는 문제점이 있다. 이러한 문제점을 해결하기 위하여 데이터를 메모리에 상주시켜 데이터를 처리하는 분산 인-메모리 기술에 대한 중요성이 부각되고 있다. 인-메모리 기술은 방대한 양의 데이터를 하드 디스크가 아닌 메모리에 적재하여 사용한다. 따라서, 인-메모리 기술이 사용되는 경우, 파일 시스템 I/O를 거치지 않고 데이터를 즉시 얻을 수 있다. 일반적으로 하드디스크와 메모리의 데이터 처리 속도는 100배 이상 차이가 발생하기 때문에 인-메모리 기술은 디스크 기반 모델에 비해 수십 배에서 수백 배의 성능 향상을 이끌어 낸다. 인-메모리 기술은 Facebook이나 Twitter 같은 빅 데이터를 활용하는 많은 기업에서 사용하고 있고, 그 중에서도 memcached 기술이 대표적인 인-메모리 기술이다.
memcached는 Facebook, Twitter, Reddit, YouTube와 같은 클라우드 및 웹 서비스 제공 회사에서 사용하는 키-값(key-value) 기반의 메모리 캐시이다. 질의가 요청되면 요청된 질의를 인-메모리 캐시에서 직접 서비스하기 때문에 백엔드 시스템에 연결된 저장소에 대한 접근 비용이 감소될 수 있다. ESM(enhancing the scalability of Memcached)은 memcached가 작업을 수행할 때 필요한 데이터에 락(lock)을 사용하여 데이터 처리에 성능 저하를 가져오게 되는데, 이러한 문제점을 해결하기 위해 변경 작업을 요청한 경우에 부분적으로 lock을 사용하는 기법을 제안하였다. 데이터를 읽는 상황에서는 lock을 사용하지 않고 스트라이프드 락(striped lock)을 사용하여 기존 방식에서 발생할 수 있는 병목 현상을 최소화하였다. memcached와 ESM은 해시값을 사용하여 데이터를 분배하기 때문에 특정 노드에 데이터가 편중될 가능성이 있으며 핫 데이터가 발생할 경우 사용자의 요청이 특정 노드에 집중되어 병목 현상이 발생할 수 있다.
APA(adaptive performance-aware distributed memory caching)는 가상 노드 개념을 사용하여 모든 노드에 데이터를 균일하게 분배하고 특정 노드에서 과부하가 발생하는 문제점을 해결하기 위해 동적으로 해시 공간을 관리하는 기법을 제안하였다. 또한, 메모리에 적재된 데이터를 적절하게 관리하는 캐시 교체 정책이 성능에 많은 영향을 끼친다.
KR 10-2006-0116551
본 발명의 일 측면은 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법을 제공한다.
본 발명의 다른 측면은 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 장치를 제공한다.
본 발명의 일 측면에 따른 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법은 부하 분산 처리기가 연결된 복수의 데이터 노드 각각의 메모리 크기를 기반으로 해시 공간을 조정하는 단계, 상기 부하 분산 처리기가 상기 복수의 데이터 노드 각각의 데이터의 재사용 가능성, 데이터의 사용 빈도수, 데이터의 접근 시간을 고려하여 상기 복수의 데이터 노드 각각에 대한 캐시 교체를 수행하는 단계를 포함할 수 있다.
한편, 상기 해시 공간의 조정은 아래의 수학식을 기반으로 수행되고,
<수학식 >
Figure 112015092103702-pat00001
여기서, Local Node(Ni)은 데이터 노드 Ni의 조정된 상기 해시 공간의 크기이고, Hash(Ni)는 상기 데이터 노드 Ni의 기존 해시 공간의 크기, Hash(Ni+1)는 데이터 노드 Ni+1의 기존 해시 공간의 크기를 나타낼 수 있다.
또한, 상기 캐시 교체는 아래의 수학식을 기반으로 산출된 상기 데이터에 대한 Eviction의 값을 기반으로 수행되고,
<수학식>
Figure 112015092103702-pat00002
여기서, Reusabilityk는 상기 데이터의 재사용 가능성, Total Frequencyk는 상기 데이터의 사용 빈도수, Recent Timek는 상기 데이터의 접근 시간을 나타내고,
Figure 112015092103702-pat00003
는 가중치이고,
상기 데이터의 재사용 가능성은 아래의 수학식을 기반으로 산출되고,
<수학식 3>
Figure 112015092103702-pat00004
여기서, Frequencyavg는 표준 편차를 구하기 위한 상기 데이터의 평균 사용 빈도수,
Figure 112015092103702-pat00005
Frequencyk는 전체 사용 빈도수의 합, t는 전체 시간일 수 있다.
또한, 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법은 상기 부하 분산 처리기가 상기 복수의 데이터 노드 각각의 메모리에 현재 저장된 핫 데이터의 개수를 결정하는 단계, 상기 부하 분산 처리기가 상기 복수의 데이터 노드 각각의 핫 데이터 보유 가능 비율을 결정하는 단계, 상기 부하 분산 처리기가 상기 핫 데이터 보유 가능 비율을 기반으로 상기 복수의 데이터 노드 각각에 적합한 핫 데이터의 개수를 결정하는 단계와 상기 부하 분산 처리기가 상기 복수의 데이터 노드 각각의 메모리에 현재 저장된 핫 데이터의 개수와 상기 복수의 데이터 노드 각각에 적합한 핫 데이터의 개수를 기반으로 핫 데이터의 재배치를 수행하는 단계를 더 포함할 수 있다.
또한, 상기 핫 데이터 보유 가능 비율(Rate)는 아래의 수학식을 기반으로 결정되고,
<수학식>
Figure 112015092103702-pat00006
여기서, N은 데이터 노드가 가지는 전체 태스크의 수, Average Task Time은 노드의 평균 태스크 수행 시간,
Figure 112015092103702-pat00007
Single Task Time(Ti)는 데이터 노드의 전체 태스크 수행 시간의 합, The number of Task(N)은 노드가 가지는 전체 태스크 수의 합일 수 있다.
본 발명의 다른 측면에 따른 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 장치는 프로세서를 포함하고, 상기 프로세서는 연결된 복수의 데이터 노드 각각의 메모리 크기를 기반으로 해시 공간을 조정하고, 상기 복수의 데이터 노드 각각의 데이터의 재사용 가능성, 데이터의 사용 빈도수, 데이터의 접근 시간을 고려하여 상기 복수의 데이터 노드 각각에 대한 캐시 교체를 수행하도록 구현될 수 있다.
한편, 상기 해시 공간의 조정은 아래의 수학식을 기반으로 수행되고,
<수학식 >
<수학식 >
Figure 112015092103702-pat00008
여기서, Local Node(Ni)은 데이터 노드 Ni의 조정된 상기 해시 공간의 크기이고, Hash(Ni)는 상기 데이터 노드 Ni의 기존 해시 공간의 크기, Hash(Ni+1)는 데이터 노드 Ni+1의 기존 해시 공간의 크기를 나타낼 수 있다.
또한, 상기 캐시 교체는 아래의 수학식을 기반으로 산출된 상기 데이터에 대한 Eviction의 값을 기반으로 수행되고,
<수학식>
Figure 112015092103702-pat00009
여기서, Reusabilityk는 상기 데이터의 재사용 가능성, Total Frequencyk는 상기 데이터의 사용 빈도수, Recent Timek는 상기 데이터의 접근 시간을 나타내고,
Figure 112015092103702-pat00010
는 가중치이고,
상기 데이터의 재사용 가능성은 아래의 수학식을 기반으로 산출되고,
<수학식 3>
Figure 112015092103702-pat00011
여기서, Frequencyavg는 표준 편차를 구하기 위한 상기 데이터의 평균 사용 빈도수,
Figure 112015092103702-pat00012
Frequencyk는 전체 사용 빈도수의 합, t는 전체 시간일 수 있다.
또한, 상기 프로세서는 상기 복수의 데이터 노드 각각의 메모리에 현재 저장된 핫 데이터의 개수를 결정하고, 상기 복수의 데이터 노드 각각의 핫 데이터 보유 가능 비율을 결정하고, 상기 핫 데이터 보유 가능 비율을 기반으로 상기 복수의 데이터 노드 각각에 적합한 핫 데이터의 개수를 결정하고, 상기 복수의 데이터 노드 각각의 메모리에 현재 저장된 핫 데이터의 개수와 상기 복수의 데이터 노드 각각에 적합한 핫 데이터의 개수를 기반으로 핫 데이터의 재배치를 수행하도록 구현될 수 있다.
또한, 상기 핫 데이터 보유 가능 비율(Rate)는 아래의 수학식을 기반으로 결정되고,
<수학식>
Figure 112015092103702-pat00013
여기서, N은 데이터 노드가 가지는 전체 태스크의 수, Average Task Time은 노드의 평균 태스크 수행 시간,
Figure 112015092103702-pat00014
Single Task Time(Ti)는 데이터 노드의 전체 태스크 수행 시간의 합, The number of Task(N)은 노드가 가지는 전체 태스크 수의 합일 수 있다.
본 발명의 실시예에 따른 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법 및 장치는 데이터 노드의 메모리의 크기가 서로 상이한 환경에서 데이터 노드의 메모리 크기에 따라 데이터를 분배하고 데이터 노드의 부하가 발생하는 경우 핫 데이터를 재분배한다. 또한, 데이터의 재사용 가능성, 사용 빈도수, 접근 시간을 고려하여 캐시 내에서 데이터의 교체가 수행될 수 있다. 따라서, 최근 소셜 미디어의 성장과 디지털 기기의 활용의 증가에 따라 기하급수적으로 급증하는 데이터가 효율적으로 처리될 수 있다.
도 1은 본 발명의 실시예에 따른 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법을 나타낸 개념도이다.
도 2는 본 발명의 실시예에 따른 링 기반의 해시 기법을 기반으로 한 데이터 분배 방법을 나타낸 개념도이다.
도 3은 본 발명의 실시예에 따른 캐시 교체 방법을 나타낸 개념도이다.
도 4는 본 발명의 실시예에 따른 핫 데이터의 재배치 방법을 나타낸 순서도이다.
도 5는 본 발명의 실시예에 따른 데이터 노드의 핫 데이터 재분배 방법을 나타낸 개념도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조 부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
클러스터 환경은 성능이나 메모리의 크기가 서로 다른 데이터 노드들로 구성될 수 있다. 기존의 클러스터 환경에서는 데이터 노드의 메모리 크기가 서로 상이한 환경에서 데이터를 데이터 노드에 균등하게 분배하였다. 데이터 노드의 메모리 크기가 서로 상이한 환경에서 데이터를 데이터 노드에 균등하게 분배할 경우 상대적으로 작은 메모리 크기를 가지는 데이터 노드일수록 메모리가 상대적으로 짧은 시간에 가득 차게 되어 캐시 교체 비용이 증가되는 문제점을 가진다.
또한, 기존의 클러스터 환경에서는 핫 데이터가 특정 데이터 노드에 발생되는 빈도를 고려하지 않는다. 따라서, 특정 데이터 노드에 핫 데이터의 발생 빈도가 높은 경우, 특정 데이터 노드에 병목 현상이 발생하여 특정 데이터 노드 및 전체 시스템의 성능이 저하되는 문제점이 발생한다. 핫 데이터는 상대적으로 자주 액세스되는 액세스의 빈도가 높은 데이터이고, 콜드 데이터는 상대적으로 자주 액세스되지 않는 액세스의 빈도가 낮은 데이터일 수 있다.
본 발명의 실시예에 따른 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법 및 장치에서는 메모리 크기가 상이한 분산 메모리 환경에서 데이터 노드의 메모리 크기에 따라 데이터를 적절하게 분배하고 효율적으로 캐시를 교체하는 방법이 개시된다.
본 발명의 실시예에 따른 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법이 사용되는 경우, 데이터 노드의 메모리 크기에 따라 데이터를 분배함으로써 메모리의 크기가 작은 데이터 노드의 캐시 교체 오버헤드가 감소될 수 있다. 또한, 사용이 많은 핫 데이터가 특정 데이터 노드에 편중되는지 여부를 판단하여 데이터 노드의 태스크 수행 시간을 기반으로 핫 데이터가 재분배될 수 있다. 이러한 부하의 분산이 수행되는 경우, 데이터 노드의 부하가 고르게 분산되고, 데이터 노드의 성능 저하가 최소화된다. 또한, 데이터 노드의 메모리의 용량이 가득 차 더 이상 데이터를 저장할 수 없는 경우, 데이터의 재사용 가능성, 사용 빈도수, 접근 시간을 고려한 캐시 교체 정책이 사용될 수 있다.
즉, 본 발명의 실시예에 따른 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법에서는 데이터 노드의 메모리 크기가 서로 상이한 환경에서 메모리 크기에 따라 데이터가 분배되고 핫 데이터 발생으로 데이터 노드의 과부하가 발생할 경우 과부하가 발생한 데이터 노드의 캐싱 데이터를 부하가 적은 데이터 노드로 이동시켜 부하가 복수의 데이터 노드 간에 적절하게 분배될 수 있다. 또한, 데이터 노드에 캐쉬된 캐싱 데이터의 재사용 가능성, 사용 빈도수, 접근 시간을 고려하여 캐싱 데이터 교체가 수행될 수 있다.
이하, 구체적인 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법 및 장치가 개시된다. 이하, 캐시는 메모리와 동일한 의미로 해석될 수도 있고, 메모리는 캐쉬(또는 캐쉬 메모리)로 해석될 수도 있다.
도 1은 본 발명의 실시예에 따른 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법을 나타낸 개념도이다.
도 1에서는 부하 분산 처리기(부하 균형기(load balancer))(100)의 부하 분산 동작이 개시된다.
부하 분산 처리기(100)는 중앙 서버 역할을 수행하는 노드에서 동작할 수 있다. 부하 분산 처리기(100)는 연결된 데이터 노드들 각각의 분산 메모리로 데이터를 분산하고 데이터 노드들(150) 각각의 분산 메모리에 저장된 데이터에 액세스하기 위해 구현될 수 있다.
만약, 사용자로부터 데이터가 요청되는 경우, 부하 분산 처리기(100)는 데이터 노드(150)의 분산 메모리에 사용자 장치에 의해 요청된 데이터가 존재하는지를 판단할 수 있다. 만약, 특정 데이터 노드(150)의 분산 메모리에 데이터가 저장되어 있는 경우, 부하 분산 처리기(100)는 사용자 장치로 데이터가 저장된 데이터 노드(150)에 대한 정보를 전송할 수 있다. 반대로, 만약 데이터 노드(150)의 분산 메모리에 사용자 장치가 요청한 데이터가 없을 경우, 부하 분산 처리기(100)는 데이터 노드가 아닌 저장 매체인 디스크로 액세스하여 사용자 장치에 의해 요청된 데이터를 특정 데이터 노드(150)의 분산 메모리에 저장할 수 있다. 이후, 부하 분산 처리기(100)는 사용자 장치에 의해 요청된 데이터가 저장된 데이터 노드(150)에 대한 정보를 사용자 장치로 전송할 수 있다.
부하 분산 처리기(100)는 핫 데이터 선택부(hot data selector)(110), 성능 예측부(performance predictor)(120), 데이터 분배부(data distributor)(130), 네트워크부(network)(140), 쿼리 프로세싱부(query processing)(160)를 포함할 수 있다.
핫 데이터 선택부(110)는 데이터 사용량에 대한 분석을 기반으로 핫 데이터를 관리하기 위해 구현될 수 있다.
성능 예측부(120)는 노드 별 태스크 수행 시간을 분석하여 핫 데이터를 분배하기 위한 기준을 생성하기 위해 구현될 수 있다.
데이터 분배부(130)는 수행 지시자를 통해 나타난 정보를 이용하여 분산된 메모리에 데이터를 재분배하기 위해 구현될 수 있다.
네트워크부(140)는 데이터 노드와의 네트워킹을 위해 구현될 수 있다.
쿼리 프로세싱부(160)는 사용자 장치(또는 클라이언트 장치)와의 쿼리 프로세싱을 위해 구현될 수 있다.
핫 데이터 선택부(hot data selector)(110), 성능 예측부(performance predictor)(120), 데이터 분배부(data distributor)(130), 네트워크부(network)(140), 쿼리 프로세싱부(query processing)(160)는 프로세서(미도시)에 의해 제어될 수 있다.
분산 메모리 환경에서 부하 분산 처리기(100)에 새로운 데이터 노드(150)가 추가되거나 장애 발생으로 부하 분산 처리기에서 데이터 노드(150)가 제거될 수 있다. 이러한 경우, 부하 분산 처리기(100)는 추가 또는 제거된 데이터 노드(150)를 고려하여 연결된 데이터 노드(150)에 데이터를 재분배해야 한다.
만약 데이터 노드(150)의 추가 및 제거로 인해 기존의 모든 데이터가 재분배될 경우, 시스템 전체에 부하가 발생하게 된다. 따라서, 사용자의 데이터 요청을 처리하는데 지연이 발생한다. 본 발명의 실시예에 따르면, 데이터 요청에 대한 처리 지연을 방지하기 위해 링 기반의 해시 기법을 통한 데이터의 분배가 수행될 수 있다.
링 기반의 해시 기법을 통한 데이터의 분배는 데이터 노드(150)의 추가 및/또는 데이터 노드(150)의 제거에 따라 모든 데이터를 재분배하는 것이 아니라 인접한 다른 데이터 노드(150)에서 관리해야 할 해시 값을 조정하여 일부 데이터만을 재분배할 수 있다. 따라서, 데이터 재분배에 따른 시스템 전체 부하가 감소될 수 있다.
도 2는 본 발명의 실시예에 따른 링 기반의 해시 기법을 기반으로 한 데이터 분배 방법을 나타낸 개념도이다.
도 2에서는 복수의 데이터 노드 각각의 메모리(또는 캐시 매모리)의 크기가 상이한 환경에서 부하 분산(데이터의 분산)을 처리하기 위한 링 기반의 해시 기법이 개시된다.
도 2를 참조하면, 4개의 노드로 구성된 링 기반 해시 구조가 개시된다.
큰 원은 해시 공간을 나타내고 작은 원 각각은 데이터 노드의 이름과 데이터 노드의 메모리 크기를 나타낸다.
데이터 노드 각각은 전체 해시 공간 중 반시계 방향에 있는 해시 공간을 관리한다. 데이터 노드는 메모리 크기에 따라서 데이터 노드의 해시 공간을 조정할 수 있다.
도 2의 (A)는 기존의 링 기반 해시 기법을 나타낸다.
기존의 링 기반 해시 기법을 사용한 데이터의 분배는 데이터 노드의 메모리의 크기가 상이한 환경에 적합하지 않다. 예를 들어, 데이터 노드 N3가 가장 큰 메모리를 가지고 있고 데이터 노드 N4는 가장 작은 메모리 크기를 가지고 있다고 가정된다. 이러한 경우, 기존의 링 기반의 해시 기법이 사용된다면, 데이터 노드N4가 데이터 노드 N3보다 더 많은 해시 공간을 관리하게 된다. 따라서, 데이터 노드N4의 메모리는 쉽게 가득차게 되고 캐시 교체가 빈번하게 발생할 수 있다. 또한, 데이터 노드N1과 데이터 노드N2는 비슷한 크기의 해시 공간을 관리하게 된다. 데이터 노드N1과 데이터 노드N2가 비슷한 크기의 해시 공간을 관리하는 경우, 데이터 노드N1과 데이터 노드N2가 비슷하게 데이터를 저장한다면 상대적으로 작은 크기의 메모리를 가지는 데이터 노드N2가 데이터 노드N1보다 빈번하게 캐시 교체가 발생할 수 있다.
도 2의 (B)는 본 발명의 실시예에 따른 링 기반 해시 기법을 나타낸다.
도 2의 (B)에서는 본 발명의 실시예에 따른 링 기반 해시 기법에서 초기 해시 값의 분배 과정이 개시된다. 데이터 노드 N1이 데이터 노드 N2보다 메모리의 크기가 더 크다. 따라서, 데이터 노드 N1의 해시 값이 조정되고 데이터 노드 N1이 데이터 노드 N2보다 많은 해시 공간을 관리하도록 설정될 수 있다. 그리고 데이터 노드 N2는 데이터 노드 N3보다 메모리의 크기가 작기 때문에 데이터 노드 N2의 해시 공간은 조정되지 않는다.
메모리 크기에 따른 데이터 노드의 해시 공간의 조정을 위해 아래의 수학식1이 사용될 수 있다.
<수학식1>
Figure 112015092103702-pat00015
수학식1에서 Local Node(Ni)은 노드 Ni의 변경된 해시 값(또는 해시 공간)을 나타낸다. Local Node(Ni)은 Ni과 링 기반의 해시 구조에 이웃한 노드 Ni+1 각각의 해시 값을 기반으로 계산될 수 있다. Hash(Ni)는 Ni의 기존 해시 값, Hash(Ni+1)는 노드 Ni+1의 기존 해시 값을 나타낸다.
데이터 노드의 메모리의 크기에 따라 적절하게 데이터가 분배되는 경우, 메모리의 크기가 큰 데이터 노드는 메모리를 최대한 활용할 수 있고, 메모리의 크기가 작은 데이터 노드는 빈번하게 발생할 수 있는 캐시 교체에 대한 오버헤드를 감소시킬 수 있다.
데이터 노드의 메모리에 데이터가 가득 차게 되면 더 이상의 데이터가 적재될 수 없다. 이럴 경우, 데이터 노드의 메모리에 있는 데이터를 제거하고 새로운 데이터를 적재하기 위한 캐시 교체가 필요하다. 일반적으로 많이 사용되는 캐시 교체 기법으로 접근 빈도수를 기반으로 하는 LFU(Least Frequently Used)와 접근 시간을 기반으로 하는 LRU(Least Recently Used)가 사용된다. LFU는 빈도수를 기반으로 한 캐시 교체 기법으로서 현재는 사용하지 않더라도 과거에 빈번히 사용한 데이터가 데이터 노드의 메모리에 남게 된다. LRU는 접근 시간을 기반으로 한 캐시 교체 기법으로서 많이 사용되지는 않지만 최근에 사용한 데이터가 데이터 노드의 메모리에 남게 된다. LRU가 사용되는 경우, 상대적으로 활용도가 적은 데이터들이 메모리에 남게 되고 메모리에 대한 활용도가 감소될 수 있다.
본 발명의 실시예에 따른 링 기반 해시 기법에서는 ILU(Intergrated Least Used)라는 캐시 교환 정책이 사용될 수 있다. ILU는 앞서 언급한 LFU와 LRU가 가지는 문제점을 해결하기 위해 캐시 교체시 교체되는 데이터의 재사용 가능성, 사용 빈도수, 접근 시간이 모두 고려될 수 있다.
아래의 수학식 2는 ILU 캐시 교체 전략을 나타낸다.
<수학식 2>
Figure 112015092103702-pat00016
수학식 2에서 Evictionk는 데이터 k의 ILU 값을 나타낸다. 상대적으로 작은 ILU 값을 가지는 데이터가 교체 대상으로 선택된다. 이때, Reusabilityk는 데이터의 재사용 가능성, Total Frequencyk는 데이터의 사용 빈도수, RecentTimek는 데이터의 접근 시간을 나타낸다.
Figure 112015092103702-pat00017
는 데이터의 재사용 가능성, 데이터의 사용 빈도수, 데이터의 접근 시간 가중치 각각에 대한 가중치일 수 있다.
도 3은 본 발명의 실시예에 따른 캐시 교체 방법을 나타낸 개념도이다.
도 3에서는 데이터의 재사용 가능성 Reusabilityk에 대한 결정 방법이 개시된다.
도 3에 개시된 표는 시간에 따른 캐시 사용 빈도를 나타낸 것이다. 표를 참조하면, 데이터의 재사용 가능성 Reusabilityk은 시간 범위에 따른 빈도수의 편차를 기반으로 결정될 수 있다.
표 1에서는 특정 시간(T2)에만 요청이 많이 발생한 단발성이 높은 데이터의 사용 빈도가 개시된다.
*표 2에서는 대부분의 시간에 데이터의 요청이 고르게 분포한 지속적으로 사용되는 데이터의 사용 빈도가 개시된다.
데이터 노드의 메모리에는 미래에 더 사용될 가능성이 높은 데이터가 저장될 필요가 있다. 따라서, 캐시 교체시 특정 시간에만 빈번히 사용되는 데이터보다 지속적으로 사용될 수 있는 표2와 같은 사용 빈도를 보이는 데이터는 데이터 노드의 메모리에 남기고 표 1과 같은 사용 빈도를 보이는 데이터는 데이터 노드의 메모리에서 제거하는 것이 효과적일 수 있다.
즉, 본 발명의 실시예에 따른 캐시 교체 방법에서는 메모리 내에 데이터의 재사용 가능성뿐만 아니라 사용 빈도수와 접근 시간을 고려하여 요청이 많은 데이터와 최근 사용된 데이터를 구분하여 캐시 교체가 수행될 수 있다.
재사용 가능성은 시간 범위에 따른 사용 빈도수에 대한 표준 편차를 이용하여 산출된다.
아래의 수학식 3 및 수학식 4는 시간 범위에 따른 사용 빈도수에 대한 표준 편차를 기반으로 산출되는 재사용 가능성을 나타낸다.
<수학식 3>
Figure 112015092103702-pat00018
<수학식 4>
Figure 112015092103702-pat00019
수학식 3을 참조하면, Frequencyavg는 표준 편차를 구하기 위한 데이터의 평균 사용 빈도수,
Figure 112015092103702-pat00020
Frequencyk는 전체 사용 빈도수의 합, t는 전체 시간을 의미한다. 즉, 데이터에 대한 평균 사용 빈도수는 전체 시간과 시간에 따른 전체 사용 빈도수를 기반으로 산출된다.
수학식 4를 참조하면, 데이터의 사용 빈도수에 대한 표준 편차를 기반으로 데이터의 재사용 가능성(Reusability(
Figure 112015092103702-pat00021
))이 산출될 수 있다. 데이터의 사용 빈도수에 대한 표준 편차는 지속적으로 사용되는 데이터일수록 작은 값을 가지고, 단발적으로 사용된 데이터일수록 큰 값을 가질 수 있다. 표준 편차 값이 상대적으로 작을수록 재사용 가능성은 상대적으로 높은 데이터일 수 있고, 표준 편차 값이 클수록 재사용 가능성이 상대적으로 작은 데이터일 수 있다.
이하, 본 발명의 실시예에서는 복수의 데이터 노드 간의 핫 데이터의 분배 방법이 개시된다.
분산 환경에서는 여러 데이터 노드로 데이터가 분배될 수 있다. 이러한 분산 환경에서 특정 데이터 노드에 대한 데이터의 요청이 집중되는 경우, 데이터 노드의 부하가 증가되고 시스템의 성능이 감소될 수 있다. 따라서, 분산 환경에서는 특정 데이터 노드에 집중될 수 있는 부하를 고르게 분배하는 것이 중요하다.
본 발명의 실시예에 따른 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법에서는 노드에 많은 부하를 발생시키는 핫 데이터를 동적으로 재배치하여 부하(또는 데이터)를 복수의 데이터 노드 각각에 고르게 분산시키는 방법이 제안된다.
복수의 데이터 노드 간의 부하의 분산을 위해 복수의 데이터 노드 각각의 메모리에 저장된 데이터 중 핫 데이터를 결정할 수 있다. 핫 데이터는 다양한 방법으로 결정될 수 있다. 예를 들어, 전술한 수학식 2 및 수학식 4를 기반으로 핫 데이터가 결정될 수 있다. 아래의 수학식 5는 핫 데이터의 추출을 위한 수학식이다.
<수학식 5>
Figure 112015092103702-pat00022
수학식 5를 참조하면, 수학식 2에서 결정된 데이터의 Eviction이 임계치 이상일 경우, 해당 데이터는 핫 데이터로 결정될 수 있다.
핫 데이터의 재분배를 위해 핫 데이터를 적재할 데이터 노드와 데이터 노드에 적재할 핫 데이터의 수가 판별되어야 한다. 아래의 수학식 6은 각각의 노드에 할당할 핫 데이터의 수를 나타낸다.
<수학식 6>
Figure 112015092103702-pat00023
수학식 6을 참조하면,
Figure 112015092103702-pat00024
는 각각의 노드가 할당 받을 핫 데이터의 수, The number of Total Hot Data는 전체 시스템에서 가지는 핫 데이터의 수, Ratei은 각각의 데이터 노드가 핫 데이터를 보유할 수 있는 비율을 나타낸다.
데이터 노드가 핫 데이터를 보유할 수 있는 비율인 Ratei를 산출하기 위해서 아래의 수학식 7과 같이 데이터 노드의 평균 태스크 수행 시간이 산출될 수 있다.
<수학식 7>
Figure 112015092103702-pat00025
수학식 7을 참조하면, 데이터 노드의 평균 태스크 수행 시간은 태스크의 전체 수행 시간과 노드의 태스크 수를 기반으로 결정될 수 있다. 이때, Average Task Time는 노드의 평균 태스크 수행 시간,
Figure 112015092103702-pat00026
Single Task Time(Ti)은 데이터 노드의 전체 태스크 수행 시간의 합, The number of Task(N)은 노드가 가지는 전체 태스크 수의 합일 수 있다.
아래의 수학식 8은 데이터 노드의 평균 테스크 수행 시간을 기반으로 산출되는 데이터 노드가 핫 데이터를 보유할 수 있는 비율(이하, 핫 데이터 보유 가능 비율)을 산출하기 위한 수학식이다.
<수학식 8>
Figure 112015092103702-pat00027
수학식 8을 참조하면, 수학식 7에서 산출된 평균 태스크 수행 시간을 기반으로 각 데이터 노드의 Ratei가 결정될 수 있다. 이때, Ratei는 핫 데이터 보유 가능 비율로서 데이터 노드 각각의 핫 데이터를 보유할 수 있는 비율을 나타내는 지표일 수 있다. N은 데이터 노드가 가지는 전체 태스크의 수, Average Task Timei은 데이터 노드의 평균 태스크 수행 시간을 의미한다.
도 4는 본 발명의 실시예에 따른 핫 데이터의 재배치 방법을 나타낸 순서도이다.
도 4에서는 핫 데이터 재배치의 오버헤드를 최소화하면서 데이터 노드 각각에 핫 데이터를 재배치하기 위한 방법이 개시된다.
도 4를 참조하면, 데이터 노드에 현재 적재된 핫 데이터의 수와 데이터 노드에 적합한 핫 데이터의 수의 차이를 산출한다(단계 S400).
데이터 노드에 현재 적재된 핫 데이터의 수와 데이터 노드에 적합한 핫 데이터의 수의 차이가 0보다 작거나 0보다 많은 경우, 데이터 노드에서의 핫 데이터의 이동이 발생될 수 있다. 반면에 데이터 노드에 현재 적재된 핫 데이터의 수와 데이터 노드에 적합한 핫 데이터의 수의 차이가 0인 경우, 데이터 노드에서의 핫 데이터의 이동이 발생하지 않을 수 있다.
데이터 노드에 현재 적재된 핫 데이터의 수와 데이터 노드에 적합한 핫 데이터의 수의 차이가 0인지 여부를 판단한다(단계 S410).
데이터 노드에 현재 적재된 핫 데이터의 수와 데이터 노드에 적합한 핫 데이터의 수의 차이가 0인 경우, 해당 데이터 노드에 대한 핫 데이터의 재배치가 종료될 수 있다.
데이터 노드에 현재 적재된 핫 데이터의 수와 데이터 노드에 적합한 핫 데이터의 수의 차이가 0이 아닌 경우, 데이터 노드에 대한 핫 데이터의 재배치를 위한 다른 데이터 노드에 대한 탐색이 수행된다(단계 S420).
데이터 노드에 현재 적재된 핫 데이터의 수와 데이터 노드에 적합한 핫 데이터의 수의 차이가 0보다 큰 경우, 데이터 노드에 현재 적재된 핫 데이터의 수와 데이터 노드에 적합한 핫 데이터의 수의 차이가 0이 되도록 데이터 노드에 현재 적재된 핫 데이터 중 일부의 핫 데이터를 이동시킬 다른 데이터 노드를 탐색할 수 있다.
데이터 노드에 현재 적재된 핫 데이터의 수와 데이터 노드에 적합한 핫 데이터의 수의 차이가 0보다 작은 경우, 데이터 노드에 현재 적재된 핫 데이터의 수와 데이터 노드에 적합한 핫 데이터의 수의 차이가 0이 되도록 다른 데이터 노드로부터 핫 데이터를 수신하여 메모리에 저장하기 위해 초과되는 핫 데이터를 가지는 다른 데이터 노드를 탐색할 수 있다.
탐색된 데이터 노드와 핫 데이터의 재분배 절차가 수행된다(단계 S430).
단계 S420을 기반으로 결정된 데이터 노드와 핫 데이터의 재분배 절차가 수행될 수 있다. 예를 들어, 데이터 노드에 현재 적재된 핫 데이터의 수와 데이터 노드에 적합한 핫 데이터의 수의 차이가 0보다 큰 경우, 탐색된 다른 데이터 노드로 일부의 핫 데이터를 이동시킬 수 있다.
데이터 노드에 현재 적재된 핫 데이터의 수와 데이터 노드에 적합한 핫 데이터의 수의 차이가 0보다 작은 경우, 탐색된 다른 데이터 노드로부터 일부의 핫 데이터를 수신할 수 있다.
도 5는 본 발명의 실시예에 따른 데이터 노드의 핫 데이터 재분배 방법을 나타낸 개념도이다.
도 5에서는 부하 분산 처리기에 의한 복수의 데이터 노드 간의 핫 데이터 재분배 방법이 개시된다.
도 5를 참조하면, 부하 분산 처리기(500)는 복수의 데이터 노드(550) 간의 핫 데이터 재분배를 수행할 수 있다.
부하 분산 처리기(500)는 부하 분산 처리기(500)에 연결된 복수의 데이터 노드(550) 각각으로부터 핫 데이터 상태 정보를 수신할 수 있다. 핫 데이터 상태 정보는 데이터 노드(550)에 현재 적재된 핫 데이터의 수와 데이터 노드(550)에 적합한 핫 데이터의 수의 차이(이하, 핫 데이터 편차)에 대한 정보를 포함할 수 있다.
부하 분산 처리기(500)는 복수의 데이터 노드(550) 각각으로부터 핫 데이터 상태 정보를 수신하고, 핫 데이터 상태 정보에 따라 복수의 데이터 노드(550) 간 핫 데이터 분산을 수행할 수 있다. 핫 데이터의 분산을 위해 부하 분산 처리기(500)는 우선적으로 핫 데이터를 다른 데이터 노드로 전송할 전송 타겟 데이터 노드 및 핫 데이터를 다른 데이터 노드로부터 수신할 수신 타겟 데이터 노드를 결정할 수 있다.
전송 타겟 데이터 노드는 복수의 가장 큰 양수 값의 핫 데이터 편차를 가지는 데이터 노드(즉, 데이터 노드에 적합한 핫 데이터의 개수를 기준으로 초과되는 핫 데이터의 개수가 가장 많은 데이터 노드)일 수 있다.
수신 타겟 데이터 노드는 복수의 가장 큰 음수 값의 핫 데이터 편차를 가지는 데이터 노드(즉, 데이터 노드에 적합한 핫 데이터의 개수를 기준으로 현재 핫 데이터의 개수가 가장 많이 미달되는 데이터 노드)일 수 있다.
부하 분산 처리기(500)는 우선적으로 전송 타겟 데이터 노드와 수신 타겟 데이터 노드 간의 핫 데이터 교환을 통해 핫 데이터의 재분배 절차를 수행할 수 있다.
부하 분산 처리기(500)는 전송 타겟 데이터 노드로 결정된 데이터 노드로 핫 데이터 전송 요청 메시지를 전송할 수 있다. 핫 데이터 전송 요청 메시지는 핫 데이터의 수신 타겟 데이터 노드의 식별자 정보, 수신 타겟 데이터 노드로 전송될 핫 데이터의 개수에 대한 정보를 포함할 수 있다.
수신 타겟 데이터 노드로 전송될 핫 데이터의 개수는 수신 타겟 데이터 노드의 핫 데이터 편차를 기반으로 결정될 수 있다. 핫 데이터 전송 요청 메시지를 수신한 전송 타겟 데이터 노드는 수신 타겟 데이터 노드로 핫 데이터 전송 요청 메시지를 기반으로 지시된 개수의 핫 데이터를 전송할 수 있다.
*이러한 절차는 반복적으로 수행되어 부하 분산 처리기(500)는 다시 수신 타겟 데이터 노드와 전송 타겟 데이터 노드를 결정하여 핫 데이터의 재분배를 수행할 수 있다. 이러한 반복적인 절차를 통해 복수의 데이터 노드(550) 각각에 저장된 핫 데이터가 분산될 수 있다.
또한, 본 발명의 실시예에 따르면 데이터 노드의 메모리의 크기를 추가적으로 고려하여 전송 타겟 데이터 노드 및 수신 타겟 데이터 노드가 결정될 수 있다. 메모리의 크기가 상대적으로 작을수록 우선적으로 전송 타겟 데이터 노드 및 수신 타겟 데이터 노드로 결정될 수 있다.
만약, 핫 데이터 편차의 크기가 동일하여 복수개의 전송 타겟 데이터 노드 및/또는 복수개의 수신 타겟 데이터 노드가 결정되는 경우, 메모리의 크기를 고려하여 상대적으로 가장 작은 메모리를 가지는 데이터 노드가 최종적으로 전송 타겟 데이터 노드 또는 수신 타겟 데이터 노드로 결정될 수 있다.
또는 핫 데이터 편차의 크기 및 메모리의 크기 각각에 일정 가중치를 부여한 함수를 기반으로 핫 데이터 재분배 절차를 수행할 전송 타겟 데이터 노드 및 수신 타겟 데이터 노드가 결정될 수 있다.
이와 같은 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (10)

  1. 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법은,
    부하 분산 처리기가 연결된 복수의 데이터 노드 각각의 메모리 크기를 기반으로 해시 공간을 조정하는 단계;
    상기 부하 분산 처리기가 상기 복수의 데이터 노드 각각의 데이터의 재사용 가능성, 데이터의 사용 빈도수, 데이터의 접근 시간을 고려하여 상기 복수의 데이터 노드 각각에 대한 캐시 교체를 수행하는 단계를 포함하며,
    상기 해시 공간의 조정은 아래의 수학식을 기반으로 수행되고,
    <수학식 >
    Figure 112016087149134-pat00028

    여기서, Local Node(Ni)은 데이터 노드 Ni의 조정된 상기 해시 공간의 크기이고, Hash(Ni)는 상기 데이터 노드 Ni의 기존 해시 공간의 크기, Hash(Ni+1)는 데이터 노드 Ni+1의 기존 해시 공간의 크기를 나타내는 것을 특징으로 하는 분산 캐시 관리 방법.
  2. 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법은,
    부하 분산 처리기가 연결된 복수의 데이터 노드 각각의 메모리 크기를 기반으로 해시 공간을 조정하는 단계;
    상기 부하 분산 처리기가 상기 복수의 데이터 노드 각각의 데이터의 재사용 가능성, 데이터의 사용 빈도수, 데이터의 접근 시간을 고려하여 상기 복수의 데이터 노드 각각에 대한 캐시 교체를 수행하는 단계를 포함하며,
    상기 캐시 교체는 아래의 수학식을 기반으로 산출된 상기 데이터에 대한 Eviction의 값을 기반으로 수행되고,
    <수학식>
    Figure 112016087149134-pat00029

    여기서, Reusabilityk는 상기 데이터의 재사용 가능성, Total Frequencyk는 상기 데이터의 사용 빈도수, Recent Timek는 상기 데이터의 접근 시간을 나타내고,
    Figure 112016087149134-pat00030
    는 가중치이고,
    상기 데이터의 재사용 가능성은 아래의 수학식을 기반으로 산출되고,
    <수학식 3>
    Figure 112016087149134-pat00031

    여기서, Frequencyavg는 표준 편차를 구하기 위한 상기 데이터의 평균 사용 빈도수,
    Figure 112016087149134-pat00032
    Frequencyk는 전체 사용 빈도수의 합, t는 전체 시간인 것을 특징으로 하는 분산 캐시 관리 방법.
  3. 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 장치에 있어서,
    상기 분산 캐시 관리 장치는 프로세서를 포함하고,
    상기 프로세서는 연결된 복수의 데이터 노드 각각의 메모리 크기를 기반으로 해시 공간을 조정하고,
    상기 복수의 데이터 노드 각각의 데이터의 재사용 가능성, 데이터의 사용 빈도수, 데이터의 접근 시간을 고려하여 상기 복수의 데이터 노드 각각에 대한 캐시 교체를 수행하도록 구현되며,
    상기 해시 공간의 조정은 아래의 수학식을 기반으로 수행되고,
    <수학식 >
    <수학식 >
    Figure 112016087149134-pat00035

    여기서, Local Node(Ni)은 데이터 노드 Ni의 조정된 상기 해시 공간의 크기이고, Hash(Ni)는 상기 데이터 노드 Ni의 기존 해시 공간의 크기, Hash(Ni+1)는 데이터 노드 Ni+1의 기존 해시 공간의 크기를 나타내는 것을 특징으로 하는 분산 캐시 관리 장치.
  4. 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 장치에 있어서,
    상기 분산 캐시 관리 장치는 프로세서를 포함하고,
    상기 프로세서는 연결된 복수의 데이터 노드 각각의 메모리 크기를 기반으로 해시 공간을 조정하고,
    상기 복수의 데이터 노드 각각의 데이터의 재사용 가능성, 데이터의 사용 빈도수, 데이터의 접근 시간을 고려하여 상기 복수의 데이터 노드 각각에 대한 캐시 교체를 수행하도록 구현되며,
    상기 캐시 교체는 아래의 수학식을 기반으로 산출된 상기 데이터에 대한 Eviction의 값을 기반으로 수행되고,
    <수학식>
    Figure 112016087149134-pat00036

    여기서, Reusabilityk는 상기 데이터의 재사용 가능성, Total Frequencyk는 상기 데이터의 사용 빈도수, Recent Timek는 상기 데이터의 접근 시간을 나타내고,
    Figure 112016087149134-pat00037
    는 가중치이고,
    상기 데이터의 재사용 가능성은 아래의 수학식을 기반으로 산출되고,
    <수학식 3>
    Figure 112016087149134-pat00038

    여기서, Frequencyavg는 표준 편차를 구하기 위한 상기 데이터의 평균 사용 빈도수,
    Figure 112016087149134-pat00039
    Frequencyk는 전체 사용 빈도수의 합, t는 전체 시간인 것을 특징으로 하는 분산 캐시 관리 장치.
  5. 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 장치에 있어서,
    상기 분산 캐시 관리 장치는 프로세서를 포함하고,
    상기 프로세서는 연결된 복수의 데이터 노드 각각의 메모리 크기를 기반으로 해시 공간을 조정하고,
    상기 복수의 데이터 노드 각각의 데이터의 재사용 가능성, 데이터의 사용 빈도수, 데이터의 접근 시간을 고려하여 상기 복수의 데이터 노드 각각에 대한 캐시 교체를 수행하도록 구현되며,
    상기 프로세서는 상기 복수의 데이터 노드 각각의 메모리에 현재 저장된 핫 데이터의 개수를 결정하고,
    상기 복수의 데이터 노드 각각의 핫 데이터 보유 가능 비율을 결정하고,
    상기 핫 데이터 보유 가능 비율을 기반으로 상기 복수의 데이터 노드 각각에 적합한 핫 데이터의 개수를 결정하고,
    상기 복수의 데이터 노드 각각의 메모리에 현재 저장된 핫 데이터의 개수와 상기 복수의 데이터 노드 각각에 적합한 핫 데이터의 개수를 기반으로 핫 데이터의 재배치를 수행하도록 구현되는 것을 특징으로 하는 분산 캐시 관리 장치.
  6. 제 5항에 있어서,
    상기 핫 데이터 보유 가능 비율(Rate)는 아래의 수학식을 기반으로 결정되고,
    <수학식>
    Figure 112016087149134-pat00040

    여기서, N은 데이터 노드가 가지는 전체 태스크의 수, Average Task Time은 노드의 평균 태스크 수행 시간,
    Figure 112016087149134-pat00041
    Single Task Time(Ti)는 데이터 노드의 전체 태스크 수행 시간의 합, The number of Task(N)은 노드가 가지는 전체 태스크 수의 합인 것을 특징으로 하는 분산 캐시 관리 장치.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
KR1020150133534A 2015-09-22 2015-09-22 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법 및 장치 KR101690944B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150133534A KR101690944B1 (ko) 2015-09-22 2015-09-22 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150133534A KR101690944B1 (ko) 2015-09-22 2015-09-22 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101690944B1 true KR101690944B1 (ko) 2016-12-30

Family

ID=57737298

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150133534A KR101690944B1 (ko) 2015-09-22 2015-09-22 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101690944B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190124512A (ko) * 2018-04-26 2019-11-05 충북대학교 산학협력단 그래프 스트림에 대한 실시간 분산 저장을 위한 분할 방법 및 분할 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060037505A (ko) * 2004-10-28 2006-05-03 장성태 다중 캐쉬 구조의 다중 프로세서 시스템 및 그 원격캐쉬의 교체 방법
KR20060116551A (ko) 2005-05-10 2006-11-15 삼성전자주식회사 인쇄 장치 및 방법
KR20070025535A (ko) * 2005-09-02 2007-03-08 삼성전자주식회사 부하 분산 시스템의 과부하 제어 방법 및 그 장치
JP2012242975A (ja) * 2011-05-17 2012-12-10 Nippon Telegr & Teleph Corp <Ntt> 分散並列処理キャッシュ装置及び方法及び資源管理ノード及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060037505A (ko) * 2004-10-28 2006-05-03 장성태 다중 캐쉬 구조의 다중 프로세서 시스템 및 그 원격캐쉬의 교체 방법
KR20060116551A (ko) 2005-05-10 2006-11-15 삼성전자주식회사 인쇄 장치 및 방법
KR20070025535A (ko) * 2005-09-02 2007-03-08 삼성전자주식회사 부하 분산 시스템의 과부하 제어 방법 및 그 장치
JP2012242975A (ja) * 2011-05-17 2012-12-10 Nippon Telegr & Teleph Corp <Ntt> 分散並列処理キャッシュ装置及び方法及び資源管理ノード及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Jinho Hwang, Timothy Wood, "Adaptive Performance-Aware Distributed Memory Caching", International Conference on Autonomic Computing, pp. 2013 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190124512A (ko) * 2018-04-26 2019-11-05 충북대학교 산학협력단 그래프 스트림에 대한 실시간 분산 저장을 위한 분할 방법 및 분할 장치
KR102054068B1 (ko) * 2018-04-26 2019-12-09 충북대학교 산학협력단 그래프 스트림에 대한 실시간 분산 저장을 위한 분할 방법 및 분할 장치

Similar Documents

Publication Publication Date Title
US10911530B2 (en) Content delivery method, virtual server management method, cloud platform, and system
US10049051B1 (en) Reserved cache space in content delivery networks
US10257307B1 (en) Reserved cache space in content delivery networks
US10579272B2 (en) Workload aware storage platform
US10534776B2 (en) Proximity grids for an in-memory data grid
US10394782B2 (en) Chord distributed hash table-based map-reduce system and method
US10482062B1 (en) Independent evictions from datastore accelerator fleet nodes
US20110276679A1 (en) Dynamic binding for use in content distribution
CN112486860B (zh) 管理存储系统的地址映射的方法、设备和计算机程序产品
KR20110050432A (ko) 컨텐츠 전달 네트워크 내의 노드에서 하나 이상의 컨텐츠 아이템을 캐싱하는 방법, 장치 및 제품
US20140324905A1 (en) Computer system, data management method, and program
CN104679594B (zh) 一种中间件分布式计算方法
CN102868542B (zh) 一种服务分发网络中服务质量的控制方法及系统
US20170031908A1 (en) Efficient parallel insertion into an open hash table
JP2015525913A (ja) N個のアイテムのリストをキャッシュシステムのc個のアイテムのメモリキャッシュに格納することを管理するための方法
WO2018049563A1 (en) Systems and methods for caching
US20180004430A1 (en) Chunk Monitoring
CN117539915B (zh) 一种数据处理方法及相关装置
JP2009122981A (ja) キャッシュ配置方法
CN109844723B (zh) 使用基于服务的统计信息进行主控建立的方法和系统
KR101690944B1 (ko) 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법 및 장치
US20210097049A1 (en) Method, device and computer program product for managing index tables
US10992743B1 (en) Dynamic cache fleet management
CN105516223B (zh) 虚拟存储系统及其实现方法、服务器和虚拟机监控器
Chen et al. Revisiting consistent hashing with bounded loads

Legal Events

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

Payment date: 20191220

Year of fee payment: 4