raw_block NVMe Feature 발굴 (2026-06-10)
[!tldr] 업무 관점 takeaway FDP placement 정책은 daegyu94 레인이라 독립 착수 불가. 우리가 깨끗이 가져갈 수 있는 건 B1(L2/TTFT 텔레메트리, PoC 수치 백본) 과 A3(RU-aligned slot geometry, 정책 아님), TRIM 계열은 N1(런타임 discard, 상윤 조율 전제). 착수 전 점유 지도 확인 필수.
점유 지도 (착수 전 필수 확인)
| 영역 | owner / PR | 비고 |
|---|---|---|
| FDP placement 정책 | daegyu94(한대규) | 독립 착수 금지 |
| FDP directive hook | #3274에 hook 자리 존재 | _build_nvme_cmd_data(dtype, dspec) |
| io_uring core / NVMe passthrough | ankit-sam #3274 | APPROVED+MERGEABLE |
| checkpoint 포맷/압축 | Daejun #3226(머지됨)/#3449(오픈) | |
| non-MP eviction·LRU | daegyu94 #3394 | |
| BLKDISCARD(init 1회) | 상윤 #3519 | 런타임 TRIM(N1)은 별개 |
| observability L0/spans | #3255, #3607 | L2 storage-stage 지연은 미점유 |
축① — NVMe TRIM 계열
⭐ N1 — 런타임 TRIM (슬롯 free 시 discard) — 미착수
현상: delete_many·eviction이 슬롯을 인덱스에서만 회수. 회수된 슬롯 범위에 discard() 미발행. #3519 바인딩은 init 1회 전체 discard 외 미사용.
문제: 장기 가동 캐시(특히 MP, EvictionController가 churn 주도)에서 evict된 바이트가 디바이스에 mapped 잔존 → SSD GC가 stale까지 relocate → WAF↑, sustained write latency↑. Samsung NVMe 전략 직결.
제안: #3519의 per-range discard(offset, length) 바인딩 재사용, 슬롯 free 시 발행. 배칭(연속범위 병합 또는 background sweep), lock 밖 발행, discard_on_free config opt-in.
중복: PR landscape G1~G4·priority 어디에도 없음. #3519(init 전체)와 직교.
전제: discard owner = 상윤(3xdevv) 조율 + #3519 머지 선행.
N2 — 그 외 NVMe data-management (탐색적)
| 후보 | 판단 |
|---|---|
Write Zeroes(BLKZEROOUT) | discard보다 무거움, 보안 요건 시만. 후순위 |
| DSM access hints | 드라이버 의존, 효과 측정 어려움. 탐색 |
| NVMe Copy offload | 큰 설계. 장기 |
축② — MP 모드 raw_block 빈틈
| # | 내용 | 판정 |
|---|---|---|
| MP-A (= N1) | 런타임 TRIM은 MP eviction churn 집중 환경에서 효과 극대화 | N1을 MP 관점으로 포지셔닝 |
| MP-B | zero-copy fixed buffer MP 경로 미등록 (= 기존 G3) | #3274 의존, 신규 아님 |
| MP-C | per_tp_device_paths MP 거부 → 멀티 NVMe 샤딩 불가 | 큰 설계, 후순위 |
축③ — TRIM 외 목표정합 feature
⭐ A3 — RU-aligned slot geometry
- slot/write 단위를 FDP RU 경계에 정렬(config)
- placement 정책이 아닌 geometry → 우리 독립 영역
- 목표 ②(스토리지 스택 최적화) + ③(FDP/HC-SSD 연결) 동시 충족
⭐ B1 — L2/TTFT 단계별 latency 텔레메트리
- EventBus → OTel, L2 storage-stage 지연 히스토그램
- L2 storage-stage 지연 미점유, PoC 수치 백본
- 기존
latency_histogram_impl_plan.md재사용 범위 확인 필요
종합 추천 순위
| 순위 | 항목 | 독립성 | 선행 조건 |
|---|---|---|---|
| ① | B1 L2/TTFT 텔레메트리 | 높음 | EventBus/OTel 재사용 |
| ② | A3 RU-aligned slot geometry | 높음(정책 아님) | — |
| ③ | N1 런타임 TRIM | 중(상윤 조율) | #3519 머지 + 조율 |
| — | A1/A2 FDP placement | 낮음(daegyu94 레인) | 경계 조율 먼저 |
다음 액션
- B1: EventBus/OTel·
latency_histogram_impl_plan.md재사용 범위 확인 → L2 storage-stage 계측점 식별 - A3:
slot_bytes산출 경로(core.py) 확인 → RU 정렬 config 삽입점 식별 - N1: 상윤(3xdevv)에게 런타임 discard #3519 후속으로 조율 가능한지 확인
관련 페이지
- [[raw_block-PR-Landscape]] — 열린 PR 점유 현황
- [[raw_block-성능-우선순위]] — T1/L1/L2/P0 등 기존 우선순위
- [[기여-포인트-맵]] — 전체 기여 포인트 지도