검색 : [ author: 남범석 ] (8)

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의 부하 불균형을 개선하였으며, 쓰기 연산에 대해 더 나은 성능을 보였다.

Opt Tree: Optane DCPM 내부 버퍼를 활용한 쓰기 최적화 트리

유종현, 남범석

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

최근 상용화된 비휘발성 메모리인 Intel사의 Optane DC Persistent Memory는 캐시 라인 단위 또는 워드 단위의 메모리 접근 명령을 256바이트 단위로 처리하는 내부 버퍼가 존재한다. 본 논문에서는 Optane DCPM의 내부 버퍼를 활용하는 인덱스인 Opt Tree를 제안한다. Opt Tree는 트리의 노드를 256 바이트 단위의 여러 작은 블록으로 나누어 노드 내의 데이터들을 분할 저장하며, 노드 접근 시에는 2개의 블록만을 접근하는 삽입 및 탐색 알고리즘을 가진다. Opt Tree는 Optane DCPM의 내부 버퍼에 친화적인 디자인과 알고리즘을 바탕으로 기존의 비휘발성 메모리를 위한 인덱스들보다 더 나은 삽입 성능을 보여준다.

NUMA의 특성을 고려한 원격 퍼시스턴트 메모리 디스어그리게이션

남재윤, 차호근, 이병건, 남범석

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

데이터 센터 등 대규모 시스템에서 효율적인 리소스 관리를 위해 자원이 중심이 되는 디스어그리게이션 방법이 사용되고 있고 각 서버는 다수의 소켓을 가지는 NUMA 구조로 구성된다. NUMA 구조에서는 메모리의 원격 접근과 로컬 접근의 지연시간의 차이가 크고 이는 퍼시스턴트 메모리에서 더 크게 나타난다. 본 연구에서는 퍼시스턴트 메모리 디스어그리게이션 시스템에서 NUMA 구조의 로컬성을 고려하여 원격 NUMA 노드 메모리에 접근하는 수를 줄이는 메모리 디스어그리게이션 프레임워크 Xpass를 설계한다. Xpass는 캐싱한 페이지를 관리하기 위해 동적 해시 테이블 CCEH를 사용하며, NUMA 환경에서 NUMA 노드 간 로드 밸런싱을 고려하는 세그먼트 스플릿 알고리즘을 제안한다.

NAFS : NUMA 시스템에서 지역 접근을 최대화하기 위한 스택커블 파일시스템

하승준, 우호빈, 서의성, 남범석

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

Intel Optane DC Persistent 메모리는 DRAM에 가까운 응답속도를 보이면서 SSD 등 블록장치처럼 데이터의 영구 저장이 가능한 차세대 하드웨어이다. 그러나 Optane DC는 DIMM에 장착되기 때문에 기존 블록 장치에서 발생하지 않던 NUMA 효과로 인한 성능 감소가 발생한다. 이 때문에 멀티 쓰레드 I/O 응용에서 쓰레드가 동작하는 CPU에 따라서 I/O 성능이 차이난다. 본 논문에서는 이를 해결하기 위한 새로운 스택커블 파일 시스템인 NUMA-Aware Filesystem(NAFS)을 제안한다. NAFS는 파일을 특정 세그먼트 단위로 나누어서 쓰레드가 동작하는 CPU와 가까운 소켓의 Optane DC로 I/O를 수행하도록 한다. 또한 응용 수행 중 원격 소켓에서의 I/O가 많아지면 NAFS는 파일의 메타데이터를 모든 소켓의 Optane DC에 복사한 뒤 로컬 I/O가 가능하도록 해준다. 그 결과 불필요한 원격 소켓 I/O가 줄어들어 멀티쓰레드 응용에서의 I/O의 성능이 향상되었다.

LFA-SkipList: NUMA-Aware한 시스템에서 원격 노드 접근 Latency를 줄이기 위한 SkipList 최적화

안성환, 장유진, 하승준, 남범석

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

Intel의 Optane DC Persistent Memory 는 Storage Device에 비해 작업 속도가 빠르면서도 데이터의 영구 저장이 가능한 비휘발성 메모리이다. 그러나 CPU 소켓 별로 메모리를 가지는 NUMA 시스템에서 다른 CPU 소켓의 메모리로 원격 접근할 때 Latency가 증가하게 된다. 때문에 여러 개의 비휘발성 메모리에 SkipList를 구성하게 되면 원격 NUMA 노드로의 접근 때문에 탐색 성능이 저하되는 문제가 있어 본 논문에서는 이를 해결하기 위한 새로운 SkipList인 LFA-SkipList를 제안한다. LFA-SkipList는 기존의 포인터 외에 새롭게 추가된 local 포인터를 활용하여 local 노드를 먼저 탐색하고 그 후에 Remote 노드를 탐색하는 방식을 사용하고, 따라서 불필요한 Remote 노드 접근이 줄어들어 성능이 향상되었다. 실험 결과 새로운 SkipList는 기존의 SkipList에 비해 향상된 탐색 성능을 보였다.

PSL-DB: 비휘발성 메모리 환경에서 스킵리스트를 이용한 LSM-Tree 최적화

박찬열, 김동의, 남범석

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

Intel의 Optane DC Persistent Memory가 출시되면서 DRAM보다 높은 용량을 제공하며, SSD와 HDD보다 높은 성능을 보여주는 비휘발성 메모리가 차세대 스토리지로 각광받고 있다. 본 논문에서는 스킵리스트를 사용하여 비휘발성 메모리가 스토리지로 사용되는 환경에 최적화한 Key-Value 데이터베이스인 Persistent SkipList DataBase (PSL-DB)를 제안한다. PSL-DB는 비휘발성 메모리의 바이트 단위 접근이 가능한 점을 이용하여 기존 LevelDB의 블록 단위 접근을 위한 SSTable 구조 대신, 바이트 단위 쓰기가 가능한 스킵리스트를 활용한다. 그 결과 PSL-DB는 같은 데이터를 중복해서 여러 번 쓰는 쓰기 증폭 문제를 발생시키지 않으며, 읽기 성능을 위해 쓰기 성능을 고의로 제한하지 않아 성능을 크게 향상시킬 수 있다. Intel Optane DC Persistent Memory를 활용한 실험에서 PSL-DB는 같은 Optane DC PM을 사용하는 기존 LevelDB보다 읽기와 쓰기 명령모두 높은 초당 연산량을 보여주었다.


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