KR101913969B1 - 디스크 기반 비디오 저장 서버에서 ssd 수명을 보장하는 ssd 캐시 관리 방법 및 장치 - Google Patents

디스크 기반 비디오 저장 서버에서 ssd 수명을 보장하는 ssd 캐시 관리 방법 및 장치 Download PDF

Info

Publication number
KR101913969B1
KR101913969B1 KR1020170159937A KR20170159937A KR101913969B1 KR 101913969 B1 KR101913969 B1 KR 101913969B1 KR 1020170159937 A KR1020170159937 A KR 1020170159937A KR 20170159937 A KR20170159937 A KR 20170159937A KR 101913969 B1 KR101913969 B1 KR 101913969B1
Authority
KR
South Korea
Prior art keywords
caching
ssd
segments
utility
utility value
Prior art date
Application number
KR1020170159937A
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 KR1020170159937A priority Critical patent/KR101913969B1/ko
Application granted granted Critical
Publication of KR101913969B1 publication Critical patent/KR101913969B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/2312Data placement on disk arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

디스크 기반 비디오 저장 서버에서 SSD 수명을 보장하는 SSD 캐시 관리 방법 및 장치가 제시된다. 본 발명에서 제안하는 디스크 기반 비디오 저장 서버에서 SSD 수명을 보장하는 SSD 캐시 관리 방법은 동일한 크기의 각 비디오 세그먼트들을 통해 캐싱 유틸리티를 계산하는 단계, 상기 계산된 캐싱 유틸리티 값에 따라 높은 순서대로 정렬하고, 정렬된 캐싱 유틸리티 값의 순서대로 SSD 용량에 맞춰 해당 비디오 세그먼트를 SSD 에 저장하는 단계 및 캐싱 유틸리티 값의 합을 최대화하기 위해 상기 저장된 비디오 세그먼트의 집합에서 가장 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트를 새로운 비디오 세그먼트의 집합의 가장 높은 캐싱 유틸리티 값의 해당 비디오 세그먼트로 교체하는 단계를 포함한다.

Description

