황태호 군은, 스토리지와 파일시스템 관련 최근 동향 파악 및 역량 증진을 위하여 SOSP 2017에 참석 하였다.

hth_sosp

SOSP는 SIGOPS 및 USENIX에서 주관하는 국제학술대회로서 2년에 한번 씩 개최된다. SOSP는 컴퓨터 시스템과 관련된 이론적인 연구를 추구한다. SOSP에서는 네트워크, 운영체제, 스토리지 시스템, 보안, 가상화 등 컴퓨터 시스템과 관련된 다양한 주제를 다룬다.

이번 출장을 통해 메이저 학회의 진행 과정 및 발표자의 발표 기술을 배우고, 유명 인사를 만나고, 학회장의 분위기 등 느낄 수 있었다. 학회 중간 쉬는 시간 및 포스터 세션에서 유명 인사와 마주한 것만으로도 동기부여가 되었다. 또한 발표자들의 발표자료를 보았을 때 청중을 위해서 형식보다는 내용을 알 기 쉽게 전달하기위해 발표자료를 만들려고 노력했다는 느낌을 받았다. 또한 일부 발표자의 경우 발표하는 속도를 보았을 때 너무 빨리 말하여 한국말로 말해도 이해 할 수 있을 까 하는 의구심이 들었지만, 그만 큼 자기 연구에 대한 이해가 완벽하기 때문에 빨리 말할 수도 있다는 생각이 들었다.

이번 학회에서 발표된 논문 중에는 현재 연구주제와 관련된 세 편의 논문이 있었다. 첫 번째로, NOVA-fortis 파일시스템은 사용자에게 consistent backup을 제공하기 위해 snapshots 기능을 제공하고, 시스템 fault로부터 파일시스템을 보호하기 위해 replication, checksums, and RAID-4 parity protection를 제공한다. log structured 기반의 nova에 snapshots의 기능을 추가한 nova-fortis는 사용자가 특정 api를 통해 스냅샷을 요청할 경우 file log를 가리키는 snapshot manifest를 생성한다. 미디어 error를 발견하기 위해서 nova-fortis는 nvm read시 memcpy_mcsafe() 함수를 사용하고, 해당 함수는 HW를 통해서 미디어 error를 발견해준다. 메타데이터를 보호하기 위해서 nova-fortis는 replication 및 crc32 checksum을 사용한다. 또한 파일 데이터를 보호하기 위해서 nova-fortis는 raid-4 parity protection 및 checksum을 사용한다.

Q: [NOVA-fortis] 기존 nova는 log structured이고 nova-fortis는 nova에 snapshot 기능을 추가하였는데 log cleaner thread가 snapshot에 저장되어 있는 log를 회수해가면 snapshot이 깨지는 것 아닌가?
A: log cleaning이 snapshot과 independent하게 동작하기 위해서 log cleaning은 최신 버전의 snapshot에서만 동작한다. 예전 snapshot에 포함된 log들은 snapshot이 지워질 때 회수된다.

두 번째로, strata 논문은 dram, nvm, ssd 여러 스토리지를 사용하여 각각의 장점을 활용하였다. strata는 small, random write로 인한 ssd의 성능 하락을 막기 위해 log structured 방식으로 사용자 계층에서 로깅을 수행하는 lib fs 두었다. 사용자 계층에서 로깅된 데이터는 비동기적으로 백그라운드 쓰레드에 의해 sequential 하게 ssd로 flush 된다. 해당 과정은 fragmentaion 및 write amplification을 줄였다. 해당 논문에서 실험비교 대상으로 ext4-dax가 사용되었는데 filebench 등에서 ext4를 사용시 ext4가 dax 모드로 동작하게 하는 설정 등을 일부 들을 수 있었고, 자세한 설정 방법에 대해서는 추후 메일로 문의를 드리기로 하였다.

세 번째로, KV-Direct 논문은 programmable NIC를 사용하여 rdma 연산을 제공하는 in-memory key-value store를 제안하였다. 기존 two-sided rdma 방식은 cpu 성능에 bound 되는 문제점을 가지고 있고, one-sided rdma 방식은 get 연산시 빠른 성능을 나타내지만 put 연산시 갱신되는 kv로 인해 높은 communication 과 synchronization 과부하를 가지고 있다. 해당 논문은 두 방식의 문제점을 해결하기 위해서 one-sided rdma 방식을 확장하여, put 연산시 발생하는 kv 갱신을 server (host)의 cpu가 아닌 programmable NIC내에서 수행하도록 하였다. kv 데이터들은 programmable NIC내의 on-board dram에 캐시처럼 저장된다. 해당 논문은 programmable NIC내의 dram에 있는 kv 데이터를 host의 메모리로 옮기는 과정에서 발생하는 pcie traffic을 최적화 하기 위해서 새로운 해시 테이블, 메모리 할당자 등을 제안하였다.

이번 SOSP 2017 학회 참석을 통해서 NVM 및 컴퓨터시스템 관련 연구의 최신 동향을 파악할 수 있었다. SOSP에서 발표된 논문들을 고려하여 연구 주제 방향을 결정하는데 많은 도움이 되었다고 생각한다.