IMG_20180712_1021422018 USENIX Annual Technical Conference (이하 ATC‘18)은 전반적인 컴퓨터 시스템 분야를 다루는 저명한 국제 학술 대회이다. 1992년부터 매년 개최되어 오면서 컴퓨터 시스템 분야에 크게 공헌을 해왔다. 해당 학술대회에 게재되는 논문을 발표하는 세션인 Technical Session에서는 총 20개의 주제의 세션에서 76편의 논문이 발표되었다. 이번에 발표되는 논문 중 파일 시스템 및 스토리지와 관련된 논문을 공부하고, 저자와 토론하여 앞으로의 연구에 도움이 되도록 하며, 그 밖의 논문에 대한 지식을 습득함으로써 최신 연구 동향을 파악한다.

ATC ’18 Technical Session 및 Poster Session에 참여하여 ATC ‘18에서 발표되는 논문 지식을 습득하고, 논문 저자 및 컴퓨터 과학계의 권위자들과 연구 분야의 지식을 공유함으로써 본인이 연구하고 있는 주제에 대해서 feedback을 받고, 최신 연구 동향을 파악하였다. 총 3개의 논문을 주의 깊게 보았다.

첫번째 논문은 서울 대학교에서 발표한 논문인 “FastTrack: Foreground App-Aware I/O Management for Improving User Experience of Android Smartphones” 이었다. 안드로이드 스마트폰에서 사용자 시점에서의 성능에 직접 영향을 끼치는 Foreground App의 IO에 우선순위를 더 두어 사용자 시점에서의 App의 성능을 향상시키는 연구에 대한 논문이었다. 몇가지 질문 사항이 있어서 저자와 토론하였다. 질의응답 내용은 다음과 같다.

  • Q: 각 Layer별 소요 시간을 측정하셨는데, 어떻게 측정하신 건가요?
  • A: IOPro라는 툴을 사용했습니다. 각 layer의 시작과 끝을 담당하는 함수에 타임 스탬프를 찍어서 각 Layer 별 소요 시간을 측정하는 툴입니다.. 예를 들어서, 블록 레이어의 경우는 submit_bio() 와 scsi_request_fn() 에 타임 스탬프를 찍어서 블록 레이어에서 소요되는 시간을 측정합니다.
  • 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” 이었다. FreeBSD의 기본 태스크 스케줄러인 ULE와 리눅스의 기본 태스크 스케줄러인 CFS 를 비교 분석하는 논문이었다. 서로 다른 운영 체제에 구현되어 있는 스케줄러를 비교하는 것이 최초이고, ULE를 리눅스에 포팅하여 비교하였기에 관심이 갔다. 질의 응답 내용은 다음과 같다.

  • Q: Adaptive scheduling 같은 것은 생각 안해보셨나요? 예를 들어서, kernel run time에서 어떤 워크로드가 주로 수행되는지 기록하고, kernel 이 다시 부팅될 때, 이전에 기록했던 워크로드 정보, 하드웨어 정보 등을 읽고, 어떤 스케줄러를 사용하는 것이 적합한지 판단 후, 해당 스케줄러를 사용하도록 커널이 부팅될 수 있을 것 같습니다.
  • A: 충분히 가능할 것으로 보이는 Future work입니다. 저희 논문에서 언급했듯이, CFS와 ULE는 각각 장단점이 있는 스케줄러이기 때문에, 좋은 기능이 될 것으로 보입니다.

세번째 논문은 Texas at Austin에 있는 Vijay Chidambaram 교수님의 연구실에서 나온 “TxFS: Leveraging File-System Crash Consistency to Provide ACID Transactions” 논문이었다. 해당 논문은 베스트 페이퍼로 선정되기도 했다. 현대 파일 시스템에는 없는 기능인 Multi File에 대한 Transactional write 기능을 추가하는 논문이다. 해당 논문에서는 EXT4에 구현하였다. 질의 응답 내용은 다음과 같다.

  • Q: 데이터 모드 저널링이랑 해당 기술의 차이점이 무엇인가요?
  • A: 가장 큰 차이는 고립성 보장 여부입니다. 데이터 모드 저널링은 하나의 global running transaction을 사용하기 때문에, 각 트랜잭션들의 고립성을 보장할 수가 없습니다.
  • Q: 만약 한 페이지가 3개의 트랜잭션에 대해서 conflict를 발생시키면 어떻게 되나요? 예를 들어서, 한 페이지가 이미 committing transaction에 속해 있고, Thread 1이 해당 페이지를 자신의 local running transaction에 포함시키려고 하고, Tread 2 또한 해당 페이지를 자신의 local running transaction에 포함시키려고 하면, 어떻게 되나요?
  • A: 해당 논문의 핵심 기술 중 하나입니다. conflict page layer가 있고, 해당 layer가 그러한 conflict 를 해결해줍니다. 정확히는 페이지의 shadow data를 local transaction마다 두어 해결합니다.
  • Q: 저널 트랜잭션은 포함할 수 있는 데이터의 크기가 한정되어 있는데, 이는 TxFS에서 atomic transaction에 속할 수 있는 트랜잭션의 크기에 직접적 영향을 끼칠 것 같습니다.
  • A: 맞습니다. TxFS의 한계 중 하나입니다. 하지만, 이는 커널 설정으로 얼마든지 변경할 수 있고, default size도 상당히 크기 때문에, 크게 문제가 되지 않을 것으로 보입니다.

KakaoTalk_Photo_2018-07-22-12-11-41

그 밖에도 많은 논문들이 학회를 빛내 주었다. 특히, TxFS 논문은 내가 현재 진행중인 연구 내용과 매우 밀접한 관련이 있어서 큰 흥미가 갔다.