유진수 군은, 컴퓨팅 관련 최근 동향 파악 및 역량 증진을 위하여 ATC 2016에 참석 하였다.

IMG_1049

IMG_1024 (2)

IMG_1034

USENIX Annual Technical Conference (ATC) 는 세계 각국의 학교와 기업에서 참여하여 시스템, 클라우드 컴퓨팅, 네트워크, 모바일 등, 광범위한 주제에 대한 최신 연구 내용을 발표하며, 이에 대해 토론하고 공유하는 대규모의 학술 대회이다. 이번 ATC 2016은 6월 22일부터 24일까지 3일간 진행되었으며, HotCloud’16, HotStorage’16 그리고 SOUP’16 학회가 Co-located Events로 함께 개최되었다. 우리는 스토리지 시스템, 파일 시스템을 포함한 최신 연구 동향을 살펴보고자 ATC 2016학회에 참석하였다. ATC 2016은 Denver Marriott City Center에서 진행되었으며, 총 12개의 Technical Session에서 논문 47건, 포스터 17건, Industry Talk 5편이 발표되었다. 또한 Best of the Rest Session에서는 FAST’16, SOSP’15, NSDI’16 학회 등에서 Best paper로 선정된 논문 11편의 발표가 진행되었다.

IMG_1048

IMG_1026

학회 첫째 날에 진행된 File and Key-Value Systems Session에서 Tsinghua University의 “ParaFS: A Log-Structured File System to Exploit the Internal Parallelism of Flash Devices” [3]가 발표되었다. 저자는 파일시스템의 Hot/Cold Classification, Garbage Collection 동작이 SSD의 내부 병렬화 동작에 의해서 무효화되거나 비효율적인 동작을 보인다는 점에 주목하였다. 예를 들어 파일시스템에서 동일한 세그먼트에 Grouping한 Hot 데이터들이 SSD의 병렬화 정책에 의하여 서로 다른 플래시 메모리에 흩뿌려져 저장될 수 있다. 또는 파일시스템의 세그먼트 내의 무효 페이지 (Invalid Page)가 SSD의 여러 채널에 흩어져 있을 수 있으며, 이는 SSD 가비지 컬렉션 동작의 효율을 낮추게 된다. 이러한 증상은 SSD가 더 많은 채널을 가질수록 심화된다. 이러한 문제를 해결하기 위하여 ParaFS는 SSD의 하드웨어 구조를 파일시스템이 알고 있는 시스템을 구성하였다. 파일시스템은 SSD의 채널을 ‘Region’ 이라는 Abstraction으로 관리한다. 각 Region에는 Allocation Heads가 있으며, 데이터는 hotness에 따라 서로 다른 Allocation Head가 가리키는 세그먼트에 저장한다. 이 때, multiple page 크기를 갖는 쓰기 요청이 발생하면, 쓰기 요청을 페이지 단위로 병렬화하여 각 region에 분배하되, 동일한 hotness를 갖는 segment들에 저장되도록 한다. 이러한 기법을 ‘2-D Data Allocation’ 이라 하며, 이를 통해 채널 병렬화를 활용하면서 동시에 데이터의 grouping이 깨지지 않도록 한다.

