An Analysis of Persistent Memory Use with WHISPER

Similar documents
An Analysis of Persistent Memory Use with WHISPER

BIBIM: A Prototype Multi-Partition Aware Heterogeneous New Memory

Non-Volatile Memory Through Customized Key-Value Stores

Mnemosyne Lightweight Persistent Memory

System Software for Persistent Memory

SoftWrAP: A Lightweight Framework for Transactional Support of Storage Class Memory

NVthreads: Practical Persistence for Multi-threaded Applications

Distributed Shared Persistent Memory

Hardware Undo+Redo Logging. Matheus Ogleari Ethan Miller Jishen Zhao CRSS Retreat 2018 May 16, 2018

Big and Fast. Anti-Caching in OLTP Systems. Justin DeBrabant

Hardware Support for NVM Programming

Closing the Performance Gap Between Volatile and Persistent K-V Stores

Soft Updates Made Simple and Fast on Non-volatile Memory

NVMFS: A New File System Designed Specifically to Take Advantage of Nonvolatile Memory

SAY-Go: Towards Transparent and Seamless Storage-As-You-Go with Persistent Memory

Blurred Persistence in Transactional Persistent Memory

Windows Support for PM. Tom Talpey, Microsoft

REMOTE PERSISTENT MEMORY ACCESS WORKLOAD SCENARIOS AND RDMA SEMANTICS

Architectural Support for Atomic Durability in Non-Volatile Memory

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

OS Support for Virtualizing Hardware Transactional Memory

Windows Support for PM. Tom Talpey, Microsoft

BzTree: A High-Performance Latch-free Range Index for Non-Volatile Memory

Accessing NVM Locally and over RDMA Challenges and Opportunities

Accelerating Microsoft SQL Server Performance With NVDIMM-N on Dell EMC PowerEdge R740

Load-Sto-Meter: Generating Workloads for Persistent Memory Damini Chopra, Doug Voigt Hewlett Packard (Enterprise)

Energy Aware Persistence: Reducing Energy Overheads of Memory-based Persistence in NVMs

Write-Optimized and High-Performance Hashing Index Scheme for Persistent Memory

JANUARY 20, 2016, SAN JOSE, CA. Microsoft. Microsoft SQL Hekaton Towards Large Scale Use of PM for In-memory Databases

RISC-V Support for Persistent Memory Systems

The SNIA NVM Programming Model: Latest Developments and Challenges. Andy Rudoff, Intel Corporation

Journaling. CS 161: Lecture 14 4/4/17

Empirical Study of Redo and Undo Logging in Persistent Memory

STORAGE LATENCY x. RAMAC 350 (600 ms) NAND SSD (60 us)

NV-Tree Reducing Consistency Cost for NVM-based Single Level Systems

DHTM: Durable Hardware Transactional Memory

The SNIA NVM Programming Model. #OFADevWorkshop

High Performance Transactions in Deuteronomy

Silent Shredder: Zero-Cost Shredding For Secure Non-Volatile Main Memory Controllers

DudeTx: Durable Transactions Made Decoupled

Efficient Persist Barriers for Multicores

Lazy Persistency: a High-Performing and Write-Efficient Software Persistency Technique

Dalí: A Periodically Persistent Hash Map

Update on Windows Persistent Memory Support Neal Christiansen Microsoft

Windows Persistent Memory Support

Benchmarking Persistent Memory in Computers

Rethink the Sync 황인중, 강윤지, 곽현호. Embedded Software Lab. Embedded Software Lab.

SMB3 Extensions for Low Latency. Tom Talpey Microsoft May 12, 2016

Relaxing Persistent Memory Constraints with Hardware-Driven Undo+Redo Logging

arxiv: v1 [cs.dc] 3 Jan 2019

January 28-29, 2014 San Jose

Defining a High-Level Programming Model for Emerging NVRAM Technologies

Steal but No Force: Efficient Hardware Undo+Redo Logging for Persistent Memory Systems

CSC 261/461 Database Systems Lecture 20. Spring 2017 MW 3:25 pm 4:40 pm January 18 May 3 Dewey 1101

Aerie: Flexible File-System Interfaces to Storage-Class Memory [Eurosys 2014] Operating System Design Yongju Song

Beyond Block I/O: Rethinking

Fast Forward I/O & Storage

Strata: A Cross Media File System. Youngjin Kwon, Henrique Fingler, Tyler Hunt, Simon Peter, Emmett Witchel, Thomas Anderson

Redesigning LSMs for Nonvolatile Memory with NoveLSM

Application Access to Persistent Memory The State of the Nation(s)!

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

Failure-atomic Synchronization-free Regions

Write-Optimized and High-Performance Hashing Index Scheme for Persistent Memory

THE IN-PLACE WORKING STORAGE TIER OPPORTUNITIES FOR SOFTWARE INNOVATORS KEN GIBSON, INTEL, DIRECTOR MEMORY SW ARCHITECTURE

