Memory disaggregation addresses memory imbalance in a cluster by decoupling CPU and memory allocations of applications while also increasing the effective memory capacity for (memory-intensive) applications beyond the local memory limit imposed by traditional fixed-capacity servers. As the network speeds in the tightly-knit environments like modern datacenters inch closer to the DRAM speeds, there has been a recent proliferation of work in this space ranging from software solutions that pool memory of traditional servers for the shared use of the cluster to systems targeting the memory disaggregation in the hardware. In this report, we look at some of these recent memory disaggregation systems and study the important factors that guide their design, such as the interface through which the memory is exposed to the application, their runtime design and relevant optimizations to retain the near-native application performance, various approaches they employ in managing cluster memory to maximize utilization, etc. and we analyze the associated trade-offs. We conclude with a discussion on some open questions and potential future directions that can render disaggregation more amenable for adoption.
翻译:内存分解处理一个组群的内存不平衡,方法是解开CPU和应用程序的内存分配,同时提高传统固定功能服务器对本地内存限制以外的(模拟密集)应用程序的有效内存能力。由于网络在紧密的环境下的速度,如现代数据中心英寸接近DRAM速度的密闭环境,最近在这个空间中的工作激增,从将传统服务器的内存汇集到共享使用该组群的软件解决方案到针对硬件内内内存分解的系统。我们在本报告中审视了这些最近的记忆分解系统,并研究了指导其设计的重要因素,例如内存暴露于应用程序的界面、其运行时间设计和保存近端应用程序性能的相关优化、它们在管理群集内存以最大限度地利用时采用的各种办法等等,我们分析了相关的取舍。我们最后讨论了一些开放的问题和潜在的未来方向,使分解更容易被采纳。