Browsing by Subject "Persistent memory"
Now showing 1 - 2 of 2
- Results Per Page
- Sort Options
Item Designing key-value stores for emerging memory and disaggregation technologies(2023-12) Lee, Sekwon; Chidambaram, Vijay; Keeton, Kimberly; Bornholt, James; Rossbach, Christopher J.; Aguilera, Marcos K.With the increasing convergence of applications to the cloud, cloud-based key-value stores (KVSs) should offer high performance, scalability, elasticity, utilization, and crash resilience. However, conventional storage technologies and monolithic server models make it challenging to achieve these goals. The transition to the new emerging memory and disaggregation technologies, such as PM (Persistent Memory), RDMA (Remote Direct Memory Access), and CXL (Compute Express Link), can readily offer opportunities to achieve these goals. However, these new technologies have distinct characteristics from the conventional technologies. Thus, to efficiently and reliably utilize them, KVSs must be carefully designed to avoid sub-optimal design choices without compromising their inherent hardware-guaranteed benefits. In this dissertation, we seek to answer the following question: how can we achieve a high-performance, scalable, elastic, and crash-recoverable KVS for disaggregated persistent memory (DPM)? In particular, we explore solutions to achieve these goals by introducing new indexing, caching, and partitioning techniques. We design new indexing data structures for a high-performance, scalable, and crash-recoverable data storage at PM, employ caching strategies for high performance by reducing expensive accesses to DPM, and tailor partitioning techniques to achieve elastic, scalable resource deployment. This dissertation first presents Recipe, a principled approach for converting concurrent DRAM indexes to crash-consistent indexes for PM. The main insight behind Recipe is that isolation provided by a certain class of concurrent DRAM indexes can be translated to crash consistency when the same index is used in PM. We present a set of conditions that enable the identification of this class of DRAM indexes, and the actions to be taken to convert each index to be persistent. Next, we presents Dinomo, the first key-value store for DPM based on RDMA interconnects that simultaneously achieves high common-case performance, scalability, and elasticity. Dinomo uses a novel combination of techniques such as ownership partitioning, disaggregated adaptive caching, selective replication, and lock-free and log-free PM indexing to achieve these goals. Finally, we present Shift, a cache-conscious KVS designs for CXL disaggregated memory. Shift sheds new light on the existing PM indexes and partitioning schemes originally proposed for the different system domains to achieve a high-performance, scalable, elastic, crash-recoverable KVS for CXL disaggregated memory. Furthermore, Shift employs lock intention log to improve the PM indexes to be partial-failure-resilient and non-hierarchical processing to take both advantages of KN cache and direct accesses to CXL disaggregated memory.Item File system designs on low-latency storage devices(2020-12-04) Hu, Yige; Witchel, Emmett; Chidambaram, Vijay; Adya, Atul; Peter, SimonThe evolution of modern applications and storage technologies has created new challenges for file systems. Applications store persistent state across multiple files and storage abstractions which must maintain crash consistency. New storagedevices such as NAND flash memory has lower IO latency and higher bandwidth compared to spinning disks, especially for random memory accesses. Non-volatile memory (NVM) further decreases read and write latency for persistent storage, with access times on the order of DRAM. Decreased device latencies makes it more important to eliminate CPU overhead and system call overhead than to reduce accessesto the storage device. We first introduce TXFS, a transactional file system that builds general-purpose transactions upon an existing file system’s atomic-update mechanism such as journaling. Though prior work has explored a number of transactional file systems, TXFS has a unique set of properties: a simple API, portability across different hardware, high performance, low complexity (by building on the file-system journal), and full ACID transactions. We port SQLite, OpenLDAP, and Git to use TXFS, and experimentally show that TXFS provides strong crash consistency while providing equal or better performance. We then introduceNVMKVFS, a user-space file-system prototype focusing on metadata operations. We examine ext4-dax and NOVA scalability, finding numerous bottlenecks in the VFS. NVM’s low memory access latency makes it more important to eliminate CPU overhead than to reduce accesses to the NVM device, so we eliminate the VFS caches while maintaining performance on standard workloads and increasing scalability. We propose a file system based on two global indexes on NVM, one for metadata and the other for data. Because of NVM’s asymmetric bandwidth on read and write accesses, We focus on optimizing read-heavy workloads and metadata-heavy workloads in which write sizes are small.