Litcius/Paper detail

KLOCs: kernel-level object contexts for heterogeneous memory systems

Sudarsun Kannan, Yujie Ren, Abhishek Bhattacharjee

202120 citationsDOI

Abstract

Heterogeneous memory systems promise better performance, energy-efficiency, and cost trade-offs in emerging systems. But delivering on this promise requires efficient OS mechanisms and policies for data tiering and migration. Unfortunately, modern OSes are lacking inefficient support for data tiering. While this problem is known for application data, the question of how best to manage kernel objects for filesystems and networking---i.e., inodes, dentry caches, journal blocks, socket buffers, etc.---has largely been ignored and presents a performance challenge for I/O-intensive workloads. We quantify the scale of this challenge and introduce a new OS abstraction, kernel-level object contexts (KLOCs), to enable efficient tiering of kernel objects. We use KLOCs to identify and group kernel objects with similar hotness, reuse, and liveness, and demonstrate their use in data placement and migration across several heterogeneous memory system configurations, including Intel’s Optane systems. Performance evaluations using RocksDB, Redis, Cassandra, and Spark show that KLOCs enable up to 2.7× higher system throughput versus prior art.

Topics & Concepts

Computer scienceLivenessKernel (algebra)AbstractionReuseDistributed computingSPARK (programming language)Object (grammar)Operating systemArtificial intelligenceProgramming languageMathematicsCombinatoricsPhilosophyEcologyEpistemologyBiologyAdvanced Data Storage TechnologiesParallel Computing and Optimization TechniquesCloud Computing and Resource Management
KLOCs: kernel-level object contexts for heterogeneous memory systems | Litcius