say goodbye to off heap caches
play

Say Goodbye to Off-heap Caches! On-heap Caches Using Memory-Mapped - PowerPoint PPT Presentation

Say Goodbye to Off-heap Caches! On-heap Caches Using Memory-Mapped I/O Iacovos G. Kolokasis 1 , Anastasios Papagiannis 1 , Foivos Zakkak 2 , Polyvios Pratikakis 1 , and Angelos Bilas 1 1 University of Crete & Foundation of Research and


  1. Say Goodbye to Off-heap Caches! On-heap Caches Using Memory-Mapped I/O Iacovos G. Kolokasis 1 , Anastasios Papagiannis 1 , Foivos Zakkak 2 , Polyvios Pratikakis 1 , and Angelos Bilas 1 1 University of Crete & Foundation of Research and Technology Hellas (FORTH), Greece 2 University of Manchester (Currently at Red Hat, Inc.)

  2. Outline • Motivation • TeraCache design for multiple heaps with different properties • How we reduce GC time? • How we grow TeraCache over a device? • Evaluation • Conclusions 2

  3. Increasing Memory Demands! 175ΖΒ • Big data systems cache large intermediate results in-memory 3x • Speed-up iterative workloads 50ΖΒ • Analytics datasets grow at a high rate • Today ~50ZB • By 2025 ~175ZB [Source: www.seagate.com | Seagate] • Big data systems request TBs of memory per server 3

  4. Spark: Caching Impacts Performance • Jobs cache intermediate data in memory • Subsequent jobs reuse cached data 90% • Caching reduces execution time by orders of magnitude • Naively, caching data needs large heaps which implies a lot of DRAM 4

  5. Caching Beyond Physical DRAM • DRAM capacity scaling reaches its limit [Mutlu-IMW 2013] • DRAM scales to GB / DIMM • DRAM capacity is limited by DIMM slots / servers • NVMe SSDs scale to TBs / PCIe slot at lower cost • Already Today: Spark uses off-heap store on fast devices 5

  6. Between a Rock and a Hard Place! GC vs Serialization Overhead Executor Pros Cons Memory On-heap No Serialization High GC Execution Memory Storage Memory Cache (on-heap cache) Off-heap serialize/deserialize Low GC High Serialization Cache Executor Memory Execution Memory Disk Storage Memory (off-heap cache) (on-heap cache) Merge the benefits from both worlds! 6

  7. Outline • Motivation • TeraCache design for multiple heaps with different properties • How we reduce GC time? • How we grow TeraCache over a device? • Evaluation • Conclusions 7

  8. Different Heaps for Different Object Types • Analytics computations generate mainly two types of objects • Short-lived, ( runtime managed ) • Long-lived, similar life-time, ( application managed ) • JVM-heap on DRAM which is garbage collected • Locate short-lived objects • For computation usage (task memory usage) • TeraCache-heap which is never garbage collected • Contains group of similar life-span objects (e.g., cached data) • Grow over a storage device (no serialization) 8

  9. Split Executor Memory In Two Heaps Executor Memory Execution Storage Memory Memory • JVM-heap ( GC ) TeraCache ( non-GC ) • JVM-heap (GC) TeraCache (non-GC) Organize TeraCache in regions • Bulk free: Similar life-time objects into the same region region0 . . . regionN • Dynamic size We make the JVM aware of cached data • Spark notifies JVM • Finds the transitive closure of the object​ JVM-heap Tera-heap • Move and migrate object into a region​ 9

  10. We Preserve JAVA Memory Safety Region Region Region New Gen Old Gen TeraCache-heap (no GC) JVM-heap (GC) Avoid pointer corruption between objects in two heaps No backward pointers: TeraCache → JVM- heap​ • Stop GC to reclaim objects used by TeraCache objects​ • Move transitive closure of the object 10

  11. We Preserve JAVA Memory Safety Region Region Region New Gen Old Gen TeraCache-heap (no GC) JVM-heap (GC) Avoid pointer corruption between objects in two heaps No backward pointers: TeraCache → JVM- heap​ • Stop GC to reclaim objects used by TeraCache objects​ • Move transitive closure of the object Allow forward pointers: JVM-heap → TeraCache • But stop GC to traverse TeraCache Allow internal pointers: TeraCache ↔ TeraCache 11

  12. Outline • Motivation • TeraCache design for multiple heaps with different properties • How we reduce GC time? • How we grow TeraCache over a device? • Evaluation • Conclusions 12

  13. Dividing DRAM Between Heaps Executor Execution Memory Storage Memory Memory JVM JVM- Ηeap TeraCache Heap DRAM DR1 DR2 mmap() How to deal with DRAM resources? Iterative Jobs → reuse cache data → need large DR2 size • NVMe SSD Shuffle Jobs → short-lived data → need large DR1 size • 13

  14. Deal With DRAM Resources For Multi-Heaps • KM-jobs produce more short-lived data • More minor GCs/s →more space for DR1 3x 2x • LR-jobs reuse large size of cached data • More page faults/s → more space for DR2 • We propose dynamic resizing of DR1, DR2 • Based on page fault rate in MMIO • Based on Minor GCs 14

  15. Outline • Motivation • TeraCache design for multiple heaps with different properties • How we reduce GC time? • How we grow TeraCache over a device? • Evaluation • Conclusions 15

  16. Prototype Implementation • We implement an early prototype of TeraCache based on ParallelGC • Place New generation on DRAM • Place Old generation on the fast storage device • Explicitly disable GC on Old generation • Evaluate • GC overhead • Serialization overhead • Not support for reclamation of cached RDDs and dynamic resizing 16

  17. Preliminary Evaluation 2x 50% 37% • TC improves performance up to 37% • TC improves GC up to 50% LGR LR (on average 25%) (on average 46%) • TC improves performance up to 2x compared to Linux swap (LR) 17

  18. Conclusions • TeraCache: A JVM/Spark co-design • Able to support very large heaps • Reduces GC time using two heaps • Eliminates serialization-deserialization • Dynamic sharing of DRAM resources across heaps • Improves Spark ML workloads performance by 25% on average • Applicable to other analytics runtimes 18

  19. Contact Iacovos G. Kolokasis kolokasis@ics.forth.gr www.csd.uoc.gr/~kolokasis Institute of Computer Science (ICS) Foundation of Research and Technology (FORTH) - Hellas • • • Department of Computer Science, University of Crete 19

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