2018 USENIX Annual Technical Conference (이하 ATC‘18)은 전반적인 컴퓨터 시스템 분야를 다루는 저명한 국제 학술 대회이다. 1992년부터 매년 개최되어 오면서 컴퓨터 시스템 분야에 크게 공헌을 해왔다. 해당 학술대회에 게재되는 논문을 발표하는 세션인 Technical Session에서는 총 20개의 주제의 세션에서 76편의 논문이 발표되었다. 그 중 Best paper 는 총 3편으로 파일 시스템 분야에서 한편이 선정되었다. 이번에 발표되는 논문들 중 파일 시스템 및 Embedded DBMS 관련된 논문을 공부하고 저자와 토론을 하였다. 또한, 이번 학회에서 Poster Session에 참여하여 다양한 사람들과 토론하여 향후 진행할 연구에 도움이 되도록 하고 새로운 분야의 지식들과 연구주제들에 대해 학습하였다. 금번 학회에서는 다양한 주제가 등장하였는데, 그 중 3가지 논문이 관심에 들었다.
첫번째 논문은 서울 대학교에서 발표한 논문인 “FastTrack: Foreground App-Aware I/O Management for Improving User Experience of Android Smartphones” 이다. 논문의 내용은 다음과 같다. Android smartphone에서 I/O동작은 크게 두가지로 나눌 수 있다. User의 사용으로 인해 발생하는 foreground I/O 와 application의 필요에 의해 발생하는 background I/O 두 가지로 나눌 수 있다. User의 input으로 발생하는 foreground I/O 같은 경우 user에게 직접적인 영향을 미친다. 즉, foreground I/O가 빠르게 처리되면 처리될수록 사용자에게 빠르게 service를 제공할 수 있다. 하지만 현재 android platform 같은 경우 background I/O 동작으로 인해 foreground I/O 처리가 delay되는 현상이 발생한다. 본 논문에서는 이 문제를 식별하고 해결하기 위해 FastTrack이라는 기법을 제안하고 delay현상을 제거하였다. 논문을 읽으며, 궁금한 점이 몇 가지 생겼는데, 그 부분을 저자에게 물어보았다.
- Q: Foreground IO 자원을 선점적으로 사용하게 된다면 starvation이 생길 것 같은데, 그 부분에 대해서는 혹시 연구한 부분이 있는가?
- A: 저희가 연구할 때, 그 부분이 이슈였습니다. Starvation이 발생하긴 하는데, 조사한 바로는 심하게 발생하지 않습니다. 하지만 분명 해결해야하는 문제다. Starvation 문제를 해결하는 것은 추후 연구를 진행할 것입니다.
- Q: Foreground IO 와 Background IO를 system call에서 구별하나요?
- A: System call에서 Pid를 통해 구별합니다. Foreground process같은 경우 activity manger를 통해 process들이 동작합니다. 즉, background IO 의 pid 와 foreground IO 의 pid가 다르게 나타나게 됩니다.
- Q: Background IO에 dependency가 있는 Foreground IO는 어떻게 처리되나요?
- A: 저희가 조사한 trace에서는 그러한 상황은 발생하지 않는 것을 확인했습니다. Background IO의 경우, Foreground IO에 영향을 끼칠 경우, Background IO에 더 우선순위가 부여되기 때문일 것으로 추정됩니다.
두번째 논문은 프랑스 EPFL에서 발표한 논문인 “The Battle of the Schedulers: FreeBSD ULE vs. Linux CFS” 이다. 본 논문은 CPU scheduler의 구현에 따라 application의 성능을 비교한 논문이다. Linux CFS, FreeBSD ULE 두 scheduler 를 사용해 성능을 비교하였다. CFS 같은 경우 Linux에서 현재 default사용하고 있다. ULE 같은 경우 오픈소스 운영체제인 FreeBSD의 scheduler이다. 본 논문에서는 동일한 환경에서 실험하기 위해 Linux에 ULE scheduler를 포팅했다. 두 scheduler를 비교해 본 결과 워크로드 환경에 따라 scheduler 별 성능이 다르게 나타나는 것을 확인했다. 분석을 통해 몇 가지 특징들을 발견했는데 그 중 가장 흥미로운 점은 ULE같은 경우 single application에서도 동일한 thread로 실험했을 때 starvation현상이 식별된다는 점이다. 논문을 보면서 궁금한 점을 Poster Session을 통해 물어보았다.
- Q: 포팅하는게 힘들었을 것 같은데, 혹시 linux version은 어떤 것으로 진행 했나요? Version은 하나만 사용하셨나요?
- A: 네, version은 하나만 사용하였고 linux 4.9 version에 포팅을 하였습니다. 현재 github를 통해 open source로 ULE 포팅한 linux를 공개하였습니다.
세번째 논문은 미국 Stanford 대학교에서 발표한 논문인 “Understanding Ephemeral Storage for Serverless Analytics”이다. 본 논문은 serverless computing platform (e.g AWS Lambda, Google platform 등) 에서 task 간 공유하는 데이터들을 좀 더 효율적으로 다루기 위한 분석 논문이다. 논문에서 분석한 Storage는 AWS 의 S3와 Redis를 이용해 비교하였다. Serverless computing 에 대한 배경지식이 부족하여 논문을 읽을 때 이해 안되는 점들이 많이 있었고 궁금한 점들이 있었다. Poster Session을 통해 저자에게 물어보았다.
- Q: Serverless computing 에 대해 잘 알지 못하는 부분이 있는데요, 혹시 사용하신 분석도구 툴이 궁금합니다.
- A: 네 본 논문에서는 cmake 와 gg를 이용해서 분석하였습니다. IO storage를 분석할 때는 위 두개의 툴을 사용합니다. 하지만 최근들어 다른 분석도구들도 많이 등장하고 있습니다. Github를 통해 검색해보거나 goolge을 통해 알아보는 것을 추천합니다.
- Q: Serverless computing 에서 task간의 공유하는 부분에서 좀 더 효율적으로 다루겠다는 주장을 하셨는데, task 관련해서는 storage 말고도 다른 요인들도 영향을 끼치지 않나요?
- A: 네, 맞습니다. 다른 요인들을 저희도 고려하고 있습니다. 다만, 현재는 storage관련해서 분석이 완료되었습니다. 그 문제 같은 경우 저희 future work로 고려하고 있는 부분입니다.
이번 ATC’18 을 통해 정말 많은 걸 느꼈다. 논문 주제들도 정말 다양하고 특히, 여러사람들과 네트워킹을 통해 대화를 해봤을 때, 사람들의 이해도나 연구에 대해 추상적으로 설명하는 깊이가 정말 놀라웠다. 학회를 통해 좀 더 열심히 연구에 매진 해야한다는 것을 한번 더 느낄 수 있는 계기가 된 것 같다.