Citus 的隔离级别是什么?为什么?
如题,Citus 的隔离级别是什么?为什么?
希望得到充分的论证,如果能追加实验就更好了
如题,Citus 的隔离级别是什么?为什么?
希望得到充分的论证,如果能追加实验就更好了
Worker1 : BEGIN;
Worker2 : BEGIN;
Worker1 : UPDATE account_$shardid SET amount = amount - 100 WHERE user = 'A';
Worker2 : UPDATE account_$shardid SET amount = amount + 100 WHERE user = 'B';
Worker1 : PREPARE TRANSACTION 'tran1';
Worker2 : PREPARE TRANSACTION 'tran2';
Worker1 : COMMIT PREPARED 'tran1';
Worker2 : COMMIT PREPARED 'tran2';
在步骤7和8之间,参与2PC的2个子事务一个已提交另一个还没提交。 如果此时有人查询账户总额,会得到一个不正确的值。
SELECT sum(amount) FROM account;