DCF: A Dynamic Caching Framework for Compute Nodes on Disaggregated Memory
Qinzhen Cao, Jibo Liu, Xiaowen Nie, Rui Xi · 2024
Disaggregated memory architectures can achieve higher resource utilization rates, and independently scale CPUs and memory. In such architectures, all compute nodes share access to a memory pool, meaning any node can read or write data from any location in the cluster. To avoid maintaining cache coherency among different compute nodes, existing disaggregated memory systems choose to read and write data remotely over the network. The cost of this approach is that compute nodes need to consume a network round-trip time to read remote data, resulting in poorer performance under read-intensive workloads and wasting the limited cache of the compute nodes. In this paper, we propose DCF, a dynamic caching framework for distributed systems on disaggregated memory. First, DCF makes use of the cache areas of compute nodes, and for a piece of data, a two-level caching strategy - index cache and value cache is adopted. Secondly, in order to maintain strong consistency among different compute nodes, DCF cleverly embeds cache metadata into the remote index of data, thus avoiding extra remote access and work of memory pool CPU. Thirdly, DCF uses a computation-centric dynamic load-determination framework to estimate the global load of data, and chooses a caching policy suitable for the current workload based on the estimation results. Our assessment shows that DCF can achieve high performance under various types of workloads (read/write-dominated, uniform/skewed), further demonstrating that DCF can effectively handle dynamic workload changes and support elasticity.