SOSP 2023 CASYS Virtualization and isolation 내부 세미나 논문 정리
Motivation
Per application에서의 performance isolation을 고려해야 한다. 예를 들어서 client A와 client B가 있을떄, 하나는 read transaction이 돌아가고, 하나는 write이 돌아갈때, client A가 만약 긴 transaction을 잡게된다면, client A가 종료된후, 로깅이 계속 쌓여서, undo log로 지워주어야 하는데, 이러한 logging thread가 undo하는 작업이 돌아가기 때문에, client B의 tail latency가 박살난다.
이러한 dependent한 테스크들이 있을 경우 isolation을 어떻게 만들 것인가가 목적이다.
Main Idea
Abstract된 리소스 사용량과, isolation모델을 정의할 수 있도록 하여서, 그러한 SLO에 맞추어서 커널이 잘 처리할 수 있도록 Isolation model을 만들어 주면 된다. 그러나 이러한 Isolation goal를 strict하게 완벽하게 보장할 수는 없음으로, isolation이 어긋나는 상태를 어떻게 찾아내고, 어떻게 복구할 것인가.
Design
시스템 콜을 통해서, 만약 방해받지 않았을 경우에, 어느정도까지 감수할 것인지를 isolation goal을 통해서 받도록 한다. pbox에서는 latency만을 설정할 수 있다. 커널은 idle한 상황에서의 isolation base line (latency)를 계산하여서, 주어진 isolation goal이상의 resource사용량이 발생하면, application을 복구한다.
Virtual resource는 그 virtual resource를 사용할때 걸리는 latency를 통해서 나타내진다. 리소스를 먹기 시작할때 PREPARE로 들어가고 나갈때 ENTER로 나가서, 그 상태의 latency가 virtual resource로 측정된다.
사용된 휴리스틱은 논문 참고.