Table of Contents
Fetching ...

FlexKV: Flexible Index Offloading for Memory-Disaggregated Key-Value Store

Zhisheng Hu, Jiacheng Shen, Ming-Chang Yang

TL;DR

FlexKV tackles the bottlenecks of memory-disaggregated KV stores by offloading index processing to compute nodes and enabling compute-side caching. It introduces rank-aware hotness scheduling, slot-resolved index RPCs, adaptive index-cache splitting, and RPC-aggregated cache management to balance load, fit CN memory, and reduce coherence overhead. Through extensive evaluation against state-of-the-art systems, FlexKV achieves up to 2.94× throughput gains and as much as 85.2% latency reductions, with strong robustness to workload shifts and parameter changes. The work offers a generalizable framework for scalable index processing and cache-coherent caching in memory-disaggregated environments, with potential applicability to CXL-based DM in the future.

Abstract

Disaggregated memory (DM) is a promising data center architecture that decouples CPU and memory into independent resource pools to improve resource utilization. Building on DM, memory-disaggregated key-value (KV) stores are adopted to efficiently manage remote data. Unfortunately, existing approaches suffer from poor performance due to two critical issues: 1) the overdependence on one-sided atomic operations in index processing, and 2) the constrained efficiency in compute-side caches. To address these issues, we propose FlexKV, a memory-disaggregated KV store with index proxying. Our key idea is to dynamically offload the index to compute nodes, leveraging their powerful CPUs to accelerate index processing and maintain high-performance compute-side caches. Three challenges have to be addressed to enable efficient index proxying on DM, i.e., the load imbalance across compute nodes, the limited memory of compute nodes, and the expensive cache coherence overhead. FlexKV proposes: 1) a rank-aware hotness detection algorithm to continuously balance index load across compute nodes, 2) a two-level CN memory optimization scheme to efficiently utilize compute node memory, and 3) an RPC-aggregated cache management mechanism to reduce cache coherence overhead. The experimental results show that FlexKV improves throughput by up to 2.94$\times$ and reduces latency by up to 85.2%, compared with the state-of-the-art memory-disaggregated KV stores.

FlexKV: Flexible Index Offloading for Memory-Disaggregated Key-Value Store

TL;DR

FlexKV tackles the bottlenecks of memory-disaggregated KV stores by offloading index processing to compute nodes and enabling compute-side caching. It introduces rank-aware hotness scheduling, slot-resolved index RPCs, adaptive index-cache splitting, and RPC-aggregated cache management to balance load, fit CN memory, and reduce coherence overhead. Through extensive evaluation against state-of-the-art systems, FlexKV achieves up to 2.94× throughput gains and as much as 85.2% latency reductions, with strong robustness to workload shifts and parameter changes. The work offers a generalizable framework for scalable index processing and cache-coherent caching in memory-disaggregated environments, with potential applicability to CXL-based DM in the future.

Abstract

Disaggregated memory (DM) is a promising data center architecture that decouples CPU and memory into independent resource pools to improve resource utilization. Building on DM, memory-disaggregated key-value (KV) stores are adopted to efficiently manage remote data. Unfortunately, existing approaches suffer from poor performance due to two critical issues: 1) the overdependence on one-sided atomic operations in index processing, and 2) the constrained efficiency in compute-side caches. To address these issues, we propose FlexKV, a memory-disaggregated KV store with index proxying. Our key idea is to dynamically offload the index to compute nodes, leveraging their powerful CPUs to accelerate index processing and maintain high-performance compute-side caches. Three challenges have to be addressed to enable efficient index proxying on DM, i.e., the load imbalance across compute nodes, the limited memory of compute nodes, and the expensive cache coherence overhead. FlexKV proposes: 1) a rank-aware hotness detection algorithm to continuously balance index load across compute nodes, 2) a two-level CN memory optimization scheme to efficiently utilize compute node memory, and 3) an RPC-aggregated cache management mechanism to reduce cache coherence overhead. The experimental results show that FlexKV improves throughput by up to 2.94 and reduces latency by up to 85.2%, compared with the state-of-the-art memory-disaggregated KV stores.

Paper Structure

This paper contains 25 sections, 24 figures, 1 table, 2 algorithms.

Figures (24)

  • Figure 1: Index deployment in memory-disaggregated KV stores.
  • Figure 2: Compute-side caching in memory-disaggregated KV stores. A client in CN 1 attempts to fetch the KV pair with key B.
  • Figure 3: The throughput and latency of different operations.
  • Figure 4: The effect of varying the ratio of replaced operations.
  • Figure 5: The overview of FlexKV.
  • ...and 19 more figures