Hi,
各位大佬,又来麻烦大家了,最近在看MOT事务协议的代码,再次感谢一下Vinoth关于CSN的指点,
对比silo论文,发现OpenGauss在通过有效性确认后,调用CSNManager::GetNextCSN()生成全局唯一CSN,
然而这个实现,并发事务线程都会尝试原子性地对CSNManager::m_csn加1,它是个所有事务共享的变量,这不就带来(事务线程间的)争用(contention)了吗?
OpenGauss的代码,好像并没有采用silo的设计 ――通过Epoch,各事务独立生成TID,以避免争用?或者是这种争用微不足道?
谢谢
新大陆软件 秦浩 mobile: 17625988619 e-mail:qinhao@newland.com.cn