Skip to main content
QUICK REVIEW

[논문 리뷰] Persistent Memory Transactions

Virendra J. Marathe, Achin Mishra|arXiv (Cornell University)|2018. 03. 09.
Distributed systems and fault tolerance참고 문헌 20인용 수 16
한 줄 요약

이 논문은 영구 메모리용 세션 런타임 시스템 세 종류—취소 로깅, 재실행 로깅, 쓰기 시 복사—에 대한 종합적인 성능 분석을 제시한다. 이는 작업하중의 액세스 패턴, 지속성 도메인 구성, 캐시 국지성, 부가 작업 오버헤드 등 다양한 요소에서의 성능 상충 관계를 평가한다. 연구 결과, 모든 설정에서 뛰어난 성능을 보이는 단일 런타임이 존재하지 않으며, 성능는 작업하중 특성과 지속성 장벽 지연, 메모리 계층 설계와 같은 시스템 수준의 요소에 매우 민감하게 영향을 받는다.

ABSTRACT

This paper presents a comprehensive analysis of performance trade offs between implementation choices for transaction runtime systems on persistent memory. We compare three implementations of transaction runtimes: undo logging, redo logging, and copy-on-write. We also present a memory allocator that plugs into these runtimes. Our microbenchmark based evaluation focuses on understanding the interplay between various factors that contribute to performance differences between the three runtimes -- read/write access patterns of workloads, size of the persistence domain (portion of the memory hierarchy where the data is effectively persistent), cache locality, and transaction runtime bookkeeping overheads. No single runtime emerges as a clear winner. We confirm our analysis in more realistic settings of three "real world" applications we developed with our transactional API: (i) a key-value store we implemented from scratch, (ii) a SQLite port, and (iii) a persistified version of memcached, a popular key-value store. These findings are not only consistent with our microbenchmark analysis, but also provide additional interesting insights into other factors (e.g. effects of multithreading and synchronization) that affect application performance.

연구 동기 및 목표

  • 영구 메모리 시스템에서 취소 로깅, 재실행 로깅, 쓰기 시 복사 트랜잭션 런타임 간의 성능 상충 관계를 체계적으로 평가하기.
  • 특히 읽기/쓰기 액세스 패턴을 포함한 작업하중 특성이 지속성 도메인 설계 및 캐시 국지성과 같은 시스템 수준 요소와 어떻게 상호작용하는지 분석하기.
  • 모든 세 트랜잭션 런타임 모델에 걸쳐 지속성 장벽 오버헤드를 줄이기 위해 최적화된 메모리 할당기 개발 및 통합하기.
  • 마이크로벤치마킹 결과를 실제 응용 프로그램에서 검증하기—예를 들어 키-값 스토어, SQLite 포트, memcached 영구화.
  • 시스템 설계자들이 작업하중 및 하드웨어 구성에 따라 트랜잭션 런타임을 선택하는 데 도움이 되는 실질적인 통찰 제공하기.

제안 방법

  • 영구 메모리용 취소 로깅, 재실행 로깅, 쓰기 시 복사 의미 체계 기반의 세 트랜잭션 런타임 시스템 설계 및 구현하기.
  • 메모리 계층에서 효과적인 지속성 구현을 위해 하드웨어 및 소프트웨어 지원 기반의 새로운 지속성 도메인 분류 체계 도입하기.
  • 할당 추적을 트랜잭션 로그에서 분리하여 모든 세 런타임 모델에서 재사용 가능한 메모리 할당기 개발하기.
  • 모든 런타임을 최적화하여 트랜잭션 커밋 시 필요한 지속성 장벽 명령어 수를 최소화하기.
  • 다양한 읽기/쓰기 비율과 지속성 장벽 지연을 고려해 인텔의 소프트웨어 에뮬레이션 플랫폼에서 마이크로벤치마킹 수행하기.
  • 세 가지 실제 응용 프로그램을 사용해 결과 검증하기—맞춤형 키-값 스토어, 포트된 SQLite, 영구화된 memcached.

실험 결과

연구 질문

  • RQ1영구 메모리에서 다양한 읽기/쓰기 액세스 패턴을 가진 경우, 취소, 재실행, 쓰기 시 복사 트랜잭션 런타임 전략은 어떻게 성능을 보이는가?
  • RQ2지속성 도메인 구성은 트랜잭션 런타임 성능에 어떤 영향을 미치는가? 특히 지속성 장벽 오버헤드 측면에서 설명하라.
  • RQ3캐시 국지성과 트랜잭션 런타임 부가 작업 오버헤드는 종단 간 트랜잭션 성능에 어떤 영향을 미치는가?
  • RQ4실제 응용 프로그램은 마이크로벤치마킹에서 관찰된 성능 추세를 어느 정도 반영하는가?
  • RQ5다중 스레딩과 동기화 오버헤드는 동시성 작업하중에서 트랜잭션 성능에 어떤 영향을 미치는가?

주요 결과

  • 모든 작업하중과 시스템 구성에서 뛰어난 성능을 보이는 단일 트랜잭션 런타임(취소, 재실행, 쓰기 시 복사)은 존재하지 않는다.
  • 쓰기 시 복사 트랜잭션는 메모리 할당 및 복사 오버헤드로 인해 높은 지연을 보이며, 고처리량 작업하중에는 부적합하다.
  • 고밀도 쓰기 혼합 상황에서, 특히 memcached와 같은 다중 스레드 환경에서는 취소 로깅이 put 연산에서 200 마이크로초 이상의 높은 지연을 보인다.
  • 재실행 로깅은 읽기 중심 작업하중에서는 잘 작동하지만, 지속성 장벽 지연이 높을 경우 쓰기 후 읽기 시나리오에서 검색 오버헤드로 인해 성능 저하를 겪는다.
  • 트랜잭션 성능는 작업하중 액세스 패턴, 지속성 도메인 설계, 캐시 국지성 간의 상호작용에 매우 민감하며, 한 가지 크기의 솔루션은 존재하지 않는다.
  • memcached와 키-값 스토어와 같은 실제 응용 프로그램은 마이크로벤치마킹 추세를 확인하며, 동기화 및 네트워킹 오버헤드로 인한 추가 성능 저하 요소를 드러낸다.

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

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

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

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