liuyangming / ByteTCC

ByteTCC is a distributed transaction manager based on the TCC(Try/Confirm/Cancel) mechanism. It’s compatible with the JTA specification. User guide: https://github.com/liuyangming/ByteTCC/wiki
https://www.bytesoft.org/
GNU Lesser General Public License v3.0
2.9k stars 911 forks source link

创建全局Xid重复问题 #147

Open menghuan123 opened 2 years ago

menghuan123 commented 2 years ago

image框架如何保证全局xid不重复呢?

liuyangming commented 2 years ago

ByteJTA/ByteTCC的XID包含有如下信息:

因此,可以看出:

总的来说,一台机器上处理的事务量不会太高(几乎不可能到256/ms:小于该值可保障;大于该值则靠随机数避免),且事务存在的时间也不会太长(不太可能超过8年),因此,一般来说,可以认为它是不重复的。

liuyangming commented 2 years ago

后续版本可能考虑将递增量占用调大而去掉随机数,且会调大year值。但不管怎样,一般情况下,可默认该值是全局唯一的。