设置点燃乐观序列化事务的优先级?



使用ignite,您是否可以为OPTIMISTIC SERIALIZABLE事务设置优先级,以便一个事务优先于另一个事务?换句话说,如果我有两个乐观的可序列化事务A和B,并且我知道A比B更重要,如果A和B相互冲突,我能确保A成功而B失败吗?

引燃文档如下:

在Ignite中,每个事务被分配一个可比较的版本,称为XidVersion。在事务提交时,写入的每个条目事务被分配一个名为EntryVersion的新可比版本。版本为XidVersionA的乐观序列化事务失败使用TransactionOptimisticException,如果:

  • 存在一个正在进行的悲观或不可序列化的乐观事务,该事务持有对SERIALIZABLE条目的锁事务。

  • 有另一个正在进行的乐观SERIALIZABLE事务与版本XidVersionB,这样XidVersionB>XidVersionA和这个transaction持有对SERIALIZABLE事务项的锁。

所以大概我需要做的是将事务A上的XidVersion设置为高于事务b上的XidVersion。然而,我找不到任何方法来设置事务上的XidVersion。

Ignite不支持设置事务优先级。XidVersion是使用变更的自然顺序构建的。例如,根据时间框架,order字段的计数器增加,它也取决于拓扑结构和其他内部事物。

From the docs:

TX1 [txId=GridCacheVersion [topVer=74949328, time=1463469328421,order=1463469326211, nodeOrder=1], nodeId=ad68354d-07b8-4be5-85bb-f5f2362fbb88, threadId=73]

TX2 [txId=GridCacheVersion [topVer=74949328, time=1463469328421,order=1463469326210, nodeOrder=1], nodeId=ad68354d-07b8-4be5-85bb-f5f2362fbb88, threadId=74]

最新更新