摘要:基于日志结构合并树 (log-structured merge-tree, LSM-tree) 的键值存储系统采用分层架构, 层级越多, 读写放大问题越严重. 针对这一问题, 本文提出一种优化的键值存储引擎Split-LSM-Tree. 该引擎将单个LSM-tree动态分割为子树森林, 从而有效降低子树深度. 系统通过负载感知的自适应机制精准触发分裂, 并结合非阻塞分裂算法与I/O优化策略, 在实现子树分裂的同时, 可以保障前台读写操作的连续性. 实验结果表明, 与广泛应用的LevelDB和RocksDB相比, Split-LSM-Tree的写放大系数分别降低了25.7%与18.1%, 写吞吐量分别提升至2.9倍与2.4倍; 在YCSB典型负载下, 其综合吞吐量较键值分离引擎WiscKey最高提升30%.