바닥까지 파보는! Hbase random read 성능 개선기
코드너리 | 2023. 03. 18
데이터 인프라
DB 설계
사용된 기술:
개요:
이 세션에서는 네이버에서 성균관대학교 DICL (Data Intensive Computing Lab) 연구실과 함께 HBase에서 발생 가능한 read amplification 문제를 분석하고, 구조적 해결책을 찾아 read 성능을 개선한 사례를 공유합니다. HBase의 LSM-Tree 기반의 내부 구조와 HBase의 data read path, cache 구조에 대해 분석해보고, read amplification이 발생하는 원인을 알아봅니다. 여러 가설과 검증 과정을 통해 최종적으로 동적 크기의 블록 생성과 Hot한 Key들만 캐싱하는 Key-Value cache 기능을 개발 적용하여 read amplification를 완화 시키고 성능을 향상시킨 이야기와 benchmark 결과를 공유 드립니다. 그리고, 범용적인 대규모 분산 저장소 운영에 성능과 리소스 사용 관리가 중요하면서도 어려운 이유와 네이버의 데이터 저장소가 성능 개선과 효율화에 진심인 이유에 대해 논해봅니다.
목차
배경 소개
- 네이버 데이터 저장소 cuve와 데이터와 사용 패턴의 다양성
- 범용 클러스터에서 가능한 효율화 및 리소스 관리 방법
- Read amplification 문제와 영향
HBase의 간략한 소개
- HBase Architecture
- HBase의 Write 과정
- HBase의 Read 과정
HBase read amplification 원인 분석
- Multi-file access amplification
- Granularity-mismatch amplification
- Granularity-mismatch and cache pollution
개선방안
- 동적 사이즈 데이터 블록
- KVCache의 개발
벤치마킹 및 적용 효과
- Naver Cuve 클러스터에서의 CBMG 벤치마킹 실험 결과
- 성균관대학교 클러스터에서의 YCSB 벤치마킹 실험 결과