[Perf] 자동 Worker 전체 문서 인덱싱 처리량 Benchmark 추가 - #135
Conversation
|
Warning Review limit reached
Next review available in: 53 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthrough실제 PostgreSQL, pgvector, MinIO, BGE-M3를 사용하는 Worker 인덱싱 처리량 Benchmark를 추가했다. 전용 Gradle Task, timeout 설정, percentile 계산, 상태 정합성 검증, JSON 결과 기록과 실측 문서를 포함한다. ChangesWorker 인덱싱 처리량
Estimated code review effort: 4 (Complex) | ~60 minutes Sequence Diagram(s)sequenceDiagram
participant Benchmark as WorkerIndexingThroughputBenchmark
participant API as HTTP API
participant Worker
participant Storage as MinIO
participant DB as PostgreSQL
participant Embedding as BGE-M3
Benchmark->>API: TXT 문서 병렬 업로드
API->>Storage: Object 저장
API->>DB: 인덱싱 Job 생성
Worker->>DB: Job Claim 및 상태 갱신
Worker->>Storage: 문서 조회
Worker->>Embedding: Chunk Embedding 요청
Worker->>DB: Chunk, Embedding, Vector 저장
Benchmark->>DB: INDEXED 및 정합성 검증
Benchmark->>Benchmark: 처리량·지연시간 계산 및 JSON 저장
Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@src/test/java/com/opensource/docgrid/e2e/WorkerIndexingThroughputBenchmark.java`:
- Around line 71-73: Update the TEST_SCHEMA constant used by
measureAutomaticWorkerIndexingThroughput() to include a per-execution UUID,
matching the isolation approach already used by TEST_BUCKET. Preserve the
existing schema prefix while ensuring concurrent Gradle processes never share
the same schema.
- Around line 425-429: Update assertProfileInvariants() to explicitly verify
that workerLifecycleManager.getWorkerId().isPresent() is true alongside the
existing queue and chunk assertions, ensuring the Worker remains registered when
the Profile completes; alternatively remove any result-document claim that this
check validates Worker liveness.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 1ba51124-7ba9-4d38-97fb-e452f0c4dc7e
📒 Files selected for processing (9)
build.gradledocs/design/gimin-#133-worker-indexing-throughput-benchmark.mddocs/test-results/gimin-#133-worker-indexing-throughput-benchmark.mdsrc/main/java/com/opensource/docgrid/global/config/EmbeddingServerConfig.javasrc/main/resources/application.ymlsrc/test/java/com/opensource/docgrid/e2e/LocalE2eMinioBucket.javasrc/test/java/com/opensource/docgrid/e2e/WorkerIndexingThroughputBenchmark.javasrc/test/java/com/opensource/docgrid/e2e/WorkerIndexingThroughputStatistics.javasrc/test/java/com/opensource/docgrid/e2e/WorkerIndexingThroughputStatisticsTest.java
🔍️ 작업 내용
workerIndexingThroughputTestGradle 실행 경계 추가Closes #133
✨ 상세 설명
✅ 검증
./gradlew test --tests 'com.opensource.docgrid.e2e.WorkerIndexingThroughputStatisticsTest'DB_SSLMODE=disable ./gradlew workerIndexingThroughputTest: PASS (8분 1초)git diff --check: PASS🛠️ 추후 리팩토링 및 고도화 계획
💬 리뷰 요구사항
Summary by CodeRabbit
새로운 기능
성능 및 검증
문서