摘要:云原生数据库的主流设计采用一主多从架构,集群中从节点可以分担主节点的只读请求,写请求由主节点处理.在此基础上,为了进一步满足大规模交易扩展的需求,一些云数据库尝试实现多写事务扩展.多写扩展的一种实现路径是在计算节点间实现共享缓存,支持跨节点的数据访问.在基于共享缓存的数据库系统中,跨节点远程访问的开销远大于本地访问,因此缓存协议的设计是影响系统性能和可扩展性的关键因素.本文对缓存协议提出了两个创新性改进,并基于PostgreSQL实现了支持多写事务处理的共享缓存数据库PG-RAC.一方面,PG-RAC提出一种新型的分布式链式路由策略,将路由信息分散在各计算节点.相比单点目录管理的路由策略,事务平均延迟降低了约20%.另一方面,本文还改进了副本页失效机制,将失效操作从事务路径分离,减小了事务处理关键路径的延迟.在此基础上,PG-RAC利用多版本并发控制的特性,进一步提出推迟副本页失效时机,有效提高了缓存利用率.TPC-C实验结果显示,在配备4台计算节点的集群中,吞吐率为PostgreSQL的近2倍,为分布式数据库Citus的1.5倍.