디스크 기반 비디오 저장 서버에서 SSD 수명을 보장하는 SSD 캐시 관리 방법 및 장치{Method and Apparatus for Cache management to guarantee SSD lifetime in a disk-based video storage server}
본 발명은 디스크 기반 비디오 저장 서버에서 SSD 수명을 보장하는 SSD 캐시 관리 방법 및 장치에 관한 것이다.
최근 멀티미디어 및 네트워크 기술의 발전은 인터넷을 통해 콘텐츠의 전송 및 서비스를 대중화시켰다. 그러나 높은 스토리지와 대역폭을 필요로 하기 때문에, 비디오의 상당량을 유저에게 전달하는 것은 큰 서버 구조를 필요로 한다. 일 예로, YouTube 서버는 매일 4000만개의 영상들을 제공하고 있다. 그 총 량은 200TB에 달한다.
비디오 서비스를 위한 서버는 일반적으로 디스크 배열 기반으로 이루어져 있다. 비록 하드 디스크의 스토리지 용량은 꾸준히 증가하였지만, 회전시간과 탐색시간에 의한 대역폭은 여전히 한계가 있다. 디스크 대역폭은 비디오 서비스 성능의 가장 중요한 결정인자 중 하나인 동시간 요청의 수를 제한한다.
플래시 메모리 기반의 SSD는 적은 전력 소모와 낮은 접근 지연시간, 그리고 충격에 강한 특성 등의 많은 기술적인 장점을 가지고 있어 그것을 서버의 저장매체로 사용하려는 여러 연구들이 진행 되었다. 특히, SSD는 작은 읽기 지연시간과 큰 임의 읽기 처리량을 가지고 있어 동시에 많은 양의 스트림을 읽어야 하는 비디오 서버에 좋은 성능을 나타내었다. 그러나 SSD의 높은 가격 때문에, 대개 큰 용량이 요구되는 비디오 서버에서 단독으로 사용되는 것은 거의 불가능하다. 그렇기 때문에 SSD를 비디오 서버의 캐시로 사용하는 것이 합리적이다.
NAND 플래시의 프로그램/삭제 (P/E) 사이클 수가 플래시 메모리의 수명을 결정한다. 특정 수의 P/E 사이클을 넘어가면, NAND 플래시는 더 이상 데이터를 기록할 수 없게 된다. 그러므로 빈번한 캐시 교체가 일어나는 비디오 서버에서 SSD를 캐시로 사용하였을 때, 그것의 내구성이 중요한 문제가 된다. 파일 레벨의 LFU(Least-Frequently-Used) 캐싱이 제안되었지만 그것은 비디오 세그먼트들의 인기도와 SSD의 수명에 대해서는 고려되지 않았다.
본 발명이 이루고자 하는 기술적 과제는 디스크 기반 비디오 서버의 캐시로 SSD를 사용하였을 때, SSD의 수명을 보장하는 기법을 제안한다. 디스크의 대역폭 이용률을 최소화하기 위해 정해진 세그먼트 그룹 중 SSD의 수명을 보장할 수 있는 캐싱 이득의 교체 임계값을 결정하는 기법을 제안한다. 이 기법을 바탕으로 정해진 SSD의 수명을 보장하면서 디스크 대역폭 사용을 효율적으로 관리할 수 있도록 한다.
일 측면에 있어서, 본 발명에서 제안하는 디스크 기반 비디오 저장 서버에서 SSD 수명을 보장하는 SSD 캐시 관리 방법은 동일한 크기의 각 비디오 세그먼트들을 통해 캐싱 유틸리티를 계산하는 단계, 상기 계산된 캐싱 유틸리티 값에 따라 높은 순서대로 정렬하고, 정렬된 캐싱 유틸리티 값의 순서대로 SSD 용량에 맞춰 해당 비디오 세그먼트를 SSD 에 저장하는 단계 및 캐싱 유틸리티 값의 합을 최대화하기 위해 상기 저장된 비디오 세그먼트의 집합에서 가장 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트를 새로운 비디오 세그먼트의 집합의 가장 높은 캐싱 유틸리티 값의 해당 비디오 세그먼트로 교체하는 단계를 포함한다.
상기 계산된 캐싱 유틸리티 값에 따라 높은 순서대로 정렬하고, 정렬된 캐싱 유틸리티 값의 순서대로 SSD 용량에 맞춰 해당 비디오 세그먼트를 SSD 에 저장하는 단계는 매 주기 시간마다, 유틸리티 기반 캐싱 알고리즘(Utility-based Caching Algorithm: UCA)을 이용하여 캐싱 유틸리티 값을 계산하고, 해당 비디오 세그먼트를 SSD에 저장함으로써 유틸리티 값을 최대화한다.
상기 캐싱 유틸리티 값의 합을 최대화하기 위해 상기 저장된 비디오 세그먼트의 집합에서 가장 높은 캐싱 유틸리티 값의 해당 비디오 세그먼트부터 가장 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트를 하나씩 교체하는 단계는 상기 비디오 세그먼트의 허용 교체 횟수를 계산하는 단계 및 이분탐색 기법을 이용하여 캐싱 이득 차의 임계값을 계산하는 단계를 포함한다. 이때, 서로 다른 두 세그먼트의 캐싱 유틸리티의 차가 상기 계산된 캐싱 이득 차의 임계값보다 작은 경우, 서로 다른 두 세그먼트 중 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트의 교체를 허용하고, 그렇지 않을 경우, 서로 다른 두 세그먼트 중 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트의 교체를 허용하지 않는다.
또 다른 일 측면에 있어서, 본 발명에서 제안하는 디스크 기반 비디오 저장 서버에서 SSD 수명을 보장하는 SSD 캐시 관리 장치는 동일한 크기의 각 비디오 세그먼트들을 통해 캐싱 유틸리티를 계산하는 캐싱 유틸리티 계산부, 상기 계산된 캐싱 유틸리티 값에 따라 높은 순서대로 정렬하고, 정렬된 캐싱 유틸리티 값의 순서대로 SSD 용량에 맞춰 해당 비디오 세그먼트를 SSD 에 저장하는 SSD 및 캐싱 유틸리티 값의 합을 최대화하기 위해 상기 저장된 비디오 세그먼트의 집합에서 가장 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트를 새로운 비디오 세그먼트의 집합의 가장 높은 캐싱 유틸리티 값의 해당 비디오 세그먼트로 교체하는 세그먼트 교체부를 포함한다.
상기 SSD는 매 주기 시간마다, 유틸리티 기반 캐싱 알고리즘(Utility-based Caching Algorithm: UCA)을 이용하여 캐싱 유틸리티 값을 계산하고, 해당 비디오 세그먼트를 SSD에 저장함으로써 유틸리티 값을 최대화한다.
상기 세그먼트 교체부는 상기 비디오 세그먼트의 허용 교체 횟수를 계산하고, 이분탐색 기법을 이용하여 캐싱 이득 차의 임계값을 계산한다. 이때, 상기 세그먼트 교체부는 서로 다른 두 세그먼트의 캐싱 유틸리티의 차가 상기 계산된 캐싱 이득 차의 임계값보다 작은 경우, 서로 다른 두 세그먼트 중 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트의 교체를 허용하고, 그렇지 않을 경우, 서로 다른 두 세그먼트 중 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트의 교체를 허용하지 않는다.
본 발명의 실시예들에 따르면 다중 디스크 배열 기반의 비디오 서버에서 SSD를 캐시로 사용하였을 때, SSD의 수명을 보장하기 위해 세그먼트 교체 횟수를 제한하며 제한된 교체 횟수 내에서 캐싱 유틸리티의 디스크 대역폭 감소량을 최대화할 수 있다.
도 1은 본 발명의 일 실시예에 따른 디스크 기반 비디오 저장 서버에서 SSD 수명을 보장하는 SSD 캐시 관리 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 알고리즘의 수도코드이다.
도 3은 본 발명의 일 실시예에 따른 디스크 기반 비디오 저장 서버에서 SSD 수명을 보장하는 SSD 캐시 관리 장치의 구성을 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 디스크 대역폭 사용의 감소량 및 수명의 비교 그래프이다.
본 발명은 디스크 기반 비디오 스토리지 서버에서 캐시로 SSD를 사용하였을 때, SSD의 수명을 보장하기 위한 방법에 관한 것이다. 본 발명은 사용자에 의해서 정해진 SSD의 수명을 보장하면서 SSD 캐시로 인한 디스크 대역폭 감소량을 최대화하기 위해서 교체되어야 하는 비디오의 세그먼트를 결정하는 방법을 제안한다. 본 발명에 따르면, 제안된 알고리즘을 통하여 SSD의 활용도를 최대화하면서 SSD의 지정된 수명을 보장하여, 디스크의 대역폭 이용률을 효율적으로 사용함으로써 비디오 서버의 디스크 에너지 절감을 최대화할 수 있다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 디스크 기반 비디오 저장 서버에서 SSD 수명을 보장하는 SSD 캐시 관리 방법을 설명하기 위한 흐름도이다.
본 발명에서는 선호도가 높은 세그먼트들은 SSD에 캐싱하게 함으로써, 캐시 적중률을 높이면서, SSD의 수명을 보장하기 위해 디스크에서 SSD로 새로 캐싱되는 세그먼트의 수를 제한하여 과도한 비디오 세그먼트 교체로 인해 SSD가 빨리 마모되지 않도록 하는 것을 목표로 한다.
제안하는 디스크 기반 비디오 저장 서버에서 SSD 수명을 보장하는 SSD 캐시 관리 방법은 동일한 크기의 각 비디오 세그먼트들을 통해 캐싱 유틸리티를 계산하는 단계(110), 상기 계산된 캐싱 유틸리티 값에 따라 높은 순서대로 정렬하고, 정렬된 캐싱 유틸리티 값의 순서대로 SSD 용량에 맞춰 해당 비디오 세그먼트를 SSD 에 저장하는 단계(120) 및 캐싱 유틸리티 값의 합을 최대화하기 위해 상기 저장된 비디오 세그먼트의 집합에서 가장 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트를 새로운 비디오 세그먼트의 집합의 가장 높은 캐싱 유틸리티 값의 해당 비디오 세그먼트로 교체하는 단계(130)를 포함한다.
단계(110)에서, 동일한 크기의 각 비디오 세그먼트들을 통해 캐싱 유틸리티를 계산한다. 이때, 매 주기 시간마다, 유틸리티 기반 캐싱 알고리즘(Utility-based Caching Algorithm: UCA)을 이용하여 캐싱 유틸리티 값을 계산하고, 해당 비디오 세그먼트를 SSD에 저장함으로써 유틸리티 값을 최대화한다.
SSD 캐시되는 비디오 세그먼트를 결정하는 알고리즘 수행 사이의 간격을 T period 시간이라고 하고, 사용자가 쓰고 싶어 하는 SSD의 수명을 N life T period 시간이라고 하자. 본 발명에서 N life T period 시간 동안 SSD의 수명이 보장되면서, 캐싱 이익을 극대화하도록 SSD 캐싱 교체 알고리즘을 새로이 제안한다.
SSD의 실제 쓰기 작업 횟수를 계산하려면 SSD 내부 활동으로 인해 발생하는 수명 감소 요인을 고려해야 하므로 실제 쓰기 작업 수가 SSD 제조업체에서 제공된 값보다 낮을 수 있다. N life 는 이러한 효과를 반영하여 N life T period 시간 동안 각 비디오 세그먼트당 할당된 교체 횟수의 한계라고 하자.
동일한 크기의 각 비디오 세그먼트들은 캐싱 유틸리티(다시 말해, 캐싱 시의 이득을 표현한 값)을 계산한다. 여기서 캐싱 유틸리티란 캐싱을 통해 얻는 디스크 대역폭의 이익으로 다음과 같이 계산될 수 있다. 자세한 변수의 의미는 아래의 <표 1>에 요약되어 있다.
<표 1>
Figure 112017118234191-pat00001
λ i,j 를 비디오 ij 번째 세그먼트의 단위시간 당 요청수이다.
b i 를 비디오 ij 비트율이라 한다. 비디오 i의 한 세그먼트 당 시간을 L i 초라고 하였을 때, 리틀의 법칙 (Little's law)에 의하여, 비디오 ij 번째 세그먼트의 초 동안의 동시간 요청의 수는 로 표현될 수 있다.
비디오 ij 번째 세그먼트를 캐싱할 때의 디스크 대역폭 감소량은 비디오의 인기도에 의해 결정되므로, 비디오 ij 번째 세그먼트의 캐싱 유틸리티, U i,j λ i,j L i b i 로 계산된다.
단계(120)에서, 상기 계산된 캐싱 유틸리티 값에 따라 높은 순서대로 정렬하고, 정렬된 캐싱 유틸리티 값의 순서대로 SSD 용량에 맞춰 해당 비디오 세그먼트를 SSD 에 저장한다.
캐싱 유틸리티 값이 높을수록 캐싱 시의 이득이 높아서, 캐싱 이득의 순서로 정렬을 하고, SSD 용량에 맞추어서 캐싱 유틸리티 값이 높은 비디오 세그먼트를 SSD 에 저장한다. 이를 유틸리티 기반 캐싱 알고리즘(Utility-based Caching Algorithm: UCA) 이라고 한다.
T period 시간마다, UCA를 돌려서 산출되는 비디오 세그먼트를 SSD 캐시에 저장하면 캐싱 유틸리티 값을 최대화할 수 있다. 그러나, 이전 UCA 의 결과와 새로운 UCA의 결과가 많이 다를 경우, 많은 세그먼트를 캐시에서 교체해야 하므로, N life T period 시간 동안 N limit 교체횟수를 보장할 수 없으므로, 본 발명에서는 이를 보장하기 위한 새로운 아이디어를 제시한다.
S i seg i번째 주기에 실제 캐시 된 세그먼트의 집합이라 하자. S i uca i번째 주기에 유틸리티 기반 캐싱 알고리즘을 통해 계산된 세그먼트의 집합이라 하자. S i seg S i uca 와 다를 수 있다. S i old S i new 를 각 각 S i seg 와 비교하여 S i+1 spc 에 삭제되고 추가되는 세그먼트의 집합이라고 하자. 이는 수학식 1과 같다.
[수학식 1]
Figure 112017118234191-pat00002
Figure 112017118234191-pat00003
.
단계(130)에서, 캐싱 유틸리티 값의 합을 최대화하기 위해 상기 저장된 비디오 세그먼트의 집합에서 가장 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트를 새로운 비디오 세그먼트의 집합의 가장 높은 캐싱 유틸리티 값의 해당 비디오 세그먼트로 교체한다.
단계(130)는 상기 비디오 세그먼트의 허용 교체 횟수를 계산하는 단계; 및 이분탐색 기법을 이용하여 캐싱 이득 차의 임계값을 계산하는 단계를 포함한다.
서로 다른 두 세그먼트의 캐싱 유틸리티의 차가 상기 계산된 캐싱 이득 차의 임계값보다 작은 경우, 서로 다른 두 세그먼트 중 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트의 교체를 허용하고, 그렇지 않을 경우, 서로 다른 두 세그먼트 중 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트의 교체를 허용하지 않는다.
더욱 상세하게는, 캐싱 유틸리티의 합을 최대화하기 위해 S i new 에서 캐싱 유틸리티가 가장 높은 세그먼트부터 S i old 에서 캐싱 유틸리티가 가장 낮은 세그먼트를 하나씩 교체한다. 이때 D i j 를 캐싱 유틸리티가 S i new 에서 j번째 높은 세그먼트에서 S i old 에서 j번째 낮은 세그먼트의 캐싱 유틸리티의 차 라 하자. 만약 D i j ≤0이라면, 교체할 경우 캐싱 유틸리티의 합이 감소하는 경우이므로 교체가 허용되지 않는다. N i d D i j >0를 만족하는 세그먼트의 수라고 하자. N life T period 시간 동안 총 교체 횟수는 N limit 에 의해 제한되므로 D i j >0 일지라도 모든 교체가 허용되지 않을 수 있다. 교체 허용여부를 설정하기 위해 우리는 캐싱 유틸리티의 차의 임계값인 D threshold 를 정의한다. 만약 D i j D threshold 라면 교체를 허용하고 그렇지 않을 경우 교체를 허용하지 않는다.
미래의 비디오 인기도를 정확하게 예측하는 것은 불가능하지만 일반적으로 비디오 접근 패턴은 전형적인 행동을 따른다. 예를 들어, 각 비디오의 인기도는 hot, warm, cold 주기를 따르고, 표준 VOD 시스템에서는 컨텐츠 인기도 변동이 예측 가능하고 안정적인 것으로 알려져 있다. 그러므로, D threshold 의 값은 미래의 비디오 접근 패턴이 과거 N monitor 기간과 동일한 성향을 나타낼 것이라는 가정에 기초하여 결정된다. 이는 N life T period 시간 동안 교체 횟수가 N limit 에 의해 제한 될 수 있음을 통계적으로 보장한다.
N replace 를 시간 N life T period 간 동안 N limit 을 만족하기 위해 남은 기간 N remain T period 시간 동안에 대하여 허용되는 교체 횟수라 하자. 과거 N monitor T period 시간 동안 교체 횟수를 계산한 후,
Figure 112017118234191-pat00004
값을 곱하여 N monitor T period 기간 동안의 교체 횟수를 도출한다.
D threshold 의 값은 N monitor T period 시간 동안 N limit 제한을 만족할 수 있도록 결정된다. 본 발명에서 N limitrep (D threshold )함수를 정의한다. 이 함수는 N monitor T period 시간 동안 임계값이 D threshold 일 때, 교체 횟수를 반환한다. 이 값은 D threshold 값에 따라 단조 감소한다.
계산된 교체 횟수는 N replace 와 정확히 같지 않을 수 있다. 따라서 마진을 표현하기 위해 상수 가 사용된다. 이를 바탕으로 D threshold 값을 결정하는 캐싱 유틸리티 결정 문제 (caching utility determination problem) 를 다음과 같이 정의한다.
캐싱 유틸리티 결정 문제는 N replace - eN replace (D threshold )≤N replace 를 만족하는 D threshold 값을 결정한다. 캐싱 유틸리티 결정 문제를 해결하기 위해 본 연구에서는 이분탐색 기법을 사용한다. V lowd V high를 각각 D threshold 값이 될 수 있는 가장 낮은 경계와 가장 높은 경계가 되도록 설정한다. (t low V low )와 (t high ≤ V high )와 를 만족하는 캐싱 유틸리티의 범위에서 t low t high 의 중간값인 t crt 를 설정하여 N re (t crt )를 계산하여 본다. 만약 N rep (t crt )값이 N replace - e 보다 작다면, t crt
Figure 112017118234191-pat00005
로 변경하여 N rep (t crt ) 값이 증가되도록 한다. 반면에, N rep (t crt )값이 N replace 값보다 크다면, t crt
Figure 112017118234191-pat00006
로 변경하여 N rep (t crt )값이 감소되도록 한다. 이러한 절차를 반복하여 최적의 t crt 값을 찾아 D threshold 값으로 결정하도록 한다.
도 2는 본 발명의 일 실시예에 따른 알고리즘의 수도코드이다.
자세한 알고리즘은 검사와 조정 두 단계로 구성된 도 2를 참조하여 확인할 수 있다. 검사 단계에서는 임계값이 t crt 일 경우 N rep (t crt )을 계산한다. 조정 단계에서는 N rep (t crt ) 값이 N replace - e 값보다 작거나 N replace 값보다 큰지에 따라, t crt , t low , t low 값을 새로 설정한다. N replace - eN replace (D threshold )≤N replace 를 만족할 때까지, 두 단계를 반복한다. 본 발명의 알고리즘의 수행시간은 O(N monitor log(V high - V low ))를 따르게 된다.
도 3은 본 발명의 일 실시예에 따른 디스크 기반 비디오 저장 서버에서 SSD 수명을 보장하는 SSD 캐시 관리 장치의 구성을 나타내는 도면이다.
제안하는 디스크 기반 비디오 저장 서버에서 SSD 수명을 보장하는 SSD 캐시 관리 장치는 캐싱 유틸리티 계산부(310), SSD(320), 세그먼트 교체부(330)를 포함한다. 캐싱 유틸리티 계산부(310), SSD(320), 세그먼트 교체부(330)는 도 1의 단계들(110~130)을 수행하기 위해 구성될 수 있다.
캐싱 유틸리티 계산부(310)는 동일한 크기의 각 비디오 세그먼트들을 통해 캐싱 유틸리티를 계산한다.
SSD(320)는 상기 계산된 캐싱 유틸리티 값에 따라 높은 순서대로 정렬하고, 정렬된 캐싱 유틸리티 값의 순서대로 SSD 용량에 맞춰 해당 비디오 세그먼트를 SSD 에 저장한다. SSD(320)는 매 주기 시간마다, 유틸리티 기반 캐싱 알고리즘(Utility-based Caching Algorithm: UCA)을 이용하여 캐싱 유틸리티 값을 계산하고, 해당 비디오 세그먼트를 SSD에 저장함으로써 유틸리티 값을 최대화한다.
세그먼트 교체부(330)는 캐싱 유틸리티 값의 합을 최대화하기 위해 상기 저장된 비디오 세그먼트의 집합에서 가장 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트를 새로운 비디오 세그먼트의 집합의 가장 높은 캐싱 유틸리티 값의 해당 비디오 세그먼트로 교체한다.
세그먼트 교체부(330)는 상기 비디오 세그먼트의 허용 교체 횟수를 계산하고, 이분탐색 기법을 이용하여 캐싱 이득 차의 임계값을 계산한다. 서로 다른 두 세그먼트의 캐싱 유틸리티의 차가 상기 계산된 캐싱 이득 차의 임계값보다 작은 경우, 서로 다른 두 세그먼트 중 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트의 교체를 허용하고, 그렇지 않을 경우, 서로 다른 두 세그먼트 중 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트의 교체를 허용하지 않는다.
도 4는 본 발명의 일 실시예에 따른 디스크 대역폭 사용의 감소량 및 수명의 비교 그래프이다.
제안하는 디스크 기반 비디오 저장 서버에서 SSD 수명을 보장하는 SSD 캐시 관리 방법을 시뮬레이션을 통해 평가하였다. 클라이언트 요청의 도착은 포아송 분포를 따르고, 접근 확률은 θ=0.271의 지프 분포 (Zipf distribution)를 따른다. 지프 분포는 접근 확률에 대한 분포로 이를 따르면, 비디오 i의 접근 확률 p i 은 수학식 2와 같다.
[수학식 2]
Figure 112017118234191-pat00007
서버로 단위시간 당 총 요청수인 λ는 2/second로 가정하였다. 각 비디오들의 길이는 1~3시간에서 랜덤하게 설정하였다. 본 실험은 1000개의 비디오 파일에 대하여 비트율은 HD영상급의 비트율인 10.4Mb/s~20.8Mb/s로 랜덤하게 설정하였다. 각 비디오 파일의 크기는 32MB의 세그먼트의 배수로 가정하였다. 각 비디오의 인기도는 전형적으로 hot, warm, cold 세가지 상태를 따른다. 총 N v 의 비디오들이 인기도가 각 인덱스에 맞춰 지프 분포를 따른다고 한다. 만약 라면 비디오 의 인기도가 비디오 j의 인기도 보다 높다. 비디오 인기도의 라이프싸이클을 반영하기 위해, 다음과 같이 각 기간의 시작 부분에서 비디오의 인기도를 주기적으로 강등시킨다 (기간의 길이는 T change 로 설정 된다).
새롭게 생성된 N change 개의 비디오를 높은 인기도를 부여하기 위해 1에서 N change 의 인덱스가 할당된다.
기존 비디오의 인기도는 N change 의 인덱스가 추가되어 강등된다.
N v -N change + 1 에서 N v 의 인덱스를 가졌던 비디오는 더 이상 선호되지 않는다.
N change 의 크기를 증가시키면 인기도의 변화율이 높아진다. 본 발명의 실시예에 따른 SSD 용량 S ssd =2TB, SSD 대역폭 B ssd = 4GB/s 상황에서 N change 변화에 따른 SSD 수명 및 디스크 대역폭 감소량을 측정하였다.
도 4(a)는 N limit =500일 때 SSD의 수명을 나타내는 그래프이고, 도 4(b)는 N limit =500일 때 디스크 대역폭 감소량을 나타내는 그래프이다. 도 4(c)는 N limit =1400일 때 SSD의 수명을 나타내는 그래프이고, 도 4(d)는 N limit =1400일 때 디스크 대역폭 감소량을 나타내는 그래프이다.
T change 로 는 6시간, N monitor 은 120로 설정한 후, 과거 30일을 모니터링하여 D threshold 값을 결정하도록 하였다. 쓰기 작업의 수는 TLC (Triple-Level Cell) 기반 SSD의 경우 1000으로 제한되고 MLC (Multi Level Cell) 기반 SSD의 경우 3000으로 제한되는 것으로 알려져 있다. 그러나 의 실제 값은 SSD 내부 조작에 필요한 추가 쓰기 작업으로 인해 이러한 이상 값보다 낮다. 이러한 요소를 반영하여 N limit 의 값은 500에서 1400으로 설정하였다. SSD의 수명은 5년으로 가정하였다.
2가지 방식(예를 들어, UCA-only, UCA+Throttling) 에 대해서 시뮬레이션을 수행하였다. 먼저, UCA-only 방식은 매 주기(T period )마다 UCA 방식에 의해서 가장 유틸리티가 높은 비디오 세그먼트를 저장함으로써 교체되는 세그먼트의 개수는 고려하지 않은 방식이고, UCA+Throttling 는 본 발명에서 제안하는 방식으로,매 주기(T period )마다 D i j D threshold 인 비디오 세그먼트만 교체하는 방식이다.
도면 2는 N limit N change 값에 따라 UCA-only 와 UCA+Throttling의 두 가지 방식에 대하여 디스크 대역폭 절약률과 예상 수명이 어떻게 변하는지를 보여준다. 이런 결과는 다음과 같이 보인다.
UCA+throttling 방식은 세그먼트의 교체가 임계값 이상의 캐싱 유틸리티에서만 디스크에서 SSD로 캐시되므로 항상 SSD 수명을 5년으로 보장한다. 그러나, UCA-only는 SSD의 수명을 보장할 수 없다. 또한, 낮은 N limit 과 높은 N change 값에 대하여 급격한 수명감소를 보이고 있다. N limit 는 SSD의 내구성과 연관되고, N change 값이 높아짐에 따라 인기도 변경이 크므로 더욱 많은 교체가 일어나기 때문이다.
UCA+throttling 방식은 UCA-only 방식에 비하여 디스크 대역폭 절약률은 낮게 나타나고 있다. 그 차이는 N limit 가 낮을수록, N change 가 높을수록 커지므로 디스크 대역폭을 절약하기 위해 더 많은 교체가 필요하다. 이것은 다음과 같이 설명할 수 있다. UCA+throttling 방식은 SSD 수명을 보장하기 위해 세그먼트 교체 횟수를 제한하지만 UCA-only 방식을 사용하면 더 많은 세그먼트를 교체하여 디스크 대역폭을 감소를 최대화할 수 있으나 SSD 수명이 크게 단축된다. 예를 들어, N limit =500인 경우에 UCA-only 는 1.15년에서 1.75년의 수명을 보이고 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다.  또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다.  이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다.  예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다.  또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.  소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다.  소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.  상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.  상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.  컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.  프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다.  예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (8)

  1. 동일한 크기의 각 비디오 세그먼트들을 통해 캐싱 유틸리티를 계산하는 단계;
    상기 계산된 캐싱 유틸리티 값에 따라 높은 순서대로 정렬하고, 정렬된 캐싱 유틸리티 값의 순서대로 SSD 용량에 맞춰 해당 비디오 세그먼트를 SSD 에 저장하는 단계; 및
    캐싱 유틸리티 값의 합을 최대화하기 위해 상기 저장된 비디오 세그먼트의 집합에서 가장 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트를 새로운 비디오 세그먼트의 집합의 가장 높은 캐싱 유틸리티 값의 해당 비디오 세그먼트로 교체하는 단계
    를 포함하고,
    상기 캐싱 유틸리티 값의 합을 최대화하기 위해 상기 저장된 비디오 세그먼트의 집합에서 가장 높은 캐싱 유틸리티 값의 해당 비디오 세그먼트부터 가장 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트를 하나씩 교체하는 단계는,
    상기 비디오 세그먼트의 허용 교체 횟수를 계산하는 단계; 및
    이분탐색 기법을 이용하여 캐싱 이득 차의 임계값을 계산하는 단계
    를 포함하는 SSD 캐시 관리 방법.
  2. 제1항에 있어서,
    상기 계산된 캐싱 유틸리티 값에 따라 높은 순서대로 정렬하고, 정렬된 캐싱 유틸리티 값의 순서대로 SSD 용량에 맞춰 해당 비디오 세그먼트를 SSD 에 저장하는 단계는,
    매 주기 시간마다, 유틸리티 기반 캐싱 알고리즘(Utility-based Caching Algorithm: UCA)을 이용하여 캐싱 유틸리티 값을 계산하고, 해당 비디오 세그먼트를 SSD에 저장함으로써 유틸리티 값을 최대화하는
    SSD 캐시 관리 방법.
  3. 삭제
  4. 제1항에 있어서,
    서로 다른 두 세그먼트의 캐싱 유틸리티의 차가 상기 계산된 캐싱 이득 차의 임계값보다 작은 경우, 서로 다른 두 세그먼트 중 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트의 교체를 허용하고,
    그렇지 않을 경우, 서로 다른 두 세그먼트 중 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트의 교체를 허용하지 않는
    SSD 캐시 관리 방법.
  5. 동일한 크기의 각 비디오 세그먼트들을 통해 캐싱 유틸리티를 계산하는 캐싱 유틸리티 계산부;
    상기 계산된 캐싱 유틸리티 값에 따라 높은 순서대로 정렬하고, 정렬된 캐싱 유틸리티 값의 순서대로 SSD 용량에 맞춰 해당 비디오 세그먼트를 SSD 에 저장하는 SSD; 및
    캐싱 유틸리티 값의 합을 최대화하기 위해 상기 저장된 비디오 세그먼트의 집합에서 가장 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트를 새로운 비디오 세그먼트의 집합의 가장 높은 캐싱 유틸리티 값의 해당 비디오 세그먼트로 교체하는 세그먼트 교체부
    를 포함하고,
    상기 세그먼트 교체부는,
    상기 비디오 세그먼트의 허용 교체 횟수를 계산하고, 이분탐색 기법을 이용하여 캐싱 이득 차의 임계값을 계산하는
    SSD 캐시 관리 장치.
  6. 제5항에 있어서,
    상기 SSD는,
    매 주기 시간마다, 유틸리티 기반 캐싱 알고리즘(Utility-based Caching Algorithm: UCA)을 이용하여 캐싱 유틸리티 값을 계산하고, 해당 비디오 세그먼트를 SSD에 저장함으로써 유틸리티 값을 최대화하는
    SSD 캐시 관리 장치.
  7. 삭제
  8. 제5항에 있어서,
    상기 세그먼트 교체부는,
    서로 다른 두 세그먼트의 캐싱 유틸리티의 차가 상기 계산된 캐싱 이득 차의 임계값보다 작은 경우, 서로 다른 두 세그먼트 중 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트의 교체를 허용하고,
    그렇지 않을 경우, 서로 다른 두 세그먼트 중 낮은 캐싱 유틸리티 값의 해당 비디오 세그먼트의 교체를 허용하지 않는
    SSD 캐시 관리 장치.
KR1020170159937A 2017-11-28 2017-11-28 디스크 기반 비디오 저장 서버에서 ssd 수명을 보장하는 ssd 캐시 관리 방법 및 장치 KR101913969B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170159937A KR101913969B1 (ko) 2017-11-28 2017-11-28 디스크 기반 비디오 저장 서버에서 ssd 수명을 보장하는 ssd 캐시 관리 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170159937A KR101913969B1 (ko) 2017-11-28 2017-11-28 디스크 기반 비디오 저장 서버에서 ssd 수명을 보장하는 ssd 캐시 관리 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101913969B1 true KR101913969B1 (ko) 2018-10-31

Family

ID=64099937

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170159937A KR101913969B1 (ko) 2017-11-28 2017-11-28 디스크 기반 비디오 저장 서버에서 ssd 수명을 보장하는 ssd 캐시 관리 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101913969B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102155185B1 (ko) * 2019-04-19 2020-09-11 인하대학교 산학협력단 비디오 서버에서의 서포트 벡터 리그레션을 활용한 2단계 ssd 캐시 관리 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101675694B1 (ko) 2015-09-11 2016-11-23 성균관대학교산학협력단 블록 인기도에 기반한 ssd의 블록 교체방법
KR101704936B1 (ko) * 2015-12-07 2017-02-09 성균관대학교산학협력단 블록의 우선성에 기반한 ssd의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101675694B1 (ko) 2015-09-11 2016-11-23 성균관대학교산학협력단 블록 인기도에 기반한 ssd의 블록 교체방법
KR101704936B1 (ko) * 2015-12-07 2017-02-09 성균관대학교산학협력단 블록의 우선성에 기반한 ssd의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
박기웅 외 1명, "일반 플래시 SSD 를 이용한 지속형 읽기/쓰기 캐시", 한국차세대컴퓨팅학회 논문지, 2014.08, 10권 4호, pp. 40-54(2014.08.31.)*

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102155185B1 (ko) * 2019-04-19 2020-09-11 인하대학교 산학협력단 비디오 서버에서의 서포트 벡터 리그레션을 활용한 2단계 ssd 캐시 관리 방법 및 장치

Similar Documents

Publication Publication Date Title
EP3210121B1 (en) Cache optimization technique for large working data sets
Eisenman et al. Flashield: a hybrid key-value cache that controls flash write amplification
Luo et al. WARM: Improving NAND flash memory lifetime with write-hotness aware retention management
US9552288B2 (en) Multi-tiered memory with different metadata levels
Skourtis et al. Flash on rails: Consistent flash performance through redundancy
KR101726824B1 (ko) 캐시 아키텍처에서 하이브리드 미디어의 효율적인 사용
US8429346B1 (en) Automated data relocation among storage tiers based on storage load
US8161241B2 (en) Temperature-aware buffered caching for solid state storage
US8996808B2 (en) Enhancing tiering storage performance
US9298616B2 (en) Systems and methods for tracking working-set estimates with a limited resource budget
US20110252215A1 (en) Computer memory with dynamic cell density
US20130111133A1 (en) Dynamically adjusted threshold for population of secondary cache
Puttaswamy et al. Frugal storage for cloud file systems
CN104937574A (zh) 不同粒度的分层缓存和迁移
US8688904B1 (en) Method for managing data storage
Liu et al. PLC-cache: Endurable SSD cache for deduplication-based primary storage
JP6711121B2 (ja) 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム
US20140325161A1 (en) Collaborative caching
EP3255547B1 (en) Data backup device and method
US10489074B1 (en) Access rate prediction in a hybrid storage device
GB2493243A (en) Determining hot data in a storage system using counting bloom filters
WO2015072925A1 (en) Method for hot i/o selective placement and metadata replacement for non-volatile memory cache on hybrid drive or system
KR101913969B1 (ko) 디스크 기반 비디오 저장 서버에서 ssd 수명을 보장하는 ssd 캐시 관리 방법 및 장치
Ryu et al. Impact of flash memory on video-on-demand storage: Analysis of tradeoffs
KR101105127B1 (ko) 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치

Legal Events

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