  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.
