Embedded System Lab Flash KV Accelerating KV Performance
Embedded System Lab. Flash. KV: Accelerating KV Performance with Open-Channel SSDs J. Zhang et al. 2019. 11. 04 Presentation by Lee, Sounghyoun leesh 812@dankook. ac. kr
Embedded System Lab. Content 1. Introduction 2. Flash. KV • Parallel Data Layout • Adaptive Parallelism Compaction • Compaction-Aware Cache • Priority-Based Scheduler 3. Evaluation 2
1. Introduction Embedded System Lab. SSD Google Finance 3
1. Introduction Embedded System Lab. LSM-Tree based key-value store Google Finance Problems 과도한 쓰기 증폭, GC 오버헤드 Solution Flash. KV -> 중복 제거 압축, 캐싱, I/O 스케줄링 최적화 4
2. Flash. KV Embedded System Lab. Flash. KV Google Finance 여러 단계에 걸친 중복된 기능 최적화 되지 않은 5
2. Flash. KV Embedded System Lab. Flash. KV Parallel Data Layout Google Finance Adaptive Parallelism Compaction-aware Cache Priority-based Scheduler 6
2. Flash. KV Embedded System Lab. Parallel Data Layout 각 super-block의 고유한 ID -> offset Google Finance Super-block의 첫 번째 페이지, 마지막 페이지 • 첫 번째 : 파일 이름 • 마지막 : SSTable의 버전 및 Super-block상태 7
2. Flash. KV Embedded System Lab. Adaptive Parallelism Compaction Write의 경우 Read보다 2~10배 느림 Finance • Google Full Parallelism Compaction 요구된 쓰기 작업양이 많을 경우 • Half Parallelism Compaction 2배정도 느리지만, 백그라운드 실행으로 시스템 성능에 거의 영향x 절반만 쓰기, 나머지는 읽기 8
2. Flash. KV Embedded System Lab. Compaction-Aware Cache Google Finance LRU 알고리즘 사용으로 캐시가 오래 남아있으나, 한 번 사용이후 더 이상 필요가 없어 비효율적 Open-lib two type of reads • Client’s reads(get) 크기는 대개 하나의 메모리 페이지 크기 Prefetching X • Compaction reads 선택된 전체 SSTable을 읽고 병합 정렬해야 하기 때문에 요청의 크기가 큼 Prefetching O 9
2. Flash. KV Embedded System Lab. Priority-Based Scheduler 우선순위에 따라 설계하고 최적화 Finance • Google Foreground - Client에 의해 요청 put, get • Background - Merge Sort를 위해 요청 Priority • foreground > background • Read > Write • 장치에 여유 공간이 많을 때 erase는 낮은 순위 • 장치에 여유 공간이 없을 때 erase는 높은 순위 10
3. Evaluation Embedded System Lab. Experimental Setup Google Finance 11
3. Evaluation Embedded System Lab. Light Write Traffic Google Finance 12
3. Evaluation Embedded System Lab. Heavy Write Traffic Google Finance 13
3. Evaluation Embedded System Lab. Optimization Breakdown Google Finance Flash. KVNOOP – 우선 순위 기반 스케줄러 대신 NOOP 사용 Flash. KV 1 thread – 압축 스레드가 1개 Flash. KV 2 thread – 병렬 처리가 없는 압축 스레드 2개 Flash. KVLRU – Compaction-Aware Cache 대신 LRU 사용 Flash. KVraw – 최적화 없음 14
Embedded System Lab. Flash. KV: Accelerating KV Performance with Open-Channel SSDs J. Zhang et al. Thank you! 2019. 11. 04 Presentation by Lee, Sounghyoun leesh 812@dankook. ac. kr
- Slides: 15