다른 흥미로운 논문으로는 Georgia Institute of Technology에서 발표한 “Understanding Manycore Scalability of File Systems” 논문이 있었다. 본 논문은 시스템의 Core 개수에 따른 파일시스템 성능의 Scalability를 살펴본 연구이다. 워크로드를 발생시키기 위한 benchmark 툴인 ‘FxMark’를 개발하였으며, 이 툴을 사용하여 tmpfs, ext4, XFS, btrfs, F2FS의 scalability를 확인하였다. FxMark는 프로세스간 데이터 공유 정도를 3단계 (Low, Medium, High)로 구분하고, Low는 각 프로세스가 서로 다른 파일에 접근, Medium은 각 프로세스가 하나의 파일에 접근하나 서로 다른 offset에 접근, High는 각 프로세스가 동일한 파일의 동일한 offset에 접근하도록 하였다. 몇 가지 분석을 살펴보면, 공유 정도를 high로 설정하고 각 프로세스가 읽기를 수행할 때 모든 파일시스템에서 성능 하락이 발생하였는데, 그 원인이 페이지 캐시에 있었다. 프로세스가 데이터를 읽을 때 페이지 캐시 hit이 발생하면, 해당 페이지의 reference count를 증가시키는데, reference count를 증가시키는 연산(atomic_inc(&page->_count))이 scalability bottleneck이 된다는 것이다. 데이터를 overwrite하는 워크로드에서는 공유 정도가 low일 때도 Ext4, F2FS, btrfs에서 성능하락이 발생하였다. 이 때는 새로운 데이터를 저장하기 위한 디스크 블록 할당 동작이 성능의 bottleneck 이었으며, F2FS (log-structured FS)와 btrfs(Cow FS)외에도 Ext4는 저널링 동작으로 인하여 블록 할당 bottleneck이 발생하였다. 각 파일시스템의 성능이 Core 개수에 따라 scalable하지 않은 이유를 다양한 워크로드에 따라 분석한 흥미로운 논문이었다.

6월 23일 오후 6시 30분부터 진행된 Poster Session에서는 Poster로 학회에 참석한 저자들뿐만 아니라 Technical Session에서 발표를 진행했던 저자들도 Poster를 준비하여 질의 응답을 받았다. Technical Session과는 달리, 많은 한국 학교에서 Poster Session에 참석하였다. 포항공대에서는 지난 FAST’16에 이어 이번 ATC’16에도 Poster Session에 참석하였다. 중복제거 동작으로 인해 파일 읽기 성능이 저하되는 문제점을 해결하기 위한 기법을 발표했던 FAST’16과는 달리, 이번 Poster Session에서는 Buffer Cache 관리 알고리즘을 발표하였다. Buffer Cache에 두어야 할 페이지들을 선별하는 기존 Buffer Cache 알고리즘[5][6]들과는 달리, 포항공대에서 발표한 Buffer Cache 관리 기법은 방출되어야 하는 데이터의 특성을 확인하고 이들을 걸러내는 알고리즘을 사용한다. 빈번하게 접근되지 않는 페이지는 재 접근 거리(Reuse distance)가 매우 짧거나 매우 긴 것을 확인하였고, Reuse distance를 기준으로 Buffer cache의 페이지 필터링 알고리즘을 제시하였다. Reuse distance의 단위에 대해 질문하였고, 단위는 재 접근될 때까지의 페이지 접근 명령어 수라고 답변 받았다. (즉, 다른 페이지 접근이 4번 발생 후에 해당 페이지에 재 접근 되었을 때 Reuse distance는 5). 본 포스터 외에도 네트워크 OS를 Build할 때, 필요한 component만을 사용하여 customizing하는 기법, 멀티코어 스마트폰에서 에너지 절감을 위한 CPU 활용기법 등 다양한 주제의 포스터들이 발표되었다.

이번 ATC 2016 학회 출장에서는 7개의 Technical Session에 참석하고, 포스터 Session에서 다양한 저자들과 만나 교류함으로써 세계 유수의 연구 기관들의 최신 연구 이슈에 대해서 확인하였다. 이번 학회에서도 파일시스템과 FTL 동작의 통합 관련 논문이 발표됨을 보고, 현재 연구실에서 진행 중인 Unified Storage Layer 연구가 많은 연구실에서 관심을 갖고 있는 주제임을 다시 한 번 확인하였다. Application Managed-Flash, ParaFS 논문과 Unified Storage Layer의 차이점을 다시 한 번 분석하고, 추가 기능 개발 및 빠른 학회 게재에 매진해야 함을 느꼈다.

 

본 학회 참석을 허락해 주신 교수님과 출장을 지원해준 BK21Plus 사업단에 감사의 말씀을 드린다.