[논문 리뷰] Closing the B-tree vs. LSM-tree Write Amplification Gap on Modern Storage Hardware with Built-in Transparent Compression
이 논문은 현대 스토리지 디바이스의 하드웨어 기반 투명 압축 기능을 활용하여 B-tree 写 amplification을 10배 이상 감소시키는 세 가지 신규 B-tree 설계 기법—결정적 페이지 샤피잉, 국소화된 페이지 수정 로깅, 희소 리도 로깅—을 제안한다. 이 방법은 B-tree가 RocksDB와 같은 LSM-tree보다도 높거나 유사한 쓰기 성능과 스토리지 효율성을 달성할 수 있도록 한다.
This paper studies the design of B-tree that can take full advantage of modern storage hardware with built-in transparent compression. Recent years have witnessed significant interest in applying log-structured merge tree (LSM-tree) as an alternative to B-tree. The current consensus is that, compared with B-tree, LSM-tree has distinct advantages in terms of storage space efficiency and write amplification. This paper argues that one should revisit this belief upon the arrival of storage hardware with built-in transparent compression. Advanced storage appliances~(e.g., all-flash array) and emerging computational storage drives perform hardware-based lossless data compression, transparent to OS and user applications. Beyond straightforwardly reducing the physical storage cost difference between B-tree and LSM-tree, such modern storage hardware brings new opportunities to innovate B-tree implementation in order to largely reduce its write amplification. As the first step to explore the potential, this paper presents three simple design techniques (i.e., deterministic page shadowing, localized page modification logging, and sparse redo logging) that can leverage such modern storage hardware to significantly reduce the B-tree write amplification. We implemented these design techniques and carried out experiments on a commercial storage drive with built-in transparent compression. The results show that the proposed design techniques can reduce the B-tree write amplification by over 10x. Compared with RocksDB (a popular key-value store built upon LSM-tree), the implemented B-tree can achieve similar or even smaller write amplification and physical storage space usage.
연구 동기 및 목표
- 현대 스토리지 하드웨어의 투명 압축 기능을 활용하여 LSM-tree가 B-tree를 압도하는 쓰기 확장성 문제의 재평가를 목적으로 한다.
- 오랜 기간 동안 지속된 LSM-tree가 B-tree보다 쓰기 확장성과 스토리지 효율성에서 본질적으로 뛰어나다는 믿음을 도전한다.
- 투명하게 압축되는 스토리지 디바이스에서 데이터 구조의 희소성 활용이 물리적 스토리지 비용을 유발하지 않고 어떻게 효율적으로 이루어질 수 있는지 탐색한다.
- 원자성과 내구성을 유지하면서 쓰기 확장성을 줄이는 B-tree 기법을 설계하고 구현한다.
제안 방법
- 원자성을 확보하기 위해 결정적 페이지 샤피잉을 사용하여 추가 물리적 쓰기 없이 페이지 업데이트를 결정한다.
- 국소화된 페이지 수정 로깅을 구현하여 부분적 페이지 업데이트로 인한 쓰기 확장성을 줄이고, 수정된 데이터 세그먼트만 쓴다.
- 희소 리도 로깅을 적용하여 비어 있지 않거나 변경된 데이터 블록만 기록함으로써 로깅 오버헤드를 최소화하고, 스토리지 디바이스의 희소 데이터 압축 능력을 활용한다.
- 스토리지 디바이스의 투명 압축 기능을 활용하여 데이터 구조를 의도적으로 희소하게 만들었을 때도 낮은 물리적 스토리지 비용을 유지한다.
- 세 기법을 B-tree 구현에 통합하고 내장 압축 기능을 갖춘 상용 스토리지 드라이브에서 평가한다.
- 압축 후 물리적 스토리지 쓰기 기반으로 쓰기 확장성을 측정한다. (논리적 쓰기 기반이 아님)
실험 결과
연구 질문
- RQ1내장 투명 압축 기능을 갖춘 스토리지 하드웨어에서 실행될 때 B-tree가 LSM-tree와 유사한 쓰기 확장성을 달성할 수 있는가?
- RQ2현대 스토리지 디바이스에서 데이터 구조의 희소성을 어떻게 활용할 수 있으며, 물리적 스토리지 비용을 유발하지 않을 수 있는가?
- RQ3하드웨어 기반 압축과 희소 데이터 표현을 활용하여 B-tree의 쓰기 확장성을 줄일 수 있는 설계 기법은 무엇인가?
- RQ4투명 압축 환경에서 B-tree가 RocksDB와 같은 LSM-tree 기반 시스템보다 또는 그와 유사하게 쓰기 스루풋과 스토리지 효율성에서 얼마나 뛰어나게 성능을 낼 수 있는가?
- RQ5결정적 페이지 샤피잉, 국소화된 수정 로깅, 희소 리도 로깅의 조합이 B-tree의 쓰기 확장성을 상당히 감소시킬 수 있는가?
주요 결과
- 제안된 설계 기법은 내장 투명 압축 기능을 갖춘 상용 스토리지 드라이브에서 B-tree의 쓰기 확장성을 10배 이상 감소시켰다.
- 희소 리도 로깅 없이도 128B 레코드를 가진 150GB 데이터셋에서 B-tree는 RocksDB보다 19% 높은 쓰기 스루풋을 달성했다.
- B-tree는 WiredTiger와 기본 B-tree 구현보다 약 2.1배 높은 쓰기 스루풋을 기록했다.
- 쓰기 확장성 결과는 측정된 랜덤 쓰기 속도 성능과 강하게 상관관계를 보였으며, 최적화의 효과를 확인했다.
- B-tree는 물리적 스토리지 공간 사용 효율성에서 RocksDB와 동등하거나 이를 초월했으며, 쓰기 확장성과 공간 효율성 면에서 LSM-tree와의 격차를 좁혔다.
- 결과적으로 B-tree는 투명 압축 기능을 갖춘 현대 스토리지 하드웨어에 적절히 최적화될 경우 쓰기 집약적 워크로드에서 LSM-tree와 경쟁 가능하다는 점을 시사한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.