Skip to content

docs: add Phase 19 performance baselines and capacity analysis#341

Merged
FSM1 merged 8 commits into
mainfrom
docs/phase-19-baselines
Mar 23, 2026
Merged

docs: add Phase 19 performance baselines and capacity analysis#341
FSM1 merged 8 commits into
mainfrom
docs/phase-19-baselines

Conversation

@FSM1

@FSM1 FSM1 commented Mar 23, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add comprehensive Phase 19 performance baselines (19-someguy-ipns-baselines.md)
  • Scaling curve from 10 to 200 concurrent clients against staging
  • Upload flow latency breakdown from Prometheus server-side metrics
  • Capacity analysis identifying Kubo IPFS pinning as the bottleneck

Key findings

  • Max error-free concurrency: 100 clients (zero errors across all operations)
  • Throughput ceiling: ~24-28 ops/s on staging VPS (4 vCPU, 8GB)
  • Throughput knee at ~50 clients: Kubo pin concurrency saturates
  • First errors at 200 clients: 4/8,734 ops (0.05% error rate)
  • Bottleneck: Kubo IPFS pinning (~1.56s mean, 95% of upload endpoint time)
  • uploadFile = 3 sequential pins + 2 IPNS publishes: pins dominate, IPNS is fast (DB upsert only)

Other changes

  • Gitignore load test metrics JSON artifacts
  • Minor CLAUDE.md staging tag documentation update
  • Remove completed todo (investigate someguy IPNS routing failure locally)

Test plan

  • All load test runs completed successfully on staging (10/20/30/50/75/100/200 clients)
  • Prometheus metrics scraped and analyzed after each run
  • Documentation only — no code changes

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Updated performance baseline documentation with comprehensive load testing results including throughput scaling behavior, latency percentiles, and error patterns across varying client concurrency levels.
    • Added detailed server-side latency breakdown and performance metrics for upload operations.
    • Refined performance comparison targets to leverage newly documented test observations instead of requiring additional test runs.

FSM1 and others added 7 commits March 23, 2026 15:10
Captures SDK E2E (83/83 pass) and load test results comparing
someguy sidecar vs delegated-ipfs.dev vs Phase 18 Kubo-direct baselines.

Key findings:
- 12x throughput improvement over Phase 18 (1.25 → 15.28 ops/s)
- Error rate eliminated (4.6% → 0%)
- Warm DHT someguy beats delegated-ipfs.dev by ~40-50% on median latency

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: d80496e88078
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: 04750e4993a4
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: 05da4f1ecc5f
Mixed workload scaling results from staging:
- Near-linear throughput scaling (2.7x at 3x clients)
- Zero errors at all concurrency levels
- p50 latency grows only 15-25% from 10→30 clients
- Staging VPS not yet saturated at 30 concurrent clients

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: d2dd8f4fd7cf
- 100 clients: 24.05 ops/s, 0 errors, uploadFile p50=5.1s
- Prometheus analysis: Kubo IPFS pinning is 95% of upload latency
- Each uploadFile = 3 sequential pins (~1.7s each) + 2 IPNS publishes (~130ms each)
- IPNS publish is fast (DB upsert only), DHT propagation is async
- 50/75 client runs queued to fill scaling curve

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: 062f9488e089
- Complete scaling curve: 10/20/30/50/75/100 clients
- Throughput plateaus at ~23-24 ops/s from 50→100 clients
- Knee at ~50 clients where Kubo pin concurrency saturates
- Updated Prometheus metrics with full cumulative counts (152K pins)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: 4330f08634f2
- 200 clients: 28.50 ops/s, 4 errors (0.05%), uploadFile p50=8.8s
- First errors appear at 200 clients — error-free up to 100
- Throughput plateau confirmed: 23-28 ops/s from 50→200 clients
- Kubo pin mean stays flat at ~1.56s — client latency increase is
  from queuing, not Kubo degradation
- 1 IPNS 409 conflict at 200 clients (expected seq collision)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: 213de760f59e
@coderabbitai

coderabbitai Bot commented Mar 23, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 07cea9fb-1dd3-4b12-b80f-96e91e5a4bfb

📥 Commits

Reviewing files that changed from the base of the PR and between 222bea7 and 2e85b59.

📒 Files selected for processing (1)
  • .planning/baselines/19-someguy-ipns-baselines.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • .planning/baselines/19-someguy-ipns-baselines.md

Walkthrough

Phase 19 performance baseline documentation updated with extended load test results for mixed workload scaling (10–200 clients), including throughput and latency metrics, along with server-side latency breakdown from Prometheus showing sequential API call attribution. Instructions for additional k6 load tests replaced with newly documented scaling and latency data.

Changes

Cohort / File(s) Summary
Performance Baseline Documentation
.planning/baselines/19-someguy-ipns-baselines.md
Added "Extended Load Test: Mixed Workload Scaling" section with throughput/latency percentiles (p50/p95/p99) across client counts and scaling observations; added "Upload Flow Latency Breakdown" section with server-side metric attribution to five sequential API calls; removed instructions for additional k6 load tests at higher concurrency.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the primary change: adding Phase 19 performance baselines and capacity analysis documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/phase-19-baselines

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Keep extended load test data (10–200 clients), upload flow breakdown,
and Prometheus analysis from branch. Remove completed "Run k6 load
tests" comparison target from main (now done).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: 441c9b591b20
@FSM1 FSM1 merged commit 9d1c5d5 into main Mar 23, 2026
16 checks passed
@FSM1 FSM1 deleted the docs/phase-19-baselines branch March 23, 2026 18:01
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.

1 participant