filecoin-project / filecoin-project/boost

Reproducible environment for load testing of retrievals

Open
#1,019 0 comments 0 reactions 0 assignees View on GitHub
area/dev-ux area/retrieval
Dominant language
Go
Stars
121
Forks
79
Avg merge
10d 14h
Merged PRs (30d)
1

Description

We should be able to spin up reproducible environments to perform load tests on specific instance types, so that we have better visibility on the state of retrieval performance and whether we make things better/worse with time.

This should be made possible on AWS.

This involves:
- producing prebuilt AMIs that we can very quick start on AWS (via `packer` for example)
- these AMIs should contain the latest set of proof params, so that we don't download every time hundreds of GiB of proof parameters to start a network
- AMIs should automatically start a network that a load test could hit. This means all Lotus and Boost services should spin up when the machine is up: `lotus daemon`, `lotus-miner`, `boostd`, `booster-http` and `booster-bitswap`, and endpoints to access them should be reachable
- dev network should be pre-populated with a number of 32GiB sectors that already have deals in them that we could fetch. Deals must be of realistic size -- i.e. anywhere from 300MiB up to 30GiB.
- ideally it should be possible to spin up an AWS instance with such a predefined environment within 5-10min.
- local monitoring stack should also be provisioned on the AMI and publicly accessible

Nice to have:
- ideally a user should be able to make a deal with a random 4GiB file without hitting any of the proofs, i.e. network should be configured with `fake-proofs`.
- ideally it should be possible to create a deal and be able to retrieve it within 2-3min.

Relies on:
- https://github.com/filecoin-project/boost/issues/902

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the dependency in filecoin-project/boost#902, then map how an AWS instance should provision the AMI, proof parameters, Lotus and Boost services, pre-populated deals, and monitoring stack. Use the listed service entry points and retrieval workflow as the requirements. Done means a reproducible instance is reachable and load-testable within 5–10 minutes, with realistic sectors and monitoring available.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, go
Domain
cloud, devops, distributed-systems, infrastructure, observability-sre
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.