fix(compose): override MINIO_ENDPOINT for in-container minio-bootstrap#1298
Merged
Conversation
Hotfix already deployed to master (#1297). Sync develop so next release branch picks it up. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Pipeline runs with max-in-flight=250, but the Nexon connection pool was sized to 150. With 250 in-flight concurrent requests, 100 always wait at pendingAcquire per wave. The wait serialized fetches into two sub-waves, effectively doubling the batch duration. Measured impact (2026-06-17): - Old (pool=150): rate=100/s, batch_wait=2.27s, fetch=1.5s - Expected (pool=250): rate=200/s, single wave of 250 Direct curl on Nexon API: 150-200ms after TLS handshake. The 1.5s measured in-pipeline is mostly pool acquire wait, not actual Nexon processing. This change matches pool size to in-flight size. Tuning knob preserved: external-api.http-client.max-connections in YAML still overrides the default. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Two related changes that combined give +15% throughput on item-equipment
phase (rate 85/s → 100/s sustained), measured 2026-06-17.
1. SchedulerRateLimiter: refillIntervally → refillGreedy
- `refillIntervally(250, 1s)` adds 250 tokens at the start of each
1-second boundary (t=0, t=1, t=2). Right after a full consume at
t=0, the next 250 tokens only arrive at t=1, creating a hard
"no tokens for ~0.5-1s" gap that serializes waves.
- `refillGreedy(250, 1s)` adds tokens continuously at 250/s rate.
After a full consume at t=0, the bucket fills smoothly. By the
time the wave completes (fetch 1.3s), bucket is at capacity
(capped at 250), so the next wave fires without idle wait.
2. application.yml: max-connections 150 → 250
- Pool sized to 150 < in-flight 250. With 250 concurrent requests,
100 always waited at pendingAcquire per wave. The wait serialized
fetches into two sub-waves of 150+100, doubling the batch duration.
- Bumped to 250 to match in-flight.
The two together: pool no longer serializes fetches, and rate limiter
no longer adds idle wait between waves. Throughput up ~17%.
Why not bump in-flight higher? Tested 500 in-flight: Nexon API
returned 314 HTTP 429s in 3min, fetchJoinMs went 1.3s → 5.0s,
rate dropped to 85/s. Nexon throttles per source IP; 500 concurrent
exceeds their allowance. Stayed at 250.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
minio-bootstrap runs inside the docker network, where `localhost` resolves to the container itself, not the host. The .env.bootstrap file keeps `MINIO_ENDPOINT=http://localhost:9000` for host-side tooling (mc CLI), which doesn't reach the in-container minio. Fix: add an `environment:` block on minio-bootstrap that overrides MINIO_ENDPOINT to http://minio:9000, leaving .env.bootstrap intact. Verified 2026-06-17: docker compose up minio-bootstrap exits clean with bucket + ILM + 4 SAs + 4 policies attached. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add
environment.MINIO_ENDPOINT=http://minio:9000tominio-bootstrapservice in docker-compose.yml. The.env.bootstrapfile'slocalhost:9000doesn't reach minio from inside the bootstrap container.Why
Without this override,
docker compose upexits with bootstrap error:.env.bootstrapmust stay onlocalhost:9000because it's also loaded by host-side tooling (mc CLI from outside docker). The override only applies to the in-container bootstrap.Test plan
docker compose down minio-bootstrap && docker compose up minio-bootstrapexits clean🤖 Generated with Claude Code