test(S15P11A705-284): 천만 건 읽기 경로 계획 관측 보고(BI-38) - #178
Merged
Conversation
minyongP
marked this pull request as draft
August 3, 2026 08:39
1 task
minyongP
force-pushed
the
test/S15P11A705-283-massive-seed-bench
branch
from
August 4, 2026 07:16
96a891e to
2ab3424
Compare
minyongP
changed the base branch from
test/S15P11A705-283-massive-seed-bench
to
dev
August 4, 2026 07:19
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
지도의 27.3ms → 13.5ms를 "계획이 평평하다"로 적었는데 틀렸다. 계획이 갈린 것이다 — 117k는 Hash Join으로 place를 전수 해싱하고, 천만 건은 place가 24만 행이 되며 Nested Loop + place_pkey로 갈아탄다. 각 DB를 따로 콜드 재기동하고 실제 서울 뷰포트로 다시 쟀다(양쪽 397행): 117k 17.97ms(디스크 1,170블록) vs 천만 3.12ms(573블록) — 천만이 5.8배 빠르다. 규모가 커져서 빨라진 게 아니라 플래너가 원래 골라야 했던 계획으로 옮겨간 것이며, 백엔드에서 고칠 것은 없다. 첫 측정에는 측정 순서 캐시 편차가 섞여 있었다. 한계 절에 그 성질을 적고, 매트릭스 SQL 머리에 DB마다 콜드 재기동하라는 전제를 남긴다. 매트릭스에 지도를 [3a] bbox 없음 / [3b] bbox 있음(서울)으로 분리했다. load-read.js가 bbox 없이 부르는데 이 보고서는 bbox 있는 쪽만 쟀던 불일치를 개선 후보 3으로 남긴다 — 다만 접근 경로는 동일하고 반환 행 수만 달라지므로 (697 → 397) 우선도는 낮다. bbox 값도 전국(위도 33~39)에서 서울로 고쳤다. 전국 범위는 아무 행도 걸러내지 못해 필터 효과를 재는 의미가 없었다. 클라이언트 렌더링은 범위 밖임을 명시했다 — 마커 2만 개 렌더 비용은 2.0MB 전송보다 먼저 무너질 수 있으나 프론트 영역이다. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
minyongP
marked this pull request as ready for review
August 4, 2026 07:20
minyongP
force-pushed
the
test/S15P11A705-284-plan-observation
branch
from
August 4, 2026 07:20
48b08b0 to
14da344
Compare
3 tasks
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.
요약
283의 천만 건 볼륨 위에서 주요 읽기 경로 4종의 실행 계획을 117k 기준선과 대조했다. 규모에 정비례로 무너지는 것은 피드 최신 채널 하나이며(69배, Seq Scan), 원인은 COALESCE 정렬키다. 커서·상세 배치·지도는 규모를 통과했다.
Jira (필수)
변경 사항
docs/backend/implements/BI-38-2026-08-03-massive-scale-plan-observation.md— 결과 표(12개 측정 × 2규모)·판정 4건·개선 후보 2건loadtest/sql/explain-matrix.sql— 재실행 가능한 측정 매트릭스(두 DB에 같은 파일)docs/backend/worklog/2026-08-03-S15P11A705-284-plan-observation.md테스트 / 검증
./gradlew clean check --no-daemon— BUILD SUCCESSFUL (Java 변경 없음, 문서+SQL만)측정 방법 검증:
핵심 결과:
리뷰 포인트
published_at IS NULL0건 + V5ck_collection_published_atCHECK(BD-33). 코드 수정은 이 PR 범위 밖(관측 보고형 티켓), 별도 티켓으로.미결 / 후속
deleted_at부분 인덱스 판별·AI 스키마 쿼리는 범위 밖(283 합의·AI 파트 소유)🤖 Generated with Claude Code