我有一個關於Paxos演算法一個非常特別的問題,這是在Cassandra的輕量級交易執行:Cassandra的輕量級的事務處理Paxos一致性算法
在同一時間,如果兩個節點問題,會發生什麼相同的建議?他們都得到'[應用]:真的'?
例如,請考慮此表:
ids:
+-------------------+---------------+
| id_name (varchar) | next_id (int) |
+-------------------+---------------+
| person_id | 1 |
+-------------------+---------------+
而這個查詢:
UPDATE ids
SET next_id = 2
WHERE id_name = 'person_id'
IF next_id = 1
如果我執行這個查詢,我得到的迴應:
[{[applied]: True}]
如果我再次執行它,然後它將不會被接受,因爲next_id!= 1,我得到:
[{[applied]: False, next_id: 2}]
我的問題是 - 如果我從兩個節點並行執行此查詢會發生什麼。他們是否有機會被接受?
(我用例是在這個stackoverflow question描述)