Soft Updates Made Simple and Fast on Non-volatile Memory

FOEDUS: OLTP Engine for a Thousand Cores and NVRAM

Impact on Application Development: SNIA NVM Programming Model in the Real World. Andy Rudoff pmem SW Architect, Intel

CS 318 Principles of Operating Systems

Evaluating the Reuse Cache for mobile processors. Lokesh Jindal, Urmish Thakker, Swapnil Haria CS-752 Fall 2014 University of Wisconsin-Madison

Upcoming advances in Non-Volatile Memory (NVM) technologies

* Contributed while interning at SAP. September 1 st, 2017 PUBLIC

Persistence Parallelism Optimization: A Holistic Approach from Memory Bus to RDMA Network

Lecture 21: Logging Schemes /645 Database Systems (Fall 2017) Carnegie Mellon University Prof. Andy Pavlo

Exploiting the benefits of native programming access to NVM devices

SLM-DB: Single-Level Key-Value Store with Persistent Memory

New types of Memory, their support in Linux and how to use them with RDMA

arxiv: v1 [cs.dc] 13 Mar 2019

Memory Management Techniques for Large-Scale Persistent-Main-Memory Systems [VLDB 2017]

CA485 Ray Walshe Google File System

Barrier Enabled IO Stack for Flash Storage

Using Memory-Style Storage to Support Fault Tolerance in Data Centers

Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications. Last Class. Today s Class. Faloutsos/Pavlo CMU /615

Deukyeon Hwang UNIST. Wook-Hee Kim UNIST. Beomseok Nam UNIST. Hanyang Univ.

Token Coherence. Milo M. K. Martin Dissertation Defense

CrashMonkey: A Framework to Systematically Test File-System Crash Consistency. Ashlie Martinez Vijay Chidambaram University of Texas at Austin

InnoDB: Status, Architecture, and Latest Enhancements

Runtime Data Management on Non-volatile Memory-based Heterogeneous Memory for Task-Parallel Programs

Speculative Lock Elision: Enabling Highly Concurrent Multithreaded Execution

PM Support in Linux and Windows. Dr. Stephen Bates, CTO, Eideticom Neal Christiansen, Principal Development Lead, Microsoft

Microsoft SMB Looking Forward. Tom Talpey Microsoft

Optimizing Replication, Communication, and Capacity Allocation in CMPs

RocksDB Embedded Key-Value Store for Flash and RAM

ECE 598-MS: Advanced Memory and Storage Systems Lecture 7: Unified Address Translation with FlashMap

File Systems: Consistency Issues

Logging in Persistent Memory: to Cache, or Not to Cache? Mengjie Li, Matheus Ogleari, Jishen Zhao

arxiv: v2 [cs.dc] 2 May 2017

Persistent Memory: The Value to HPC and the Challenges

LogTM: Log-Based Transactional Memory

I/O Characterization of Commercial Workloads

Efficient Memory Mapped File I/O for In-Memory File Systems. Jungsik Choi, Jiwon Kim, Hwansoo Han

Transcription:

An Analysis of Persistent Memory Use with WHISPER Sanketh Nalli, Swapnil Haria, Michael M. Swift, Mark D. Hill, Haris Volos*, Kimberly Keeton* University of Wisconsin- Madison & *Hewlett- Packard Labs Executive Summary Facilitate better system support for Persistent Memory (PM) Wisconsin- HP Labs Suite for Persistence, a benchmark suite for PM 4% accesses to PM, 96% accesses to DRAM 5-5 epochs/tx, contributed by memory allocation & logging 75% of epochs are small, update just one PM cacheline Re- referencing PM cachelines: Common in a thread, rare across threads Hands Off Persistence System (HOPS) optimizes PM transactions WHISPER: research.cs.wisc.edu/multifacet/whisper 2 Outline Persistent Memory is coming soon WHISPER: Wisconsin- HP Labs Suite for Persistence WHISPER Analysis HOPS : Hands- Off Persistence System Cache hierarchy PM = NVM attached to on memory bus Offers low latency reads and persistent writes 3 Volatile Memory Persistent Memory (NVM on memory bus) Allows user- level, byte- addressable loads and stores 4

What guarantees after failure? Achieving consistency Durability = survives failure Consistency = is usable PM. Store data update in cache flush 2. Flush data update to PM 3. Store pointer update in cache flush 4. Flush pointer update to PM PM CACHE Ordering = Useful building block of consistency mechanisms. update followed by pointer update in cache 2. is evicted from cache to PM 3. lost on failure, dangling pointer persists Epoch = Set of writes to PM guaranteed to be durable before ANY subsequent writes become durable Ordering primitives: SFENCE on x86-64 5 6 PM systems for consistency What s the problem? Native Application- specific optimizations Persistent library Atomic allocations, transactions PM- aware Filesystems POSIX interface load/ store TX NVML Application load/store TX Mnemosyne Persistent Memory (PM) ext4- DAX read/write VFS PMFS Lack of standard workloads slows research Micro- benchmarks not very representative Partial understanding of how applications use PM 7 8 2

