개요
Faaslet은 Address space를 protection domain에 공유하도록 하고, Isolation은 SFI기법을 활용하도록 하여서, 불필요한 overhead를 감소, Serverless computing에서 효율을 증대하였다.
Motivation
Serverless computing은 점차 많은 Data-intensive application에서 사용되고 있다. 그러나 기존 Serverless computing을 위한 디자인은 다음 두가지 문제를 가지고 있다.
- Data access overhead: Function을 실행시키기 위한 Data를 Copy하는 과정에서 오버헤드가 발생하고, Bandwidth limitation에 의해서 병령화 되기도 힘들다.
- Resource footprint: 초기 리소스 할당과정에서 Booting시간이 증가하는 Cold start문제가 발생한다. 또한 큰 메모리 Footprint는 Scalability측면에서도 문제가 생긴다.
현재 존재하는 Data-intensive serverless application들은 두 문제를 individually풀었을 뿐이며, 같이 해결하지는 못하였다.
본 논문은 다음과 같은 목적을 달성하고 자 한다.
- Function사이에 strong memory and resource isolation을 제공
- 동시에 Efficient한 state sharing방식 제공
- Multiple host들에 대해서 Scaling있게 작동해야 함
- Low memory footprint를 가져야 함
- 빠른 booting time을 가져야 함
- 다양한 프로그래밍 언어를 Support할 수 있어야 함
Main Idea
- SFI기법을 통하여서 가벼운 Isolation기법을 활용한다.
- Local/Global state Access를 통하여서 Shared memory를 통해서 서로다른 Function이 RPC없이도 통신할 수 있도록 한다. Runtime을 통해서 이러한 State접근을 통제할 수 있도록 하였다.
- Suspended state라는 것을 통해서 Boot시간을 줄였다.
- POSIX-like API를 통해서 host environment에 쉽게 접근할 수 있도록 하였다.