Add RPC database backfill performance evaluation leg#830
Conversation
🧪 Performance Evaluation Test #5Commit: ✅ Apply-load ingestion — verdict: ok📈 Ingest load test —
|
| Profile | Ledgers | ms/ledger | p50 / p95 / p99 ms | max ms |
|---|---|---|---|---|
| load-test-ledgers-v27-oz | 1000 | 1197.922 | 1116.223 / 1626.391 / 1911.183 | 2648.655 |
| load-test-ledgers-v27-sac | 1000 | 1097.976 | 1107.736 / 1180.349 / 1233.150 | 1308.911 |
| load-test-ledgers-v27-soroswap | 1000 | 792.656 | 803.982 / 867.357 / 926.389 | 1036.196 |
| Metric | Value |
|---|---|
| Ledgers replayed | 3000 |
| Initial DB ledger count | 120960 |
| Throughput | 0.94 ledgers/sec |
| Elapsed wall-clock | 3188.280s |
| Ingest busy-time | 3088.554s (96.9% utilization) |
| Per-ledger p50 / p95 / p99 | 1051.896 / 1420.172 / 1730.406 ms |
| Golden DB fetch+decompress | 2442s |
| stellar-core | v27.0.0 |
| Workflow run | #28558215415-1 |
❌ Backfill ingestion — verdict: none
No result object published (leg timed out or failed before publishing). See the run logs.
Performance Evaluation Test #4
Commit: 423131fa0e0b (backfill-test)
Run: https://github.com/stellar/stellar-rpc/actions/runs/28538894072
✅ Apply-load ingestion — verdict: ok
📈 Ingest load test — 423131f
| Profile | Ledgers | ms/ledger | p50 / p95 / p99 ms | max ms |
|---|---|---|---|---|
| load-test-ledgers-v27-oz | 1000 | 1197.542 | 1115.403 / 1623.785 / 1906.614 | 2991.922 |
| load-test-ledgers-v27-sac | 1000 | 1097.049 | 1106.922 / 1180.305 / 1236.454 | 1301.417 |
| load-test-ledgers-v27-soroswap | 1000 | 791.585 | 802.182 / 867.687 / 922.897 | 1038.206 |
| Metric | Value |
|---|---|
| Ledgers replayed | 3000 |
| Initial DB ledger count | 120960 |
| Throughput | 0.94 ledgers/sec |
| Elapsed wall-clock | 3189.167s |
| Ingest busy-time | 3086.176s (96.8% utilization) |
| Per-ledger p50 / p95 / p99 | 1051.026 / 1416.904 / 1736.308 ms |
| Golden DB fetch+decompress | 2430s |
| stellar-core | v27.0.0 |
| Workflow run | #28538894072-1 |
❌ Backfill ingestion — verdict: none
No result object published (leg timed out or failed before publishing). See the run logs.
Performance Evaluation Test #3
Commit: cda0eb459866 (backfill-test)
Run: https://github.com/stellar/stellar-rpc/actions/runs/28479435314
✅ Apply-load ingestion — verdict: ok
📈 Ingest load test — cda0eb4
| Profile | Ledgers | ms/ledger | p50 / p95 / p99 ms | max ms |
|---|---|---|---|---|
| load-test-ledgers-v27-oz | 1000 | 1197.912 | 1114.541 / 1628.323 / 1908.104 | 3464.033 |
| load-test-ledgers-v27-sac | 1000 | 1094.880 | 1105.072 / 1177.028 / 1227.345 | 1303.431 |
| load-test-ledgers-v27-soroswap | 1000 | 791.360 | 802.953 / 866.802 / 922.333 | 1037.091 |
| Metric | Value |
|---|---|
| Ledgers replayed | 3000 |
| Initial DB ledger count | 120960 |
| Throughput | 0.94 ledgers/sec |
| Elapsed wall-clock | 3190.387s |
| Ingest busy-time | 3084.153s (96.7% utilization) |
| Per-ledger p50 / p95 / p99 | 1049.362 / 1414.413 / 1756.813 ms |
| Golden DB fetch+decompress | 2429s |
| stellar-core | v27.0.0 |
| Workflow run | #28479435314-1 |
❌ Backfill ingestion — verdict: none
No result object published (leg timed out or failed before publishing). See the run logs.
Performance Evaluation Test #2
Commit: 2bbb35e4bd47 (backfill-test)
Run: https://github.com/stellar/stellar-rpc/actions/runs/28460912982
✅ Apply-load ingestion — verdict: ok
📈 Ingest load test — 2bbb35e
| Profile | Ledgers | ms/ledger | p50 / p95 / p99 ms | max ms |
|---|---|---|---|---|
| load-test-ledgers-v27-oz | 1000 | 1199.573 | 1117.162 / 1628.754 / 1917.200 | 3384.072 |
| load-test-ledgers-v27-sac | 1000 | 1098.555 | 1108.409 / 1181.489 / 1237.524 | 1303.718 |
| load-test-ledgers-v27-soroswap | 1000 | 792.814 | 803.331 / 868.491 / 923.934 | 1039.366 |
| Metric | Value |
|---|---|
| Ledgers replayed | 3000 |
| Initial DB ledger count | 120960 |
| Throughput | 0.94 ledgers/sec |
| Elapsed wall-clock | 3188.784s |
| Ingest busy-time | 3090.942s (96.9% utilization) |
| Per-ledger p50 / p95 / p99 | 1052.633 / 1418.938 / 1733.656 ms |
| Golden DB fetch+decompress | 2435s |
| stellar-core | v27.0.0 |
| Workflow run | #28460912982-1 |
✅ Backfill ingestion — verdict: ok
⏳ Backfill ingestion — 2bbb35e4bd47
| Metric | Value |
|---|---|
| Ledgers ingested | 17280 ([63251200 -> 63268479]) |
| Retention window | 17280 |
| Wall-clock | 43m15s |
| Ledgers/sec | 6.7 |
Performance Evaluation Test #1
Commit: 0d261a6c3b3b (backfill-test)
Run: https://github.com/stellar/stellar-rpc/actions/runs/28426945017
✅ Apply-load ingestion — verdict: ok
📈 Ingest load test — 0d261a6
| Profile | Ledgers | ms/ledger | p50 / p95 / p99 ms | max ms |
|---|---|---|---|---|
| load-test-ledgers-v27-oz | 1000 | 1197.075 | 1114.463 / 1628.031 / 1914.288 | 2918.898 |
| load-test-ledgers-v27-sac | 1000 | 1096.121 | 1105.460 / 1177.827 / 1236.731 | 1303.534 |
| load-test-ledgers-v27-soroswap | 1000 | 792.794 | 804.245 / 868.124 / 924.291 | 1033.709 |
| Metric | Value |
|---|---|
| Ledgers replayed | 3000 |
| Initial DB ledger count | 120960 |
| Throughput | 0.94 ledgers/sec |
| Elapsed wall-clock | 3188.761s |
| Ingest busy-time | 3085.990s (96.8% utilization) |
| Per-ledger p50 / p95 / p99 | 1049.506 / 1414.324 / 1730.527 ms |
| Golden DB fetch+decompress | 2450s |
| stellar-core | v27.0.0 |
| Workflow run | #28426945017-1 |
❌ Backfill ingestion — verdict: fail
❌ Backfill ingestion failed (run 28426945017-1 on 0d261a6c3b3bf7d4d04eee360087e58c289a5e66)
starting daemon: fork/exec /data/stellar-rpc: permission denied
There was a problem hiding this comment.
This is vaguely inspired by how the integration tests do something similar, I'm not sure if there's a preferred method for this but other options seemed less viable because datastore_config is TOML-only.
What
[TODO -- this is an early draft/PoC]
Adds a new callable workflow that spawns an EC2 instance and has backfill run on it. Metrics for the performance of this backfill are logged through the GHA coordinator alongside metrics for the apply-load ingestion load test.
Why
[TODO]
Known limitations
N/A