分布式数据库由于多数采用 share nothing 的架构,跨节点事务的性能是一个很大的挑战。对于死锁检测问题,分布式数据库都有各自的方式,比如在 TiDB 中维护了全局的 wait-for-graph ,通过确保该图无环来避免死锁。在中间件类型的分布式数据库,一般是由计算节点来检测死锁。
另外 ,英特尔 ® 至强 ® 可扩展 处理器中的TSX (事务内存) 指令,也可以用于加速数据库的事务处理,减少锁的开销 。更多关于Intel TSX的信息 可以参考文档 : https://www.intel.com/content/dam/develop/external/us/en/documents/sf12-arcs004-100-393551.pdf