Handoff: FDP 기여 작업 — 히스토리/status 정리 완료, 발굴 아이템 실행 단계
다른 세션을 위한 인수인계 문서. 이전 세션에서 FDP 관련 히스토리·현재 status·MP gap·정책 매핑· 발굴 아이템 정리를 끝냈고, 이 문서는 그 결과 요약 + 다음에 무엇을 할지 알려준다.
1. 사용자 컨텍스트 (먼저 알고 있어야 할 것)
- 사용자: 나연 (LMCache 컨트리뷰터). MP mode 기준 FDP 효과 입증 → 개선 → 상류 기여가 목표.
- 사용자가 합의한 작업 흐름:
- 히스토리 파악 ✅
- 현재 status 파악 ✅
- 현재 아키텍처 기준 status 파악 ✅
- FDP PoC로 효과 입증 + 아이템 발굴 ← 현재 위치
- 기여
- 이미 진행 중인 FDP PoC:
DongDongJu/LMCache:fdp-waf-agentic-replay-poc(나연/상윤이 실제 측정 중). 단순 FDP 효과 입증용. 이건 작업 흐름 4단계의 핵심 도구. - daegyu94: ankit-sam fork에 FDP base PR (
ankit-sam/LMCache#1)을 열어둔 채 7주째 정체. 본인이 본 레포로 가져갈 예정이라고 사용자가 진술.
2. 산출물 — 위치와 역할
private/work/fdp/contribution/ 디렉토리 (이번 작업으로 신설). 단계 번호(01~05) 위에서 돌아가는
메타 작업 디렉토리이며, 기존 private/work/fdp/01_branch_audit/(dongdongju PoC 중심 audit)와는
관점이 다르고 보완 관계 — 중복 없음.
| 파일 | 역할 | 새 세션이 가장 먼저 봐야 하는가 |
|---|---|---|
README.md | 디렉토리 안내 + 핵심 결론 5줄 + 01_branch_audit과의 분담 | 예 (5분) |
items.md | 발굴 아이템 9개 + 우선순위 + 미해결 4건. 이 디렉토리의 최종 산출물 | 예 (작업 계획) |
ankit_base_commits.md | ankit-sam/LMCache#1 8커밋 시간순 해부 (daegyu base) | 필요 시 |
dev_baseline_status.md | origin/dev FDP 표면 = 0줄 + 인접 baseline + PR landscape | 필요 시 |
mp_integration_gap.md | ankit#1 (in-process plugin) → MP adapter 이식 충돌 + plug-in 후보 | 필요 시 |
policy_proposals.md | daegyu의 rank/cache_salt/model 3정책 매핑 + 검증 매트릭스 | 필요 시 |
추가로 갱신된 파일:
../../../CHANGELOG.md— 2026-06-25 섹션에[new]6건 기록 완료../../../tasks/index.md—FDP-PoC행에 contribution/ 링크 추가,_마지막 갱신_갱신 완료
3. 핵심 결론 (다음 세션이 다시 안 파도 되도록)
-
origin/dev에 FDP 코드는 0줄.
grep -ni "fdp\|placement\|ruh"결과 전무 (dev_baseline_status.md §1). ankit-sam/LMCache#1 (daegyu의 8커밋)이 base가 됨. -
ankit#1의 placement 정책은 placeholder.
_assign_fdp_placement_rank_based가placement_ids[0]하나만 반환. 이름은 거창하지만 실제 정책은 미정 (ankit_base_commits.md커밋 #5). -
lifetime isolation은 이미 hardcode. data RUH ≠ metadata RUH (FDP directive를 metadata엔 안 붙임). 이게 첫 번째 정량 효과 측정 후보 (PR-C). 사용자가 진행 중인 PoC harness
separatedvsmixed모드가 곧 이 측정. -
MP가
per_tp_device_paths를 명시적 거부.raw_block_l2_adapter.py:154-157. 결과적으로 MP에서는 FDP placement_id가 isolation 유일 수단 — 정책 ① (rank isolation)도 살아있는 후보. "rank는 device 분리로 우회됐다"는 단정은 topology dependent이라 틀린 일반화 (policy_proposals.md §0). -
상류 머지 경로가 미정. daegyu의 본 레포 OPEN PR 5건은 다른 raw-block 작업이고 FDP는 빠져있음. ankit#1만 7주째 OPEN — 작업 진입 전 daegyu와 정렬 필요.
4. 다음 세션이 할 일 — 우선순위
items.md에 9개 아이템 정리됨. 우선순위 (사용자와 합의 후 확정 예정):
- I-E4 — dongdongju PoC를 MP setup에 실제로 돌려보고 trace. 다른 모든 작업의 전제. 사용자 진술: "아마도 fdp poc 코드는 mp mode에서 동작하는 거로 되어있긴할거야" — 실증 필요.
- I-E1 — data/metadata RUH 분리의 WAF 정량 효과 측정 (
benchmarks/fdp_waf_stress/활용). - I-C3 —
PlacementPolicy추상 vs caller stamp 결정. daegyu와 합의 필요. - I-C1 — MP adapter (
RawBlockL2AdapterConfig)에 FDP surface 추가. - I-E2 — 정책 ① rank isolation 효과 측정.
- I-C4 — ankit#1의
fetch_fdp_status자동 조회를 dongdongju 측에 통합. - I-O1 — FDP 관측 지표 (WAF, RU utilization 등). 8~9. 후순위: I-E3 (access pattern 자료), I-C2 (fail-fast 검증), I-O2 (CLI).
5. 미해결 — 사용자에게 물어야 할 4가지
items.md §6. 시작 전 클리어해야 막다른 골목 안 만남:
- daegyu와 머지 경로 정렬 — ankit#1을 본 레포로 가져갈 일정, 우리가 그 위에 stacked PR로 갈지.
- PoC MP 동작 실증 — I-E4를 누가 어떤 환경에서.
- access pattern 자료 위치 — *"상윤/나연님이 정리하신 자료"*가 어디 있는지 (I-E3).
- PlacementPolicy 추상화 방향 — I-C3의 (A) core abstraction / (B) caller stamp / (C) hybrid.
6. 시작 명령 (새 세션 권장 첫 동작)
1) Read private/work/fdp/contribution/README.md # 5분
2) Read private/work/fdp/contribution/items.md # 작업 계획
3) 사용자에게 §5의 4가지 미해결 항목 확인 — 또는 사용자가 이미 답 줬으면 #1부터 진입
4) I-E4 (PoC를 MP에 돌려서 trace)부터 착수
만약 사용자가 다른 시작점을 원하면 그 우선순위 따르기. items.md는 seed일 뿐 확정 아님.
7. 주의 — 룰
이 디렉토리(private/)의 운영 룰: ../../../CLAUDE.md. 핵심:
- 새 .md 만들거나 의미 있는 수정 시
private/CHANGELOG.md최상단에[new]/[mod]기록. - 새 task 문서 만들 때
private/tasks/index.md도 동기화 (이미 FDP-PoC 행 갱신됨). - 같은 날짜 섹션 있으면 그 안에 bullet만 추가 (새 헤더 만들지 말 것).
currentDate는 시스템 컨텍스트에서 확인.
8. 참고 — 이전 세션에서 확인한 핵심 파일
../01_branch_audit/03_fdp_implementation_audit.md— dongdongju PoC 7카테고리 audit + PR-A~PR-E 분할안../01_branch_audit/placement_policy_notes.md— PoC_select_fdp_ruh3단 fallback 분석lmcache/v1/storage_backend/plugins/rust_raw_block_backend.py— in-process plugin (FDP 0줄,per_tp_device_paths있음)lmcache/v1/distributed/l2_adapters/raw_block_l2_adapter.py— MP adapter (per_tp_device_paths거부 line 154-157)lmcache/v1/storage_backend/raw_block/core.py— sharedRawBlockCore(단일 device, FD 소유)- git ref
remotes/ankit/pr-1— daegyu의 8커밋