Pheromone is a serverless platform for expressive, ease-of-use, and high-performance function interactions. Pheromone applies two-level distributed scheduling for low-latency function invocations, and performs zero-copy data exchange using shared memory in each worker node.
The key design of Pheromone lies in data-centric function orchestration, which lets data trigger functions by making the consuming patterns of intermediate data (i.e., function results) explicit. Please see our paper for more details.
Pheromone runs on a Kubenetes cluster. Please refer to deploy/cluster for details.
- Pheromone follows the cluster settings of Cloudburst, where it applies the same way to deploy the cluster and uses Anna as the durable key-value store.
- Pheromone uses a high-performance C++ IPC library for shared-memory based data sharing. We slightly modify the code and place this in common/shm-ipc as a sub module