검색 : [ keyword: Non-volatile memory ] (12)

NUMA 아키텍처 기반 PM 자료구조를 고려한 노드 리플리케이션 설계

김정한, 엄영익

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

최근 영속 메모리와 NUMA 기술의 발전으로 빅데이터, 머신 러닝 등의 응용에서 넓은 저장 공간과 높은 성능을 제공할 수 있게 되었다. 이와 같은 다중 노드 PM 환경은 모든 소프트웨어 스택의 핵심 기술 중의 하나인 자료구조의 변화를 요구한다. 그러나 PM의 중요한 특성인 비휘발성을 보장하는 것에서 더 나아가 NUMA 아키텍처가 지닌 높은 동시성을 끌어내는 것은 PM 자료구조 연구에서 어려운 문제이다. 이에 본 논문에서는 대표적인 NUMA 알고리즘인 노드 리플리케이션을 확장한 NRPM을 제안한다. 이는 공유 로그, 플랫 컴바이닝 기법을 응용하여 다중 노드 PM 환경에서 동시 실행 성능을 개선함으로써 NUMA-PM 환경에서 최대 5배 높은 hash 성능을 도출하였다. 또한, NUMA-PM의 특성을 반영한 다양한 성능 분석을 통해 제안 기술의 타당성을 확인하였다.

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에 비해 향상된 탐색 성능을 보였다.

Intel Optane DC Persistent Memory 동작 방식 비교를 통한 DRAM 캐시 성능 분석

문예빈, 오덕재, 안정호

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

차세대 비휘발성 메모리(Non-Volatile Memory)는 DRAM 용량 확장 한계의 대안 중 하나로 제시되어 활발히 연구되어 왔으며, 최근 Intel 사에서는 비휘발성 메모리 제품인 Optane DC Persistent Memory (DCPMM)를 출시하였다. 최신 Intel 서버는 DCPMM을 활용하기 위해 DCPMM을 메인 메모리, DRAM을 DCPMM의 캐시로 사용하는 Memory mode와, DCPMM과 DRAM을 독립적인 메모리로 사용하는 App Direct mode를 제공한다. 본 논문에서는 두 가지 동작 방식들의 성능을 비교하여, 응용프로그램의 워킹 셋 크기가 DRAM 크기보다 클수록 DRAM 캐시 미스 페널티(~70ns)로 인해 데이터를 DCPMM에만 할당한 경우보다 오히려 성능이 감소하는 것을 확인하였다. 이를 통해, Memory mode에서는 응용프로그램의 워킹 셋 크기가 DRAM 캐시보다 작거나 데이터 지역성이 보장되면 상대적으로 느린 DCPMM 접근에 따른 성능 감소를 최소화할 수 있으나, DRAM 캐시 미스 페널티로 인해 워킹 셋이 크고 데이터 지역성이 없는 환경에서는 App Direct mode를 사용하는 것이 성능 측면에서 더 유리할 수 있음을 보인다.

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보다 읽기와 쓰기 명령모두 높은 초당 연산량을 보여주었다.

비휘발성 메모리에서 쓰기 증폭 감소를 위한 분산 스토리지 시스템

김정한, 엄영익

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

최근 3DXpoint 로 대표되는 비휘발성 메모리가 등장하면서 분산 스토리지 환경에서도 이를 활용하기 위한 연구가 새롭게 주목받고 있다. 이러한 차세대 비휘발성 메모리를 분산 스토리지 시스템에서 효과적으로 활용하기 위해서는 HDD/SSD를 고려하여 개발된 기존 스토리지 시스템 구조의 개선이 필요하다. 무엇보다도 기존 분산 스토리지 시스템 구조는 느린 스토리지 성능을 보완하기 위해서 별도의 저널영역을 사용하는데, 이러한 구조는 DRAM과 유사한 비휘발성 메모리 성능을 고려할 때 효과적이지 않으며 또한 쓰기 증폭 문제를 야기한다. 이에 본 논문에서는 비휘발성 메모리 기반의 분산 스토리지 환경에서의 쓰기 증폭 문제를 개선하는 아키텍처를 제안한다. 본 구조의 검증을 위해서 CEPH 스토리지 시스템 환경에서 실험을 진행하였으며, 이를 통해서 제안하는 DAXNJ 구조가 1M 오브젝트 쓰기에서 쓰기 증폭을 약 61% 줄이고 성능을 15% 개선하는 결과를 확인하였다.

비휘발성 메모리 기반 블록 디바이스 드라이버 성능 향상을 위한 쓰기 감소 기법

김정한, 엄영익

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

