미국 산타 클라라에서 매년 2월 국제 학회가 개최된다. 학회의 이름은 USENIX Conference on File and Storage Technologies(이하 FAST)다. 파일 및 스토리지 분야의 최우수 학회다. 올해가 2022년이니 FAST 2022 (FAST ‘22) 가 된다. FAST ‘22에 논문을 게재하고 발표할 기회가 생겼다. 연구실의 지원, 그리고 학회의 지원을 받아 7일간 (2/20 ~ 2/27) 출장을 갔다.

FAST는 이전에도 참석해봤지만 논문 발표자로 참석한 것은 이번이 처음이다. 발표가 끝나기 전까지는 학회의 모든 것들이 눈에 들어오지 않았다. 발표 준비에만 몰두했던 것 같다. 잠을 거의 자지 못했다. 발표자료 교정 때문에 교수님까지도 밤을 지새우셨다. 발표 당일 큰 실수 없이 발표를 마무리했다. 발표 후 받은 질문은 총 3개였다.

 

Q1. Shadow Page Cache의 크기는 얼마로 설정했는지?

A1. Shadow Page Cache의 크기는 고정되어 있지 않다. Shadow Page Cache의 implementation은 struct address_space 타입의 페이지 관리용 radix tree다. 필요한 만큼 크기가 증가할 것이다. 단, 최대 크기는 2MB (세그먼트 크기) 다. 이는 Shadow Garbage Collection이 한 번에 하나의 세그먼트를 수집하기 때문이다.

 

Q2. Failure-atomicity는 어떻게 보장하는지?

A2. 커밋 동작 마지막에 마스터 커밋 블록을 쓸 때, REQ_PREFLUSH | REQ_FUA 플래그를 붙인다. 크래시가 발생하면 복구 모듈이 실행된다. 복구 모듈이 마스터 커밋 블록을 찾으면, 이는 트랜잭션 내용이 전부 안전하게 저장되어있음을 의미한다. REQ_PREFLUSH에 의해서 플러쉬되었기 때문이다. 마스터 커밋 블록은 트랜잭션에 속한 파일들의 노드 블록 포인터를 갖고 있다. 각 노드 블록들은 트랜잭션에 속한 데이터 블록들의 블록 포인터를 갖고 있다. 블록 포인터들을 통해서 트랜잭션 내용을 전부 스토리지에서 찾아 복구할 수 있다.

 

Q3. Stealing과 Delayed invalidation은 스토리지 공간을 더 사용하고, Shadow Garbage Collection은 메모리를 더 사용할 것 같은데, 이 사용량이 얼마나 될지?

A3. Stealing과 Delayed invalidation이 스토리지 공간을 더 사용하는 것은 맞으나, 많지 않을 것으로 생각된다. 현재 Stealing은 데이터 페이지 하나 당 두 개의 버전만 유지하기 때문이다. 하나의 데이터 페이지가 여러 번 Stealing되면 해당 데이터 페이지의 가장 old 버전과 가장 최신 버전만 valid 상태로 유지된다. Shadow Garbage Collection의 경우, 최대 2MB 메모리 공간을 추가로 사용한다 (이유는 A2 참조).

 

논문을 발표하고 나서 다른 논문 발표를 들었다. 그 중 가장 관심있던 논문은 “CacheSifter: Sifting Cache Files for Boosted Mobile Performance and Lifetime”다. 캐시 파일을 수명, 사용 빈도에 따라 3가지 분류로 나누고, 분류에 따라 스토리지 저장 여부를 결정하는 논문이었다. 이를 통해 쓰기량을 크게 줄일 수 있었다고 한다. 캐시 파일의 분류를 정할 때 딥러닝을 사용했다고 한다. 딥러닝을 모바일 스토리지 문제에 적절하게 접목한 사례라고 생각되어 관심이 갔다.

학회가 끝나고, 샌프란시스코에 갔다. 여행 경로는 “차이나 타운” -> “롬바드 스트릿” -> “피어 39” -> “금문교” 였다. 코로나 시국이라 그런지 차이나 타운은 평소와 다르게 조용했다. 차이나 타운에서 롬바드 스트릿을 지나 피어 39으로 갔다. 여기는 아직 관광지 같았다. 사람들이 꽤 있고 생기가 있다. 피어 39에서 늦은 점심으로 해산물 요리를 먹었다. 나는 게와 새우를 먹지 못해 파스타를 시켜 따로 먹었다.

마지막 코스는 금문교였다. 처음 FAST 출장을 가서 교수님이 찍어주신 사진이 있다. 다른 친구들이 그 사진을 재현해주기 위해 회의를 시작했다. 아래는 그 결과물이다.

마지막 날에는 산호세에서 엔지니어로 근무중인 선배들 (김종민 선배님, 정재민 선배님) 을 만났다. 한식집 장수장에서 밥을 사주시고 옆에 있는 파리바게트에서 커피를 마시면서 박사 졸업 후 진로와 산업계의 분위기, 연구 방향 등에 대해서 조언을 들을 수 있었다.

이번 FAST ‘22 출장은 고되었다. 나만 고된 것이 아니었다. 밤을 새워가며 부족한 발표자료를 봐주시고 교정해주신 교수님께도 고되었다. 나랑 같이 발표자료를 준비하던 도현이에게도 고되었을 것이고, 포스터 발표 준비를 하던 Infinite LBA 팀에게도 고되었을 것이다. 하지만, 고된 것이 아깝지 않을만큼 귀한 경험들을 한 것은 분명하다. 이 경험들을 양분삼아 일상에 복귀해서도 정진하도록 마음을 다잡아야겠다.