Memory disaggregation architecture physically separates CPU and memory into independent components, which are connected via high-speed RDMA networks, greatly improving resource utilization of databases. However, such an architecture poses unique challenges to data indexing in databases due to limited RDMA semantics and near-zero computation power at memory-side. Existing indexes supporting disaggregated memory either suffer from low write performance, or require hardware modification. This paper presents Sherman, a write-optimized distributed B+Tree index on disaggregated memory that delivers high performance with commodity RDMA NICs. Sherman combines RDMA hardware features and RDMA-friendly software techniques to boost index write performance from three angles. First, to reduce round trips, Sherman coalesces dependent RDMA commands by leveraging in-order delivery property of RDMA. Second, to accelerate concurrent accesses, Sherman introduces a hierarchical lock that exploits on-chip memory of RDMA NICs. Finally, to mitigate write amplification, Sherman tailors the data structure layout of B+Tree with a two-level version mechanism. Our evaluation shows that, Sherman is one order of magnitude faster in terms of both throughput and 99th percentile latency on typical write-intensive workloads, compared with state-of-the-art designs.
翻译:内存分解结构将 CPU 和 内存实际分离成独立组成部分,这些组成部分通过高速RDMA 网络连接,大大改进数据库的资源利用。然而,这种结构对数据库的数据索引编制工作提出了独特的挑战,因为RDMA 语义和记忆边的计算能力有限,而且接近零的计算能力有限。支持分解记忆的现有指数要么存在写作性能低的情况,要么需要硬件修改。本文展示了谢尔曼,这是在分解记忆上拼写优化的B+Tree指数,与商品RDMA NIC公司具有高性能。谢尔曼将RDMA硬件特点和RDMA友好型软件技术结合起来,以便从三个角度提高指数写作性能。首先,通过利用RDMA的单运货特性,谢尔曼依靠RDMA 指令。第二,谢尔曼引入了一种等级锁,利用RDMA NIC 的芯片记忆进行减缩,谢尔曼将B+Tree的数据结构布局与两个层次的版本机制结合起来。我们的评估显示,谢尔曼的密度是99 比例值的典型的指数,通过标准的比标准的密度,一个比例值的重量值是10级的比值。