unnamed

ATC ’17은 컴퓨터 과학 분야의 전반적인 주제를 다루며, 1992년무터 매년 개최된 저명한 국제 학술 대회입니다. 이번 ATC ‘17에서는 총 특히 이번에 발표되는 논문 중 파일 시스템에서의scalability를 해결하고자 하는 논문 혹은 스마트폰에서의 파일 시스템 성능을 개선하고자 하는 논문이 발표되어 앞으로의 연구에 도움이 되고, 그 밖의 논문에 대한 지식을 습득함으로써 최신 연구 동향을 파악할 수 있었습니다.

3개의 논문이 눈에 띄었습니다.

첫 번째는 성균관 대학교에서 발표한 논문인 “iJournaling: Fine-Grained Journaling for Improving the Latency of Fsync System Call” 이었습니다. 현재 Ext4에는 Compound Transaction이라는 문제가 존재합니다.  A라는 파일의 메타데이터만 저널 커밋할 때, 관련 없는 파일들의 메타데이터도 커밋되는 문제입니다. 이를 해결하고, Ext4의 Scalability를 좀더 높이는 시도를 한 논문이 바로 iJournling 논문입니다. 이 논문에서는 iJournal 영역을 추가하여, A라는 파일을 커밋할 때, running transaction으로부터 A의 메타데이터를 복사하여 iTransaction을 구성합니다. iTransaction은core마다 존재하는 iJournal 영역에 쓰여집니다. 시스템이 crash되면, iJournal영역에 commit된 iTransaction을 찾고, 메타데이터 변경 정보를 replay함으로써 crash recovery를 합니다. 여기서iJournal 영역이 core마다 존재한다는 디자인에 의구심이 들었습니다. iJournal 영역 전체 크기가 고정되어 있다면, core의 개수가 매우 많을 때, core당 iJournal 영역의 크기가 매우 작아질 것이며, core 당 iJournal 영역의 크기가 고정되어 있다면, 다른 영역이 침범되는 문제가 발생할 수 있다고 생각했기 때문입니다. 저자에게 이 문제점을 질문한 결과, iJournal 영역들은 연속되지 않은 파일이며, 파일 시스템이 마운트될 때마다 core의 개수에 따라 생성되고 삭제된다는 답변을 들었습니다. 하지만 여전히, space 부족 문제는 발생할 수 있다고 한다.

두 번째는 서울 대학교에서 발표한 논문인 “Improving File System Performance of Mobile Storage Systems Using a Decoupled Defragmenter” 이었습니다. 해당 논문은 플래시 스토리지에서 조각모음을 해야 하며, 플래시 스토리지를 사용하는 스마트폰에서 조각모음을 하는 데몬인 janusd를 개발하는 논문이었습니다. 원래 조각 모음은 하드 디스크의 seek time을 줄이는 것이 목적인 작업입니다. seek time이 없는 플래시 스토리지에서는 불필요하고, 플래시의 수명을 줄일 수 있기 때문에, 플래시 스토리지에서 조각 모음을 하는 것은 비효율적이라는 사실이 학계의 정론이었습니다. 하지만, 파일의 offset과 LBA주소가 어긋날 경우, request를 구성할 때, request merge 효율이 줄어 request의 개수가 많아지기 때문에, File system Performance가 안 좋아질 수 있습니다. 그래서 해당 논문에서는 플래시 스토리지에서의 조각 모음의 필요성을 강조하며, 조각 모음을 하는 데몬인 janusd을 개발하고, 일정 주기로 조각 모음을 하도록 하였습니다. 하지만, 여전히 플래시의 수명이 줄어들 수 있다는 문제는 존재합니다. 논문에도 나와있고, 저자에게도 질문을 한 결과, FTL을 수정하여 조각 모음 시, Logical Block Address와 Physical Block Address의 맵핑 정보만을 변경하여 플래시 칩에 대한 쓰기를 없앴다고 합니다. Storage Level의 동작이 좀 더 궁금했지만, 다른 분의 질문에서 Storage Level은 삼성에서 개발했기 때문에 자세하게 모른다는 답변이 나왔습니다.

