본문으로 건너뛰기

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-71TP rank → device path. ankit#1은 이 위에서 rank-based PID 정책을 얹는다.
_get_per_tp_device_path(per_tp_devices, tp_rank)rust_raw_block_backend.py:59-71rank별 device 분리 lookup
TP rank 결정rust_raw_block_backend.py:111-123self.metadata.worker_id 사용
extra config 인터페이스전체 __init__rust_raw_block.* prefix

2-2. MP adapter (raw_block_l2_adapter.py)

항목위치의미
RawBlockL2AdapterConfigraw_block_l2_adapter.py:66-146single 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 flagraw_block_l2_adapter.py:177FDP는 이 위에서만 동작 가능
max_data_transfer_sizeraw_block_l2_adapter.py:178ankit#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_status PyO3 메서드 + batched_write/write_uringplacement_id 인자.
  • NVMe directive 인코딩 자리 (cmd.cdw13, cmd.cdw12): ankit#1이 채워야 하는 cdw 슬롯.

3. PR landscape — FDP의 머지 경로

3-1. daegyu의 FDP PR

PR상태비고
ankit-sam/LMCache#1OPEN since 2026-05-08 (7주째 정체)8 commits, 본 레포로 가지 않음

3-2. daegyu의 LMCache 본 레포 OPEN PR (FDP 무관, raw-block 다른 영역)

#제목생성일
#3873raw-block: persist stable device identity in checkpoints2026-06-25
#3835Reduce bringup time with parallel batched recovery slot-header validation2026-06-23
#3748feat(local-disk): extend by_gpu sharding for worker-aware multi-device paths2026-06-18
#3527[Core] Restore LRU eviction for rust raw-block backend2026-06-04
#3305Add 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