【论文阅读】Tigon: A Distributed Database for a CXL Pod
一 核心内容
本论文提出了名为 Tigon,一种基于 CXL Pod 的分布式内存数据库。
论文作者注意到 CXL 标准在强缓存一致性实现上 Snoop Filter 记录的缓存行信息过大、现有 CXL 硬件实现通常仅仅支持一小部分内存的缓存一致性,充分利用这一点划分了 HWcc 和 SWcc 区域,通过在 SWcc 中存储松散一致性的实际数据、在 HWcc 中存储高频同步原语的方式,高效地在 CXL Pod 架构下管理了跨机活跃元组(Cross-host Active Tuple, CAT)在不同主机间的迁移,利用 CLOCK 算法管理有限的 HWcc 空间,驱逐非热点数据。
在数据库本身的特性方面,Tigon 采用 2PL 两阶段锁(元数据保存在 HWcc)策略,结合 CXL 共享内存的特点改进了 Next-Key Locking 协议解决幻读问题,利用 CXL 共享内存的特性避免了 2PC 两阶段提交。