origin/dev FDP baseline status (2026-06-25 시점)
"FDP base가 들어오기 직전의 dev는 어떤 상태인가" — daegyu의 ankit#1이 머지될 자리.
1. 상류 dev의 FDP 코드 표면
FDP/placement/RUH 식별자 직접 검색 결과: 0건.
# 검증
grep -ni "fdp\|placement\|ruh" lmcache/v1/storage_backend/plugins/rust_raw_block_backend.py
grep -ni "fdp\|placement\|ruh" lmcache/v1/distributed/l2_adapters/raw_block_l2_adapter.py
grep -ni "fdp\|placement\|ruh" lmcache/v1/storage_backend/raw_block/core.py
# → 모두 empty
→ dev에는 FDP/placement/RUH 관련 코드가 단 한 줄도 없다. ankit#1이 base가 된다.
2. ankit#1이 들어가야 할 자리 (인접 baseline)
FDP는 0줄이지만 FDP가 들어갈 인프라/옵션은 이미 존재한다.
2-1. in-process plugin (rust_raw_block_backend.py)
| 항목 | 위치 | 의미 |
|---|---|---|
per_tp_device_paths 매핑 | rust_raw_block_backend.py:43-71 | TP rank → device path. ankit#1은 이 위에서 rank-based PID 정책을 얹는다. |
_get_per_tp_device_path(per_tp_devices, tp_rank) | rust_raw_block_backend.py:59-71 | rank별 device 분리 lookup |
| TP rank 결정 | rust_raw_block_backend.py:111-123 | self.metadata.worker_id 사용 |
extra config 인터페이스 | 전체 __init__ | rust_raw_block.* prefix |
2-2. MP adapter (raw_block_l2_adapter.py)
| 항목 | 위치 | 의미 |
|---|---|---|
RawBlockL2AdapterConfig | raw_block_l2_adapter.py:66-146 | single device_path + I/O 옵션 |
per_tp_device_paths 거부 | raw_block_l2_adapter.py:154-157 | "per_tp_device_paths is not supported in MP raw_block mode" |
use_uring_cmd flag | raw_block_l2_adapter.py:177 | FDP는 이 위에서만 동작 가능 |
max_data_transfer_size | raw_block_l2_adapter.py:178 | ankit#1 #10812502의 auto-config는 미적용 |
2-3. 공통 코어 (raw_block/core.py)
RawBlockCore: 단일 device 단일 FD 소유, 모든 worker가 공유 (에이전트 탐색 결과).RawBlockKeySpec:placement_hint같은 필드 없음.- write 경로 분기: posix / io_uring batched / io_uring_cmd passthrough.
2-4. Rust 측 (rust/raw_block/src/lib.rs)
- io_uring_cmd 인프라는 이미 dev에 존재 (#3274 머지 완료 2026-06-11).
- ankit#1이 추가하는 것:
fetch_fdp_statusPyO3 메서드 +batched_write/write_uring의placement_id인자. - NVMe directive 인코딩 자리 (
cmd.cdw13,cmd.cdw12): ankit#1이 채워야 하는 cdw 슬롯.
3. PR landscape — FDP의 머지 경로
3-1. daegyu의 FDP PR
| PR | 상태 | 비고 |
|---|---|---|
| ankit-sam/LMCache#1 | OPEN since 2026-05-08 (7주째 정체) | 8 commits, 본 레포로 가지 않음 |
3-2. daegyu의 LMCache 본 레포 OPEN PR (FDP 무관, raw-block 다른 영역)
| # | 제목 | 생성일 |
|---|---|---|
| #3873 | raw-block: persist stable device identity in checkpoints | 2026-06-25 |
| #3835 | Reduce bringup time with parallel batched recovery slot-header validation | 2026-06-23 |
| #3748 | feat(local-disk): extend by_gpu sharding for worker-aware multi-device paths | 2026-06-18 |
| #3527 | [Core] Restore LRU eviction for rust raw-block backend | 2026-06-04 |
| #3305 | Add raw-block payload checksum validation (DRAFT) | 2026-05-18 |
관찰: FDP는 상류 머지 우선순위에서 밀려있다. daegyu가 본인이 본 레포로 가져갈 계획(사용자 진술).
3-3. 다른 FDP 라인 — dongdongju PoC
- 브랜치:
DongDongJu/LMCache:fdp-waf-agentic-replay-poc - 39 commits / 95 files / 15,678 lines added
- ankit#1과 별개 라인: rank-based 단일 ID + ankit
fetch_fdp_status↔ PoC N-RUH list + worker 분배 + data/metadata RUH 완전 분리 - 상세:
01_branch_audit/02_ankit_sam_pr1_diff.md
4. dev 머지 기준 status 한 줄
"FDP 코드는 0줄. 단, FDP가 plug in될 인프라 (io_uring_cmd, per_tp_device_paths, RawBlockCore 단일 device 모델, RawBlockL2AdapterConfig)는 모두 dev에 존재. ankit#1 머지가 첫 base, MP 어댑터 통합은 별도 작업."
5. 검증 명령 모음
# FDP 식별자 0건 확인
grep -rni "fdp\|placement\|ruh" lmcache/v1/storage_backend/ lmcache/v1/distributed/ | grep -v __pycache__
# daegyu PR 목록
gh pr list --repo LMCache/LMCache --search "author:daegyu94" --state open
gh pr list --repo ankit-sam/LMCache --state all
# 상류 dev에 daegyu FDP 커밋 있는지
git log origin/dev --author="daegyu" --oneline # → empty
# ankit/pr-1 = remotes/ankit/pr-1 (8 commits)
git log remotes/ankit/pr-1 --author="daegyu" --oneline