在数据中心中,由于应用服务对内存资源和计算资源的需求不均衡,导致两种资源有大量相对的闲置,从而提高了数据中心的硬件成本。为了解决该问题,分离式内存架构被提出并受到学术界和工业界的广泛关注。它将计算资源和内存资源在物理上进行解耦,并且使用高速互联协议(RDMA、CXL等)进行连接、池化。从而使得数据中心可以动态调整两种资源的配置。B+-tree广泛应用于数据库、文件系统中,以提高数据的读写性能。传统的B+-tree通常采用互斥锁来避免并发冲突,然而在分离式内存场景下,数百个计算核心同时操作时,互斥锁将成为限制B+-tree的并发写操作的主要原因。
信息存储与光显示功能实验室博士生安行,在冯丹教授、王芳教授的指导下,提出了并发和写优化的B+-tree索引Marlin。Marlin巧妙地利用了RDMA原子动词的特性来同步不同的索引操作。它从三个角度提升了索引并发写性能。首先,为了改进操作的并发性,Marlin提出了一个对RDMA IDU(Insert、Delete、Update)操作友好的并发算法,使不同的客户端能够同时操作同一个叶节点。其次,Marlin设计了一个三元状态节点锁,它有效地防止了索引结构修改操作(SMO)和其他并发访问之间的冲突。最后,Marlin压缩了写操作的关键路径,以减少网络往返和发出RDMA写操作的时间。与基于分离式内存的最先进方案相比,Marlin在YCSB混合工作负载下提高了2.21×的吞吐量,P99延迟减少了83.4%。该研究工作得到了国家自然基金(61832020、61821003、U22A2027)项目的资助。