세번째는 “Log-Structured Non-Volatile Main Memory” 입니다. Mnemosyne과 같은 기존 Non-Volatile Main Memory Manager들은 단편화 문제가 있습니다. 사용자에게 필요한 만큼의 청크를 할당해주는데, 청크를 할당해주고, 해제하는 것을 반복하다보면, 중간에 사용하지 않는 영역들이 간헐적으로 생길 것이고, 그 간헐적으로 존재하는 공간들 중, 사용자가 요청한 청크의 크기보다 큰 공간이 없다면, 즉, 외부 단편화가 발생한다면, 사용하지 않는 영역이 충분히 있는데도, 청크를 제공하지 못하거나, 사용하는 영역을 압축하는 오버헤드가 커지는 문제가 발생할 수 있습니다. 이를 해결하기 위해, 청크 할당을 Log-Structured 방식으로 변경하여 사용하는 영역의 압축이 더욱 쉬워지도록 하는 것이 이 논문의 주제입니다.

Poster Session 및 break time에는 논문의 저자 혹은 컴퓨터 과학계의 권위자들과 지식을 공유하는 시간을 갖을 수 있었습니다. 본 학회에서 발표된 논문인 “Falcon: Scaling IO Performance in Multi-SSD Volumes”의 저자인 Pradeep Kumar와 대화할 수 있었습니다. 본 논문은 다수의 쓰레드가 SSD로 구성된 RAID 0 파티션에 IO를 발생시킬 때, IO Scheduling을 효율적으로 한다는 내용의 논문이었습니다. 평소 다수의 쓰레드의 IO에 대한 관심이 있었기에 관심을 가졌고, 본 논문과 파일 시스템에서의 비슷한 문제에 대해서 공유하는 시간을 가졌습니다. 또, 메일 주소를 공유하고, 추후 연락을 하며, 서로의 지식을 공유하기로 하였습니다. Northeastern University의 교수인 Peter Desnoyers와도 나의 연구 주제에 대해서 얘기를 하는 기회가 있었습니다. Peter 교수님은 나의 연구 주제가 무엇인지를 질문하였고, 나의 연구 주제 중 하나인 Dirty Throttling에 대해서 설명하였습니다. Peter 교수님은 그 주제에 대해서 들은 적이 있다고 하면서, 그 연구 주제에 대해서 본인이 알고 있는 것, 그리고 생각을 말해주었습니다. Ext4의 Maintainer인 Theodore  Th’o와는 대화는 하지 못하였지만, 교수님과 대화하는 것을 들음으로써 Theodore Th’o의 생각을 들을 수 있었습니다. F2FS에 대한 생각을 들을 수 있었는데, 얼리어댑터들의 workload 결과에 의해 F2FS의 인기가 좋아지고 있지만, 그 workload 결과는 파일 시스템 초기 상태에 관한 workload 결과들이 많으므로, Garbage Collection이 동작할 때의 F2FS의 성능이 매우 중요하다고 하였습니다. 또한, Dirty Throttling에서 사용되는 휴리스틱 수식은 문제가 있는 것으로 유명하며, 해결하기 쉽지 않은 문제라는 의견도 들을 수 있었습니다.

전체적으로 Docker에서의 성능 개선을 보이는 논문들이 눈에 띄었습니다. Docker는 컨테이너 기반의 가상화 도구입니다. 운영 체제 위에서 또 다른 운영 체제를 실행하여 성능 면에서 손실이 많은 가상 머신과 달리 어플리케이션 컨테이너를 생성하여 독립성만을 제공해주는 가상화 도구입니다. 클라우드 시스템의 인기에 힘입어, 빠른 성능을 유지해주면서, 독립성을 제공해주는 Docker에 대한 관심이 높아지고 있는 것 같았습니다.

작년 FAST ‘16에 참여할 때는 읽은 논문의 숫자도 적고, 학회에 참여한 적도 없는 경험 없는 학생이었습니다. 그래서, 선배들이나 교수님을 따라다니기 바쁘고, Poster Session에서는 무슨 내용인지도 모르면서 열심히 보고 열심히 질문하며 저자들을 괴롭히고 다녔었습니다. 하지만, 그로부터 1년동안 공부한 지금 ATC ‘17에 참여했을 때는 조금 나아졌다는 것을 나조차도 느낄 수 있었습니다. 관심있는 논문을 선정하여 숙독하고 참여하고, 작년에는 이름도 몰랐던 권위자들의 의견을 들을 수 있었으며, 나의 의견이나 연구 주제도 말해볼 수 있었습니다. 질문 또한 1년 전보다 더 성숙한 질문들을 할 수 있었다고 생각됩니다. 하지만 아직 부족함을 많이 느낍니다. 하지만, 1년동안 성장한 만큼 앞으로 더욱 더 성장하여 학회에서 얻는 지식들을 흘리지 않고자 합니다.