WHISPER benchmark suite Benchmark Type Brief description (*Adapted to PM) Echo* KV store Scalable, multi- version key- value store N- store* base Fast, in- memory relational DB Redis NVML Remote Dictionary Service C- tree NVML Microbenchmarks for simulations Hashmap NVML Microbenchmarks for simulations Vacation* Mnemosyne Online travel reservation system Memcached* Mnemosyne In- memory key- value store NFS PMFS Linux server/client for remote file access Exim PMFS Mail server;stores mails in per- user file MySQL PMFS Widely used RDBMS for OLTP 9 WHISPER: Wisconsin- HP Labs Suite for Persistence WHISPER Analysis Outline HOPS : Hands- Off Persistence System How many accesses to PM? Total number of accesses in a WHISPER application 4% 96% Accesses to PM Accesses to DRAM Suggestion: Do not impede volatile accesses How many epochs/transaction? Durability after every epoch impedes execution Expectation: 3 epochs/tx = log + data + commit Reality: 5 to 5 epochs/tx Suggestion: Enforce durability only at the end of a transaction 2 3

What contributes to epochs? Log entries Undo log: Alternating epochs of log and data Redo log: Log epoch + data epoch Persistent memory allocation to 5 epochs Suggestion: Use redo logs and reduce epochs from memory allocator 3 Fraction of epochs % 75% 5% 25% % # of 64B cachelines How large are epochs? 2 3 4 5 6-63 >=64 Determines amount of state buffered per epoch Small epochs are abundant 75% update single cacheline Large epochs in PMFS Suggestion: Consider optimizing for small epochs 4 What are epoch dependencies? A B C D 2 3 Thread Thread 2 Self- dependency: B à D Cross- dependency: 2 à C Why do they matter? Dependency can stall execution Measured dependencies in 5 microsec window 5 How common are dependencies? echo nstore- ycsb nstore- tpcc redis ctree hashmap vacation memcached pmfs- nfs pmfs- exim pmfs- mysql 5 8 27 4 4 45 Epoch dependencies as a percentage of total epochs 54 55 % cross- dep % self- dep Suggestion: Design multi- versioned buffers OR avoid updating same cacheline across epochs 64 79 8 83 6 4

Outline ACID ACID Transactions in HOPS WHISPER: Wisconsin- HP Labs Suite for Persistence TX_START WHISPER Analysis HOPS : Hands- Off Persistence System Prepare Log Entry Mutate Structure N N Persistent Writes OFENCE SFENCE DFENCE Commit Transaction 7 TX_END 8 HOPS Persist Base System buffers WHISPER HOPS 4% accesses to PM, 96% to DRAM Volatile memory hierarchy (almost) unchanged by PBs Persist Buffer Front End Loads + Stores Private L DRAM Controller Shared LLC Private L PM Controller Loads + Stores Persist Buffer Front End Persist Buffer Back End 5-5 epochs/transaction Self- dependencies common Cross- dependencies rare Order epochs without flushing Allows multiple copies of same cacheline in PB via timestamps Correct, conservative method using coherence & timestamps Volatile Persistent 9 2 5

Runtime normalized to x86-64 HOPS Evaluation with WHISPER.2.8.6.4.2 Baseline, HOPS, 24% CLWB+ OFENCE SFENCE and DFENCE 2 Summary Persistent Memory (PM) is coming soon Progress is slowed by ad- hoc micro- benchmarks We contributed WHISPER, open- source benchmark suite HOPS design, based on WHISPER analysis We hope for more similar analysis in the future! research.cs.wisc.edu/multifacet/whisper/ 22 Extra Summary WHISPER: Wisconsin- HP Labs Suite for Persistence 4% accesses to PM, 96% accesses to DRAM 5-5 epochs/tx, primarily small in size Cross- dependencies rare, self- dependencies common HOPS improves PM app performance by 24% More results in ASPLOS 7 paper and code at: 23 research.cs.wisc.edu/multifacet/whisper/ 24 6

A Simple Transaction using Epochs transaction_begin: Epoch log[pobj.init] True TM_BEGIN(); Log entries log[pobj.data] 42 stored & pobj.data = 42; write_back(log) persisted. pobj.init = True; wait_for_write_back() Epoch 2 pobj.init True TM_END(); Variables pobj.data 42 stored & write_back(pobj) persisted. wait_for_write_back() transaction_end; 25 Runtimes cause write amplification PERCENTAGE 2 8 6 4 2 Write Amplification PMFS Mnemosyne Logs every PM write PMFS NVML Clears log Auxiliary structures < 5% writes to PM Non- temporal writes Mnemosyne logs PMFS user- data 26 7