검색 : [ author: 문성호 ] (3)

MemTable의 부분 비우기를 사용한 LSM 트리의 성능 개선

전형준, 구헤라, 문성호, 남범석

http://doi.org/10.5626/JOK.2023.50.1.87

NoSQL의 종류 중 하나인 키-값 저장소에서는 색인 자료 구조로 로그 기반 병합 트리(이하 LSM 트리)가 널리 사용된다. LSM 트리는 대체로 빠른 쓰기 성능을 보이나, 쓰기 증폭과 쓰기 멈춤 문제로 인해 최대한의 성능을 내는 것이 쉽지 않다. 본 논문에서는 최근 데이터 센터의 주 메모리의 크기가 증가하는 추세인 점을 고려하여, 기존 LSM 트리의 메모리 자료 구조인 MemTable의 크기를 확장하여 설계한 Extended MemTable을 소개한다. Extended MemTable은 키-값을 삽입할 때, 키 값의 범위에 따른 구획을 이용하여 컴팩션 연산이 효율적으로 작동할 수 있도록 비우기(Flush) 연산을 수행한다. 실험 결과 본 논문의 디자인은 쓰기 처리량을 기존 RocksDB에 비해 최대 2배, 읽기 처리량은 기존 RocksDB 대비 최대 4배 개선하였으며, 쓰기 증폭 현상은 최대 3.7배 줄어들어 쓰기 증폭과 쓰기 멈춤 문제를 크게 개선하였음을 확인할 수 있다.

NVMe-oF를 활용한 LSM 트리 컴팩션 오프로딩

문성호, 구헤라, 전형준, 남범석

http://doi.org/10.5626/JOK.2022.49.7.569

NVMe-over-Fabrics(NVMe-oF)는 NVMe 명령을 통한 원격 NVMe SSD로의 빠른 접근을 가능하게 하여 분리형 저장장치(Storage)의 구성 방법으로 주목받고 있다. 본 논문은 NVMe-oF를 활용하여 분리형 저장장치 환경에 최적화된 LSM-트리 기반 키-값 저장소인 RocksDB-oF를 제안한다. RocksDB-oF는 NVMe-oF의 특성을 고려해 컴퓨팅 노드에서 저장장치 노드로 컴팩션을 오프로드 함으로써 컴팩션에 의한 쓰기 멈춤(Write Stall)을 완화했다. 또한, 저장장치 성능 개발 도구(SPDK)를 이용한 파일시스템은 동시에 같은 NVMe SSD에 접근하는 두 노드의 파일시스템 일관성 문제를 효과적으로 해결하였다. NVMe-oF를 활용해 분리형 저장장치 환경을 구성한 실험에서 RocksDB-oF는 기존 RocksDB 보다 높은 쓰기 처리량을 보여주었다.

NVMe-oF를 이용한 LSM-트리 기반 분산 키-값 스토어의 부하 분산 최적화

구헤라, 문성호, 전형준, 남범석

http://doi.org/10.5626/JOK.2022.49.7.561

키 값에 따라 데이터를 분산 저장하는 분산 키-값 데이터베이스의 도전과제 중 하나는 부하 분산이다. 본 논문은 NVMe-over-Fabrics를 이용해 LSM-트리 기반 키-값 스토어인 RocksDB 엔진을 내장한 MongoDB 분산 데이터베이스(MongoRocks)를 부하 분산에 최적화된 구조로 재설계했다(MongoRocks-oF). MongoRocks-oF는 all-to-all 연결로 컴퓨팅 노드들이 원격 저장 장치의 NVMe SSD들을 공유할 수 있는 NVMe-over-Fabrics의 특성을 이용해, 라운드-로빈 방식으로 데이터를 고르게 분산하고 저장 장치 자원을 완전히 활용한다. 이를 바탕으로 MongoRocks-oF는 기존의 MongoRocks의 부하 불균형을 개선하였으며, 쓰기 연산에 대해 더 나은 성능을 보였다.


Search




Journal of KIISE

  • ISSN : 2383-630X(Print)
  • ISSN : 2383-6296(Electronic)
  • KCI Accredited Journal

사무국

  • Tel. +82-2-588-9240
  • Fax. +82-2-521-1352
  • E-mail. chwoo@kiise.or.kr