The ACM SOSP 에서는 OS 기술과 관련한 굉장히 다양한 기술들이 발표되었다. 평소에 관심이 있던 스토리지나 분산 시스템과 관련된 기술 들 뿐만 아니라 머신러닝 스케쥴링 테크닉, 네트워크, 보안과 관련한 주제까지 다양한 논문을 접할 수 있는 기회였다. 이 중에도 유독 흥미로웠던 논문들은 아래와 같다.
먼저 ‘KVell : the Design and Implemetaion of a Fast Persistent Key-Value Store’ 이다. 매우 빠른 스토리지 상에서 key value store의 성능을 향상시키는 방법에 대한 논문이다. 실제로 key value store는 빠른 storage 에서 사용할 때, device bottleneck 보다는 CPU utilizaion 의 bottleneck 로 인해 performance 저하가 나타난다. 이는 hardware 상에서 data 의 ordering 을 보장하기 위해서 사용하는 기술인 LSM 이나 B-tree 가 CPU 점유율이 상당히 높기 때문이라고 설명하고 있다. 따라서 해당 논문에서는 이를 해결하기 위해 ordering 보장 없이 write 를 진행할 뿐만 아니라 KV store 자체를 여러 subset 으로 나누어 구분하여 사용하였다. 또, read와 write 를 user space 에서 진행하여 context switch overhead 또한, 해결하였다. 해당 기술은 원하는 데이터의 위치를 찾기 위해 device 를 all scan 하여 memory 상의 index 구조체를 만들어 관리한다. 실제로 이 scan 시간에 대해 질문을 했는데 100 GB 당 few seconds 가 걸린다 하였고 하지만, 메모리 사용량이 좀 많아진다는 문제에 대해 언급을 했었다.
그 다음은 ‘Scalable and Practical Locking with Shuffling’ 이다. CPU memory cache 와 lock scheduling 을 섞어 좀 더 caching 상으로 효율적인 lock algorithm design 에 관한 논문이였다. 논문에서는 cache 안에서의 data의 움직임에 대해서 생각하고 memory 사용량까지 생각하여 효율적인 locking 을 고안해냈다. single list 로 관리되는 wait thread 에서 같은 NUMA socket 을 먼저 처리하게 함으로써 data caching 에 대한 효율을 극대화 시켰다. 그리고 wait queue 를 관리하는 shuffling 도 다른 thread 를 만들어 관리를 하지 않고 lock 을 기다리는 thread 에 의해서 처리하는 점도 괜찮은 아이디어라고 생각되었다. poster session 에서 single list 가 memory 사용량에 큰 도움이 된다하여 자세히 설명해달라고 질문하였지만 이 기술과 비교되는 다른 기술들에 대해서 자세히 아는 것이 없어 이해가 힘들었다. 만약 기회가 된다면 이 논문에서 자주 비교하는 MCS, CAN 그리고 CST locking 기술에 대해서 더 알고 싶다.
마지막으로는 ‘File Systems Unfit as Distributed Storage Backends : Lessons from 10 Years of Ceph Evolution’ 이다. Ceph에서 storage backend 에서 사용하는 data 저장용 engine 변화에 대한 논문이다. 결론부터 빠르게 말하지만 Ceph에서는 backend에 기존의 local filesystem을 사용하는 것이 비효율적이라고 생각했다. 그래서 Bluestore 라는 간결한 분산시스템 storage server 용 filesystem을 개발하였다. 그리고 이 논문은 이 bluestore의 개발 배경 및 구현 방식에 대해 설명하고 있다. local filesystem 에서 사용하는 writeback, readahead 그리고 복잡한 metadata 구성은 오히려 Ceph 의 complexity 만 늘려 overhead 를 증가시켰다. 그리고 atomicity 를 보장하는 방법 또한, Ceph에 대해서는 매우 복잡했다. 그리고 Ceph 는 data 는 user space 에서 직접 수정하고, metadata 는 BlueFS 위에서 사용되는 RocksDB로 관리하는 Bluestore 라는 것을 만들게 된다. 직접 data 를 관리하여 overhead와 complexity 를 동시에 줄이고 매우 단순한 형태의 metadata 구조를 가진 BlueFS 로 RocksDB 를 만들어 metadata 를 관리하면서 atomicity도 효율적으로 보장하였다. 또한, 이 과정에서 COPY-on-WRITE 기술을 통한 checksum, clone 등의 기술의 성능을 향상시켰다. 여러 종류의 기기들을 통합을 관리하는 기술인 SMR drive 도 사용할 수 있게 되어 좀 더 분산시스템에 들어맞는 Filesystem이라 설명하고 있다.
1. 결론
SOSP는 다양한 성능 측정 방법, 새로운 아이디어, 요즘 세계에서 관심을 가지는 기술들까지 전부 새로운 것을 많이 듣고 볼 수 있어 좋은 기회가 되었다. 아직 bug를 어떻게 찾는지에 관한 내용이나 linux core system 의 발전, User space 와 Kernle 의 효율적 분리에 대한 논문도 읽어보고 싶다. 아직 아는 것이 부족하여 많은 것이 새로웠지만 알고 싶은 것도 많아지는 계기가 되어 좋은 경험이었다. 이 경험이 앞으로의 연구실 생활의 보탬이 되고, 또 스스로의 연구에서 연구 방향을 정하는 데 도움을 줄 것이다.