proto-socket/agent-roadmap/milestones/large-payload-followup-optimization.md
toki a8d61bbe9f test(test-matrix): 야간 성능/안정성 full 후보 분리
변경 기반 라우팅에서 full 기간성 후보와 낮 시간 quick 후보를 분리해 성능/안정성의 20:00 이후 야간 실행 계약을 명확히 했다.
2026-06-10 10:19:30 +09:00

3.6 KiB

대용량 WS/병렬 전송 후속 최적화

목표

야간 대용량 패킷 기준선에서 병목이 유지되는 row를 근거로, 64KB/1MB WebSocket 및 병렬 전송 성능을 추가 개선한다. 기준선 수집 전에는 구현하지 않고, 후보 범위와 판정 기준을 계획 상태에서 잠금으로 유지한다.

단계

안정화와 유지

상태

[계획]

승격 조건

  • 사용자 요청에 따라 활성 후보 창에서는 [계획]으로 전환했다.
  • 야간 기준선 수집, 1차 구현 대상 선택, 성공 기준 정리는 구현 잠금과 기능 Task에서 계속 추적한다.

구현 잠금

  • 상태: 잠금
  • 결정 필요:
    • 야간 기준선 결과를 보고 1차 개선 대상을 선택해야 한다.
    • 성능 개선 목표를 절대값, 이전 대비 비율, reference 대비 위치 중 어떤 기준으로 볼지 정해야 한다.

범위

  • 야간 기준선에서 재현되는 병목 row만 구현 대상으로 삼는다.
  • TypeScript WS 1MB, WS 계열 fixed latency, Kotlin WS 1MB, Dart large-packet 회귀 방지를 우선 후보로 둔다.
  • stability hard gate는 timeout, nonce mismatch, response type mismatch, FIFO violation, pending leak, queue/gateway backlog leak 0을 유지한다.
  • 성능 개선은 cross-language matrix와 focused payload/stress record로 검증한다.

기능

Epic: [evidence-selection] 기준선 기반 후보 선정

야간 record로 실제 구현 대상을 좁힌다.

  • [night-evidence-review] 야간 full/focused record에서 64KB/1MB TCP/WS rows를 비교해 병목이 남은 row를 분류한다. 검증: 주간 exploratory record만으로 구현 대상을 선택하지 않는다.
  • [primary-target] 1차 개선 대상 row와 제외 대상을 정한다. 검증: 선택 사유가 야간 record의 throughput, p99, memory, stability hard gate에 근거한다.

Epic: [candidate-paths] 최적화 후보 경로

후보별로 구현 위험과 검증 방법을 분리한다.

  • [typescript-ws-1mb-path] TypeScript WS 1MB 병목이 야간에도 유지되면 mask/protobuf/parse queue 경로를 우선 분석한다.
  • [ws-fixed-latency-path] WS 계열 fixed latency가 야간에도 유지되면 transport별 공통 지연 경로와 언어별 worker/gateway path를 분리해 분석한다.
  • [kotlin-ws-guard] Kotlin WS 1MB는 야간 record에서 개선 유지 여부를 확인하고, 회귀가 보이면 별도 구현 대상으로 승격한다.
  • [dart-large-packet-guard] Dart TCP/WS 1MB는 기존 개선이 유지되는지 감시하고, 회귀가 보이면 guard 또는 path hardening 대상으로 승격한다.

완료 리뷰

  • 상태: 없음
  • 요청일: 없음
  • 완료 근거: 없음
  • 리뷰 필요:
    • 사용자가 완료 결과를 확인했다
    • archive 이동을 승인했다
  • 리뷰 코멘트: 없음

범위 제외

  • 야간 기준선 없이 코드 최적화에 들어가지 않는다.
  • C#/Swift 포팅, package registry release, 외부 CI/CD runner 연결은 포함하지 않는다.
  • Go/Python reference path를 불필요하게 변경하지 않는다.

작업 컨텍스트

  • 관련 경로: agent-roadmap/milestones/nightly-large-payload-baseline.md, agent-test/local/proto-socket-performance-baseline.md, agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_performance.sh, agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh
  • 선행 작업: 야간 대용량 패킷 성능 기준선
  • 표준선: 이 마일스톤은 [계획] 상태지만 야간 기준선 결과를 받은 뒤 구현 잠금을 해제하고 1차 구현 계획으로 들어간다.