Resource Management
SeBS allocates cloud resources automatically on first use and reuses them across subsequent runs. This document explains how resources are identified, named, and cleaned up.
Resource ID
Every SeBS deployment is assigned a resources_id — a short, unique identifier that acts as a namespace for all cloud resources belonging to that deployment.
It is stored in the Resources base class (sebs/faas/config.py) and persisted in the local cache so that subsequent runs reuse the same resources rather than allocating new ones. The ID is generated in one of two ways:
Without a user prefix: an 8-character UUID fragment, e.g.
a1b2c3d4With a user prefix:
{prefix}-{8-char UUID}, e.g.myexp-a1b2c3d4
The prefix is optional and can be supplied via the platform configuration. When a prefix is provided, SeBS first scans existing cloud resources for a deployment whose ID contains that prefix and reuses it if found. A new ID is only generated when no match exists.
After a deployment’s resources are created, their identifiers are written to the local cache: This means a typical repeated benchmark run performs no cloud resource allocation at all.
Resource Naming
Every cloud object created by SeBS embeds the resources_id in its name.
This guarantees isolation between concurrent deployments (different users, CI runs, or experiments) and makes it straightforward to identify which resources belong to which deployment.
Storage Buckets
Bucket names follow the pattern sebs-{type}-{resources_id}, where type is one of three predefined bucket roles:
Type |
Bucket name |
Purpose |
|---|---|---|
|
|
Function deployment packages (ZIP files, containers) |
|
|
Benchmark input data |
|
|
Experiment results and output data |
Serverless Functions
Each platform uses the same logical structure but applies platform-specific formatting rules. The general pattern is:
sebs-{resources_id}-{benchmark}-{language}-{language-version}-{architecture}[-docker]
For container-based AWS Lambda deployments the suffix -docker is appended to the function name.
Cloud platforms might apply additional character substitutions (. → -, _ → -) to comply with their naming rules.
AWS-Specific Resources
The AWS ECR repository used for container images is named sebs-benchmarks-{resources_id}, matching the benchmarks bucket pattern.
Cleanup
Because every resource name embeds resources_id, SeBS can reliably enumerate and delete all resources associated with a deployment:
Serverless functions
Storage buckets and their contents
NoSQL tables
Platform-specific ancillary resources (HTTP APIs, CloudWatch log groups, ECR repositories, CosmosDB accounts, etc.)
After cleanup, the corresponding cache entries are removed so that a subsequent run starts fresh.