
15 Jun
2022
15 Jun
'22
11:43 a.m.
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