persistent memory use cases in modern software
play

Persistent Memory Use Cases in Modern Software Architectures - PowerPoint PPT Presentation

Persistent Memory Use Cases in Modern Software Architectures Olasoji Denloye SW Engineer Intel Corporation Persistent Memory 3 Properties of Persistent Memory Byte-addressable like DRAM Direct user-level access Lowers DRAM


  1. Persistent Memory Use Cases in Modern Software Architectures Olasoji Denloye SW Engineer Intel Corporation

  2. Persistent Memory

  3. 3

  4. Properties of Persistent Memory • Byte-addressable like DRAM • Direct user-level access • Lowers DRAM footprint • Works with both File and Memory APIs • Multiple Modes • Memory Mode - Persistent Memory as Main Memory • App Direct Mode - OS aware of Persistent Memory 4

  5. The SNIA NVM Programming Model 5

  6. Common Use Cases • Caches • Volatile Memory • Data structures for fast lookup • Persistent Memory • Stores • Device for persisting data • Buffers • Temporary data storage 6

  7. Caches

  8. Caches • Caches are fast and lightweight • Persistent Memory provides larger data structures capacities than DRAM • Typically live on DRAM for speed • Faster restart times • Constrained by DRAM size 8

  9. HBase BucketCache - Manages buckets of memory containing fixed size blocks - Moved the cache from DRAM to Persistent Memory - Uses mapped file based allocator https://issues.apache.org/jira/browse/HBASE-21874 source: https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.1.4/hbase-data-access/content/overview-hbase-io.html 9

  10. MemcacheD – DRAM - In memory Key-Value store DRAM - Used as a cache HashTable - Designed to be simple and fast Slab Slab Eviction 10

  11. MemcacheD – Restartable Cache DRAM • Custom mapped file allocator • Hybrid data structure Hashtable - Hashtable on DRAM - Slabs on Persistent Memory • Restartable - Flush CPU caches on controlled shutdown - Rebuild Hashtable on restart Slab https://github.com/memcached/memcached/wiki/WarmRestart Slab Persistent Memory 11

  12. Spark SQL Spark OAP (Optimized Analytics Platform) • OAP is a SparkSQL accelerator • IO cache • Uses Persistent Memory Development Kit (PMDK) : libvmemcache • Open source • Volatile LRU cache • Keys in DRAM, values on PMEM https://github.com/Intel-bigdata/OAP 12

  13. Storage

  14. Storage • Persists data • Persistent Memory is faster than NVME drives • Large capacity • No need for • Typically SSDs or HDDs serialization/deserialization • Update in place • Simpler code 14

  15. Cassandra Write Path 15

  16. Cassandra Read Path 16

  17. Write Path – Persistent Memory Storage 17

  18. Read Path – Persistent Memory Storage 18

  19. Cassandra Pluggable Storage Engine API 19

  20. Cassandra Persistent Memory Storage Engine • Uses open source components • Low level Persistence Library • PMDK • Adaptive Radix Tree • Pluggable engine • 6 - 8X speedups on reads and writes https://github.com/intel/cassandra- pmem 20

  21. Considerations on Persistent Use of Persistent Memory • Data Integrity • On a controlled shutdown : flush caches • On an uncontrolled shutdown (e.g. power failure, crash): transactions • Concurrency • CAS + flush is not atomic • Fragmentation • Existing problem worsened by longer lived memory pools 21

  22. Summary • Persistent memory is available and valuable • Upstreamed in open source projects • Multiple ways to extract value • No code change OR data structure redesign • Libraries available to help • PMDK suite • Low Level Persistence Library - Java • Memory Mapped files 22

  23. Links Hbase Bucket Cache: https://issues.apache.org/jira/browse/HBASE-21874 MemcacheD: https://github.com/memcached/memcached/wiki/WarmRestart Spark OAP: https://github.com/Intel-bigdata/OAP Cassandra PMEM: https://github.com/intel/cassandra-pmem PMDK: https://pmem.io/pmdk/ Libvmemcache: https://github.com/pmem/vmemcache Low Level Persistence Library: https://github.com/pmem/llpl Adaptive Radix Tree: https://db.in.tum.de/~leis/papers/ART.pdf 23

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend