iRoute is a workflow orchestration and routing system designed to achieve universal 1-hop transfers while maintaining high resource efficiency. To address the limitations of centralized orchestration, iRoute offloads both orchestration and routing capabilities from global to local. It adopts a dual-layer architecture:
- Local routing controllers make routing decisions and manage direct communication between function instances.
- Centralized coordinator ensures global consistency by synchronizing multiple local routing tables.
iRoute runs as a set of OpenFaaS templates and supports IPC, Socket, and RDMA communication.
iRoute requires the following components to be installed:
- OpenFaaS
- ZooKeeper (for global routing table storage)
- k8s-rdma-shared-dev-plugin (for RDMA support)
- sn-db: Database services for Social Network benchmark.
| Template | Role |
|---|---|
| python3-cc | Coordinator: assists in direct connection setup and synchronizes routing tables with ZooKeeper. |
| python3-func | Function instance: performs routing and communication directly with other functions. |
| python3-entry | Workflow entry: handles service discovery and sends workflow requests. |
Note:
python3-funcdoes not support OpenFaaS Gateway invocation. Always invoke workflows throughpython3-entry.
- Define workflow structure in
workflow.json.- Function names must match the ones deployed in OpenFaaS.
- Update
handler.pywith ZooKeeper authentication credentials for accessing the global routing table. - Modify the
get_lat_distfunction inhandler.pyto measure and report request latency distribution.
- Synchronize and use the same
workflow.json.
- Update
handler.pywith:- Coordinator function name in OpenFaaS.
- Entry function name.
- The
generate_datafunction for test data generation.
The benchmarks directory includes three representative applications, each implemented for IPC, Socket, and RDMA backends:
| Application | Description | Path |
|---|---|---|
| Social Network | A latency-sensitive application from DeathstarBench that creates post embedded with text, media, links and user tags. | benchmarks/sn |
| FINRA | A financial application that validates trades based on trade and market data. | benchmarks/finra |
| ExCamera | A video-processing application that encodes and processes chunks in parallel. | benchmarks/excamera |
Each benchmark directory provides:
- A README with deployment and execution steps.
- Prebuilt Docker images available on Docker Hub.
- Configurations for OpenFaaS deployment.
For detailed instructions, see Benchmark Documentation.