최근 NVRAM(Non-Volatile Memory)이 플래시 스토리지 및 DRAM과 비교하여 성능, 가격측면의 경쟁력을 갖추게 되면서 차세대 스토리지로써 새롭게 주목받고 있다. NVRAM을 스토리지로 활용하기 위해서는 기존 파일 시스템 계층 또는 블록 디바이스 계층을 개선하는 방법이 존재한다. 이 중에서도 블록 계층을 수정하는 방법은 파일 시스템 및 페이지 캐시 계층의 변경이 필요 없기 때문에 전체 시스템의 호환성 측면에서 장점을 갖는다. 그러나, 이와 같은 접근은 NVRAM을 블록 단위로 제어하기 때문에 바이트 접근이 가능한 NVRAM의 특성을 고려할 때 내구성 및 성능 측면에서 효과적이지 않다. 이에 본 논문에서는 파일 시스템을 고려하면서 블록 단위 쓰기를 최소화하는 NVRAM 블록 디바이스 드라이버를 제안한다. 제안하는 블록 쓰기 감소 기법은 파일 시스템의 구조에 따라 블록 타입을 분류하고, XOR 연산을 활용한 블록 변경량 비교 과정을 통해서 부분 쓰기를 제공한다. 제안 기법을 리눅스 커널의 NVRAM 블록 계층에 적용하여 다양한 워크로드에서 평가한 결과 기존 블록 단위 쓰기와 비교하여 쓰기량이 최대 90%까지 감소함을 확인하였다.

비 휘발성 메모리 기반 로그 구조 버퍼의 설계 및 구현

손용석

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

PCM, STT-MRAM과 같은 차세대 비 휘발성 메모리(NVM) 기술은 낮은 지연시간, 높은 대역폭, 비 휘발성 및 높은 용량을 제공한다. 이러한 NVM은 고성능 컴퓨팅을 위해 컴퓨터 시스템 및 데이터베이스 분야에서 널리 사용 및 연구되고 있다. 예를 들어, 최근 연구자들은 NVM을 파일시스템의 저널링 버퍼 및 데이터베이스의 로깅을 위해 사용하며 이에 따른 최적화 연구들을 많이 진행하고 있다. 기존연구들을 보완하는 연구로 본 논문에서는 응용의 원자성 페이지(page) 업데이트에 대해 초점을 맞춘다. 예를 들어, 데이터베이스 시스템과 같은 데이터 관리 응용에서는 여러 페이지들을 원자적으로 업데이트하기 위해, 임시 버퍼를 두고 중복적인 쓰기 연산을 수행함으로써 그 페이지들의 원자성을 보장한다. 하지만, 이러한 중복적인 쓰기 연산은 성능을 크게 감소시킬 수 있다. 따라서 본 논문에서는 일관성을 보장하면서 성능을 향상시키기 위해, 하나의 로그 구조 버퍼 관리자(Log-structured buffer manager(LSBM))를 소개한다. LSBM은 원자적 업데이트를 위해 로그 기반으로 페이지를 NVM에 업데이트하고 버퍼링 기능을 제공한다. 또한 해당 버퍼에 중복 페이지가 있을 경우, 이전 버전의 페이지를 제거하여 최신의 페이지만 반영하도록 함으로써 입출력과 쓰기량을 최소화시킨다. 실험결과는 LSBM이 응용의 성능을 개선시키고 총 쓰기량을 감소시킴을 보여준다.

트리 자료구조를 이용한 비 휘발성 메모리의 가비지 수집 기법

이도근, 원유집

http://doi.org/

비 휘발성 메모리를 할당받아 사용하기 위해서는 비 휘발성 메모리 전용의 가비지 수집 기법이 필수적이다. 본 논문에서는 이를 위해 비 휘발성 메모리 할당 정보 관리용 메타데이터를 설계하였고 이를 Allocation Tree라고 명명하였다. 이 메타데이터는 검색 속도의 향상을 위해 트리 자료구조를 이용하여 구성되었고, 하나의 노드 안에는 할당 메모리 시작 주소와 저장소 ID 정보가 키-밸류 형태로 저장된다. 비 휘발성 메모리 공간이 부족하여 가용 공간이 70% 이하로 떨어지면 가비지 수집기가 작동되어 가비지 수집을 수행하게 되고 Allocation Tree와 사용자 데이터를 비교하여 가비지를 판정한다. 본 연구에서는 이 알고리즘을 Persistent Heap기반의 메모리 할당 플랫폼인 ‘HEAPO’에서 구현하여 정상적으로 동작함을 증명하였다.

SSD 입출력 요청 스트림들의 QoS 지원을 위한 플래시 연산 그룹 스케줄링

이은규, 원선, 이준우, 김강희, 남이현

http://doi.org/

최근에 서버 시스템에서 SSD(Solid-State Drive)가 고성능 저장장치 및 캐시로서 많이 사용됨에 따라 다양한 서버 응용들의 입출력 요청 스트림들을 위해 SSD 수준에서 서비스 품질(Quality-of-Service)를 제공할 수 있는지에 대한 관심이 높아지고 있다. 현재까지 대부분의 SSD는 SATA 버스 상에서 AHCI 컨트롤러를 사용해왔기 때문에 각 입출력 스트림을 SSD 내부에서 구별하여 서비스할 수가 없었다. 그러나, 최근에 새로운 SSD 인터페이스로서 PCI Express 버스 상에서 NVME 컨트롤러가 제안됨에 따라 각 입출력 스트림을 SSD 내부에서 구별할 수 있게 되었고, 이에 따라 입출력 요청들을 스케줄링할 수 있게 되었다. 본 논문은 NVME 기반 플래시 저장 장치를 위한 플래시 연산 그룹 스케줄링(Flash Operation Group Scheduling)을 제안하고, 가중치에 따라 입출력 스트림별로 비례 지분 대역폭을 제공할 수 있음을 QEMU 기반 시뮬레이션을 통해 보인다.


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