Analysis of Persistent Memory Utilization with WHISPER

an analysis of persistent memory use with whisper n.w
1 / 26
Embed
Share

Explore the utilization of Persistent Memory (PM) with WHISPER, focusing on improved system support, benchmark suites, and optimization techniques like HOPS. Understand the upcoming era of Persistent Memory, guarantees after failure, achieving consistency and durability, and various approaches to ensure data integrity and reliability.

  • Memory
  • Persistence
  • Optimization
  • Data Integrity
  • PM

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. 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

  2. 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-50 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

  3. Outline WHISPER: Wisconsin-HP Labs Suite for Persistence WHISPER Analysis HOPS : Hands-Off Persistence System 3

  4. Persistent Memory is coming soon PM = NVM attached to CPU on memory bus CPU CPU Offers low latency reads and persistent writes Cache hierarchy Persistent Memory (NVM on memory bus) Allows user-level, byte- addressable loads and stores Volatile Memory 4

  5. What guarantees after failure ? Durability = Data survives failure Consistency = Data is usable Data PM Data Pointer Pointer Pointer CACHE 1 . Data update followed by pointer update in cache 2. Pointer is evicted from cache to PM 3. Data lost on failure, dangling pointer persists 5

  6. Achieving consistency & durability Data Data Data Pointer Data PM flush Pointer flush 4 . Flush pointer update to PM 3 . Store pointer update in cache 1 . Store data update in cache 2 . Flush data update to PM Ordering = Useful building block of consistency mechanisms Epoch = Set of writes to PM guaranteed to be durable before ANY subsequent writes become durable Ordering primitives: SFENCE on x86-64 6

  7. Approaches to consistency & durability Native Application-specific optimizations Application TX TX load/ store NVML read/write Mnemosyne Persistence library Atomic allocations, transactions load/store VFS ext4- DAX PMFS PM-aware Filesystems POSIX interface Persistent Memory (PM) 7

  8. Whats the problem ? Lack of standard workloads slows research Micro-benchmarks not very representative Partial understanding of how applications use PM 8

  9. WHISPER benchmark suite Benchmark Type Brief description (*Adapted to PM) Echo* KV store Scalable, multi-version key-value store N-store* Database Fast, in-memory relational DB Redis NVML Remote Dictionary Service C-tree Hashmap NVML NVML Microbenchmarks for simulations Microbenchmarks for simulations Vacation* Mnemosyne Online travel reservation system Memcached* NFS Mnemosyne PMFS In-memory key-value store 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

  10. Outline WHISPER: Wisconsin-HP Labs Suite for Persistence WHISPER Analysis HOPS : Hands-Off Persistence System 10

  11. How many accesses to PM ? Total number of accesses in a WHISPER application 4% Accesses to PM Accesses to DRAM 96% Suggestion: Do not impede volatile accesses 11

  12. How many epochs/transaction ? Durability after every epoch impedes execution Expectation: 3 epochs/TX = log + data + commit Reality: 5 to 50 epochs/TX Suggestion: Enforce durability only at the end of a transaction 12

  13. What contributes to epochs ? Log entries Undo log: Alternating epochs of log and data Redo log: 1 Log epoch + 1 data epoch Persistent memory allocation 1 to 5 epochs per allocation Suggestion: Use redo logs and reduce epochs from memory allocator 13

  14. How large are epochs? # of 64B cachelines 1 2 3 4 5 6-63 >=64 Determines amount of state buffered per epoch 100% Fraction of epochs 75% Small epochs are abundant 50% 75% update single cacheline 25% 0% Large epochs in PMFS Suggestion: Consider optimizing for small epochs 14

  15. What are epoch dependencies ? 1 Self-dependency: B D A Cross-dependency: 2 C B 2 Why do they matter ? C Dependency can stall execution 3 D Thread 2 Thread 1 Measured dependencies in 50 microsec window 15

  16. How common are dependencies ? % cross-dep % self-dep 0 echo 54 0 nstore-ycsb 40 0 nstore-tpcc 27 0 redis 83 0 ctree 79 0 hashmap 81 0 vacation 40 0 memcached 64 5 pmfs-nfs 55 1 pmfs-exim 45 0 pmfs-mysql 18 0 25 50 75 100 Suggestion: Design multi-versioned buffers Epoch dependencies as a percentage of total epochs OR avoid updating same cacheline across epochs 16

  17. Outline WHISPER: Wisconsin-HP Labs Suite for Persistence WHISPER Analysis HOPS : Hands-Off Persistence System 17

  18. ACID Transactions ACID Transactions in HOPS TX_START 1 Prepare Log Entry N Persistent Writes Mutate Data Structure1 OFENCE N SFENCE DFENCE Commit Transaction TX_END 18

  19. HOPS Base System HOPS Persist buffers CPU CPU Persist Buffer Front End Persist Buffer Front End Private L1 Private L1 Shared LLC +Stores Loads Loads + Stores Persist Buffer Back End DRAM Controller PM Controller Volatile Persistent 19

  20. WHISPER HOPS Volatile memory hierarchy (almost) unchanged by PBs 4% accesses to PM, 96% to DRAM 5-50 epochs/transaction Order epochs without flushing Allows multiple copies of same cacheline in PB via timestamps Self-dependencies common Correct, conservative method using coherence & timestamps Cross-dependencies rare 20

  21. HOPS Evaluation with WHISPER Runtime normalized 1.2 Baseline, CLWB+ SFENCE OFENCE and DFENCE HOPS, 1 24% to x86-64 0.8 0.6 0.4 0.2 0 21

  22. 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

  23. Extra 23

  24. Summary WHISPER: Wisconsin-HP Labs Suite for Persistence 4% accesses to PM, 96% accesses to DRAM 5-50 epochs/TX, primarily small in size Cross-dependencies rare, self-dependencies common HOPS improves PM app performance by 24% More results in ASPLOS 17 paper and code at: research.cs.wisc.edu/multifacet/whisper/ 24

  25. A Simple Transaction using Epochs transaction_begin: Epoch 1 log[pobj.init] True Log entries TM_BEGIN(); log[pobj.data] 42 stored & pobj.data = 42; write_back(log) persisted. wait_for_write_back() pobj.init = True; Epoch 2 pobj.init True TM_END(); Variables pobj.data 42 stored & write_back(pobj) persisted. wait_for_write_back() transaction_end; 25

  26. Runtimes cause 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 Write Amplification 1200 1100 1000 1000 PERCENTAGE 800 600 400 200 100 10 0 26

More Related Content