Skip to main content
QUICK REVIEW

[논문 리뷰] Architecture-Aware, High Performance Transaction for Persistent Memory

Kai Wu, Jie Ren|arXiv (Cornell University)|2019. 03. 14.
Advanced Data Storage Technologies참고 문헌 47인용 수 4
한 줄 요약

이 논문은 영구 메모리용 아키텍처 인식 트랜잭션 시스템인 Archapt를 제안한다. 이는 하드웨어 캐시 동작을 활용하고 저장성 캐시 라인을 결합함으로써 캐시 라인 플러시 오버헤드를 줄인다. 캐시 체류 시간을 추정하고 체크섬 기반 일致성 복구를 통해 Archapt는 PMDK 및 Mnemosyne 기준과 비교해 평균적으로 캐시 플러시를 66% 감소시키고, 처리량을 19% 향상시킨다.

ABSTRACT

Byte-addressable non-volatile main memory (NVM) demands transactional mechanisms to access and manipulate data on NVM atomically. Those transaction mechanisms often employ a logging mechanism (undo logging or redo logging). However, the logging mechanisms can bring large runtime overhead (8%-49% in our evaluation), and 41%-78% of the overhead attributes to the frequent cache-line flushing. Such large overhead significantly diminishes the performance benefits offered by NVM. In this paper, we introduce a new method to reduce the overhead of cache-line flushing for logging-based transactions. Different from the traditional method that works at the program level and leverages program semantics to reduce the logging overhead, we introduce architecture awareness. In particular, we do not flush certain cache blocks, as long as they are estimated to be eliminated out of the cache because of the hardware caching mechanism (e.g., the cache replacement algorithm). Furthermore, we coalesce those cache blocks with low dirtiness to improve the efficiency of cache-line flushing. We implement an architecture-aware, high performance transaction runtime system for persistent memory, Archapt. Our results show that comparing with an undo logging (PMDK) and a redo logging (Mnemosyne), Archapt reduces cache-line flushing by 66% and improves system throughput by 19% on average (42% at most). Our crash tests with four hardware caching policies show that Archapt provides a strong guarantee on crash consistency.

연구 동기 및 목표

  • 로그 기반 트랜잭션의 높은 런타임 오버헤드, 특히 빈번한 캐시 라인 플러시로 인한 영구 메모리에서의 문제 해결
  • 트랜잭셔널 시스템에서 명시적 캐시 라인 플러시 명령어로 인한 성능 저하 완화
  • 캐시 라인 플러시를 최소화하면서도 강력한 크래시 일치성 유지 — 아키텍처 인식 최적화를 통한
  • 저장성 캐시 블록을 결합함으로써 캐시 라인 플러시의 효율성 향상
  • 하드웨어 수정 없이 소프트웨어만으로 캐시 체류 시간을 추정할 수 있는 경량 메커니즘 제공

제안 방법

  • 하드웨어 캐시 교체 정책(예: LRU)의 소프트웨어 근사치를 사용해 영구 객체의 장성 캐시 블록이 캐시에 그대로 남아 있을지를 추정한다.
  • 하드웨어 캐시 교체 메커니즘이 곧바로 캐시에서 내보내기 때문에 플러시 명령어를 생략한다.
  • 저장성(평균 49%) 캐시 블록을 결합함으로써 전체 라인 플러시 수를 줄이고 메모리 대역폭 효율성을 향상시킨다.
  • 크래시 후 불일치하는 영구 객체를 탐지하고 수정하기 위해 체크섬 메커니즘을 사용하여 크래시 일치성 보장한다.
  • 언두 및 리도 로깅 메커니즘을 모두 지원하는 트랜잭션 런타임 시스템(Archapt)에 최적화를 통합한다.
  • 기존 하드웨어 캐시 메커니즘을 암묵적으로 활용하여, 캐시에서 내보내기 전에 명시적 플러시 명령어가 필요 없도록 한다.

실험 결과

연구 질문

  • RQ1아키텍처 인식 캐시 체류 시간 추정이 영구 메모리 트랜잭션에서 명시적 캐시 라인 플러시 수를 줄일 수 있는가?
  • RQ2저장성 캐시 블록 결합이 캐시 라인 플러시 효율성 향상에 얼마나 효과적인가?
  • RQ3하드웨어 캐시 행동의 소프트웨어 근사치가 플러시를 생략하면서도 크래시 일치성을 유지할 수 있는가?
  • RQ4캐시 라인 플러시를 생략했을 때 시스템 처리량과 지연에 어떤 영향을 미치는가?
  • RQ5다양한 하드웨어 캐시 정책 하에서 체크섬 기반 불일치 탐지 및 복구 메커니즘이 얼마나 견고한가?

주요 결과

  • Archapt는 기준 언두(PMDK) 및 리도(Mnemosyne) 로깅 메커니즘과 비교해 평균적으로 캐시 라인 플러시를 66% 감소시켰다.
  • TPC-C, YCSB, OLTP-bench 워크로드 전반에서 평균 처리량이 19% 향상되었고(최대 42%), 성능 향상이 확인되었다.
  • 네 가지 하드웨어 캐시 정책에서 100번의 크래시 테스트 전부에서 체크섬 메커니즘이 불일치하는 영구 객체를 성공적으로 탐지하고 수정했다.
  • 100번의 크래시 테스트 동안 심지어 수십억 건의 업데이트가 이루어져도 불일치하는 영구 객체는 최대 수백 개 이하로만 감지되었으며, 이는 높은 신뢰성을 의미한다.
  • 언두 및 리도 로깅 모두에서 플러시된 캐시 라인의 평균 장성은 49%였으며, 이는 저장성 블록을 결합함으로써 플러시 효율성이 크게 향상됨을 확인한다.
  • 이전 연구가 성능 향상을 위해 지속성 순서 제약을 완화한 것과 달리, 이 방법은 쓰기 순서 제약을 완화하지 않으면서도 강력한 크래시 일치성을 유지한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.