이 글에서는 블록 장치를 위해 설계된 지속 메모리 캐시인 PCACHE에 대해 논의하며, 이는 장치 매퍼(DM) 프레임워크로 포팅되었습니다. 이 혁신적인 캐싱 솔루션은 16 MiB의 지속 메모리(persistent memory, pmem) 세그먼트를 특징으로 하며, 성능 향상을 위해 로그 구조 할당(log-structured allocation) 방법을 활용합니다.
PCACHE의 주요 기술적 측면 중 하나는 다중 서브트리 레드-블랙 트리(Red-Black tree, RB-tree) 인덱스입니다. 이 인덱스는 데이터 접근 시 높은 수준의 병렬성을 허용합니다. 또한, 캐시된 데이터의 무결성을 보장하기 위해 선택적으로 각 항목에 대해 CRC32 체크섬을 제공합니다. 시스템은 백그라운드 쓰기 작업자와 수위(watermark)에 의해 구동되는 가비지 컬렉션(garbage collection, GC) 메커니즘을 포함하여 메모리를 효율적으로 관리합니다. 더불어, PCACHE는 충돌 안전(crash-safe) 설계를 갖추고 있으며, 시작 시 지정된 key_tail에서 키 세트를 스캔하는 재생(replay) 메커니즘을 제공합니다.
그러나 현재 PCACHE의 구현에는 몇 가지 제한 사항이 있습니다. 현재 단계에서는 write-back 모드만 지원하며, 캐시 무효화 방법은 FIFO로 제한되어 있습니다. 향후 업데이트에서는 LRU(Least Recently Used) 및 ARC(Adaptive Replacement Cache)와 같은 다른 전략을 통합할 계획입니다. 이 초기 버전의 PCACHE는 지속 캐싱 기술에서 중요한 진전을 나타내며, 다양한 애플리케이션에서 블록 장치 작업의 성능과 신뢰성을 향상시킬 가능성이 있습니다.
* 이 글은
phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은
이곳에서 확인하실 수 있습니다.