meepo icon indicating copy to clipboard operation
meepo copied to clipboard

如果用GTS的那种方法的话,就没有必要用XA了

Open manorsuperman opened this issue 6 years ago • 3 comments

XA 本身是可以保证数据的一致性的, 直接用普通的begin commit/rollback 就可以了。因为前置镜像和后置镜像以及 txc_lock可以在很大程度上保证资源不会被修改(也有可能通过命令行或者其他的发送绕过txc_lock检查的,这时候就可能数据不一致)。我觉得不需要数据库的XA。

manorsuperman avatar Sep 13 '18 05:09 manorsuperman

@wxbty 还有不知道是否支持 where pk >= 1 and pk <=10,类似这种的有范围的更新语句.

manorsuperman avatar Sep 13 '18 05:09 manorsuperman

确实不需要xa 来支持分支事务。meepo现在的xa事务,从start到commit,和普通到begin commit在效率上并没有区别。使用xa是因为基于bytejta的代码,边测试边开发边提交,继续使用xa事务可以平滑过度,减少bug。后续这块会改,但优先级不高

wxbty avatar Sep 13 '18 11:09 wxbty

where pk >= 1 and pk <=10 支持这种语句。 生成回滚sql伪代码 delete from table where pk >= 1 and pk <=10 ->select * from table where pk >= 1 and pk <=10 foreach() { genBeforeImage; genAfterImage; insert(image); }

wxbty avatar Sep 13 '18 11:09 wxbty