본문으로 건너뛰기

MP 모드 vs In-process 모드

변경 검증 가이드 (다음 fetch 후):

git log eaa2bfee..HEAD -- docs/source/mp/ docs/source/developer_guide/extending_lmcache/ docs/source/getting_started/quickstart.rst
git log eaa2bfee..HEAD -- lmcache/v1/storage_backend/plugins/rust_raw_block_backend.py lmcache/v1/distributed/l2_adapters/raw_block_l2_adapter.py

위에 커밋이 잡히면 (1) 권장 모드 / standalone service 정의가 바뀌었는지, (2) StoragePluginInterface ↔ L2AdapterInterface 구분이 흐려졌거나 한쪽으로 통합됐는지 확인. 후자면 "인터페이스 차이" 표 + "FDP/HC-SSD 작업 시 권장 경로" 섹션 다시 써야 함.


두 모드의 정의

모드구성LMCache 위치
In-process (legacy)LMCache 가 vLLM 프로세스 안에 임베드vLLM 프로세스 내부
MP (multiprocess)LMCache 가 별도 독립 서비스, vLLM 이 ZMQ 로 접속분리된 프로세스/컨테이너

근거: docs/source/mp/index.rst:1-7

LMCache multiprocess (MP) mode runs LMCache as a standalone service that vLLM instances connect to over ZMQ.

"vLLM 임베드" 의 정확한 의미

raw_block_line.md:33"In-process 모드 (legacy, vLLM 임베드)"

❌ "vLLM 은 항상 임베드 방식이다" ✅ "legacy In-process 모드일 때의 형태가 vLLM 프로세스 안에 LMCache 를 임베드해서 쓰는 방식"

vLLM 자체는 두 모드 모두 지원함. legacy 인지 MP 인지에 따라 LMCache 가 vLLM 과 같은 프로세스에 들어가느냐 / 별도로 도느냐가 갈림.

인터페이스 차이

모드사용하는 인터페이스클래스
In-processStoragePluginInterfaceRustRawBlockBackend
MPL2AdapterInterfaceRawBlockL2Adapter

근거: docs/source/developer_guide/extending_lmcache/storage_plugins.rst:60-62

The storage plugin system described above applies to non-MP mode (single-process). For MP mode (multiprocess), LMCache provides the plugin L2 adapter type ...

비동기 메커니즘 차이

자세히는 async_mechanism.md 참고.

항목non-MPMP
비동기 알림asyncio Future (진동벨)eventfd (커널 도어벨)
신호가 프로세스 경계 넘는가?
asyncio loop외부(vLLM)에서 주입받음사용 안 함

FDP/HC-SSD 작업 시 권장 경로

MP 모드 → L2AdapterInterface 구현 → plugin 어댑터 타입으로 등록

이유: