Skip to content

Add RPC database backfill performance evaluation leg#830

Draft
cjonas9 wants to merge 9 commits into
gha-coordinatorfrom
backfill-test
Draft

Add RPC database backfill performance evaluation leg#830
cjonas9 wants to merge 9 commits into
gha-coordinatorfrom
backfill-test

Conversation

@cjonas9

@cjonas9 cjonas9 commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

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

@cjonas9 cjonas9 changed the title Add RPC database backfill evaluation leg Add RPC database backfill performance evaluation leg Jun 30, 2026
@github-actions

github-actions Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

🧪 Performance Evaluation Test #5

Commit: 1a55e50c35cb (backfill-test)
Run: https://github.com/stellar/stellar-rpc/actions/runs/28558215415

✅ Apply-load ingestion — verdict: ok

📈 Ingest load test — 1a55e50

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

@cjonas9 cjonas9 linked an issue Jun 30, 2026 that may be closed by this pull request
@cjonas9 cjonas9 added this to the platform sprint 73 milestone Jun 30, 2026
@cjonas9 cjonas9 moved this from To Do to In Progress in Platform Scrum Jun 30, 2026
@cjonas9 cjonas9 removed this from Platform Scrum Jun 30, 2026

@cjonas9 cjonas9 Jun 30, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Release eval: job to measure data-lake backfill ingestion perf

1 participant