When Caching Systems Meet Emerging Storage Devices: A Case Study
HotStorage 2023
Zhen Lin, University of New York at Binghamton;
Lianjie Cao, Faraz Ahmed, Hewlett Packard Labs;
Hui Lu, State University of New York at Binghamton;
Puneet Sharma, Hewlett Packard Labs
Link : https://www.hotstorage.org/2023/program.html
Paper : https://huilucs.github.io/pubs/shruti.pdf
해당 포스팅에서는 논문을 개괄적으로 요약하고
다음 포스팅에서는 논문에 포함된 자료를 간략하게 분석하고
마지막 포스팅에서 논문 전문을 자세하게 분석할 예정
0. 소개
* 최신 스토리지 장치의 발전과 캐싱 시스템의 역할 변화에 다루는 논문
* 전통적인 스토리지와 달리 고성능 스토리지 디바이스가 확산되면서 캐싱 시스템의 설계와 최적화가 어떻게 이루어져야 하는지에 대해 분석함
- 고성능 스토리지 >> low latency 지연, high throughput 처리량 / NVMe SSD
- bandwidth 대역폭 = 시스템이 이상적인 조건에서 최대 전송할 수 있는 데이터 양 / 이론적 성능 한계
- throughput 처리량 = 시스템이 일정 시간 내에 실제로 처리한 데이터 양 / 실제 성능
* 새로운 스토리지 기술과 캐싱 시스템의 상호작용에 대한 성능 특성에 대해 실험
- 상호작용 >> 데이터 처리 흐름과 자원 사용 방식, 데이터 이동 빈도, R/W 패턴의 변화, 데이터 일관성 유지 방식
* 워크로드 특성이나 데이터 접근 패턴의 변화에 따라 캐시 사용 방식을 동적으로 조정하는 적응형 캐싱 강조
1. 연구 배경
- 캐싱 시스템은 스토리지 장치 (ex. 느린 HDD) 속도를 보완하는 목적으로 사용되어 왔음. 주로 자주 접근하는 데이터를 고속 캐시 메모리 (ex. DRAM) 에 임시 저장하는 방식으로 데이터에 접근하는 시간을 단축시켜주었음.
- 그러나 고성능 장치 (ex. NVMe SSD)가 등장하면서 '기존의 캐싱 전략이 고성능 장치에서 최적의 성능을 제공할 수 있을까' '기존의 HDD보다 latency는 낮고 bandwidth는 높은 NVMe SSD를 사용할 때도 캐시가 필요한가' 같은 본질적인 질문이 대두되었음 >> 데이터 접근 속도가 빠르기 때문에 오히려 캐시 없이 직접 접근하는 것이 오버헤드나 불필요한 자원 낭비가 발생하지 않을 수도 있기 때문
2. 연구 목적
- 최신 스토리지 디바이스가 캐싱 시스템과 결합되어 함께 사용할 때 최신 스토리지 장치가 캐싱 시스템에 미치는 성능적 영향에 대해 평가, 실험을 기반으로 하여 최적의 성능을 위한 개선 방안 제시
3. 연구 문제
- 캐시와 고성능 스토리지 디바이스 사이에서 데이터가 자주 이동하면 오히려 캐싱 오버헤드가 발생하여 응답 시간을 증가시키고 자원을 비효율적으로 쓰게 함 (데이터 이동 비용 증가 문제)
- 고성능 스토리지 디바이스가 기존의 하드디스크보다 속도는 빠르지만 캐시 히트율이 높은 경우에는 캐싱이 더 효율적일 수 있고 히트율이 낮으면 고성능 스토리지 디바이스가 직접 접근하는 것이 유리함 (캐싱 히트율과 성능의 문제)
- 쓰기 작업이 많은 쓰기 집약적 워크로드에서는 데이터가 캐시와 고성능 스토리지에 자주 동기화되면 작업의 지연이 늘어나면서 캐싱 시스템에 쓰는 것이 오히려 쓰기 병목현상을 유발할 수도 있음. (쓰기 집약적 워크로드에서의 병목 문제)
4. 연구 방법
- 다양한 워크로드 (R/W/R+W) 를 대상으로 NVMe SSD와 DRAM 캐시의 조합으로 측정
- 측정할 때는 dram 캐시 사용 on / off 선택 가능
5. 실험
* 평가를 위해 측정한 성능 지표
- 응답 시간 latency
- 처리량 throughput
- 자원 사용률 resource utilization
6. 실험 결과
- 고성능 스톨리지 디바이스를 사용할 때 기존의 전통적 캐싱 시스템을 사용하는 것은 효율적이지 않을 때가 있음을 확인함
- 데이터 이동 비용 문제 ) 캐싱과 스토리지 사이에 데이터가 자주 이동하면 성능이 저하될 수 있음. 특히 쓰기 작업이 많으면 쓰기 병목으로 응답 시간이 증가함
- 캐시 히트율 낮음 문제 ) 읽기 중심에서는 캐싱이 효과적일 수 있지만 캐시 히트율이 낮으면 캐시를 비활성화하고 직접 고성능 스토리지 디바이스에 접근하는 것이 훨씬 효율적임
- 혼합 워크로드에서의 제한적 성능 ) R+W 혼합 워크로드에서는 캐싱이 효과적이지 않았음. 오히려 동기화 비용이 많아져서 성능 저하가 발생하기도 함.
7. 제안 << 적응형 캐싱 전략 >>
- 워크로드에 따라 실시간으로 캐시 사용 방식을 조정하는 것
- 실시간 워크로드 분석 기능 = 쓰기 작업 많을 때는 캐시 off, 읽기 작업 많을 때는 캐시 on
- 데이터 중요도 기반 캐싱 기능 = 자주 접근하는 고빈도 데이터는 캐시에 저장해서 빠르게 제공, 중요도가 낮다면 캐시가 아닌 고성능 스토리지 디바이스에 직접 저장해서 이동 비용 절약
- 자원 효율성 극대화 기능 = DRAM 캐시 자원을 최적화해서 고성능 스토리지의 자원을 최대한 사용하고 캐싱으로 인한 자원 낭비는 줄임
8. 결론
- 고성능 스토리지 장치의 보편화 . 기존 캐싱 시스템이 반드시 효과적인 것은 아님
- 캐싱 레이어와 고속 스토리지 디바이스가 적절하게 결합되지 않으면 성능 저하, 쓰기 병목 우려
- 다양한 스토리지 환경에서 더 정교한 접근 패턴을 분석하여 자동화하는 적응형 캐싱 전략이 필수적