Faaastlane: Accelerating Function-as-a-Service Workflows
- ATC ‘21
- Transient states are shared between functions of the same workflow.
- Run functions of a workflow as threads in a process to accelerate data sharing.
- Use MPK for sensitive information isolation.
- Fork new processes for interpreter runtimes.
Faastlane uses MPK to protect sensitive data between threads.
Intra-process memory protection is used when all threads share the same address space. In this case, the page table is shared and each thread can access all memory of a process. The coarse-grained control using protection bits require the OS to modify multiple Page Table Entries (PTE) when a different thread has a restricted permission. However, this is too expensive.
Instead, MPK provides a light-weight solution for fine-grained permission control. When the page is set up, 4 bits in the PTE is used to store the “key”. To access pages protected by the key, the user needs to put the “key” to the register
PKRU (Protection Key Rights Register). The CPU would validate the key automatically. Therefore, the PTE does not need to be modified and the application or OS can switching permissions by setting the
Amazon States Language
Faastlane uses ASL to describe FaaS workflows.