2016-01-20 47 views
0

我正在嘗試Apache Ignite並使用示例進行操作。我從屏幕錄像中看到了一個關於交易的例子。啓動3個服務器節點,並啓動開始事務並將50k個元素放入緩存的代碼。運行時我殺死了3個節點中的2個。我預計Ignite會因錯誤提交失敗,但實際上沒有任何錯誤,並且我部分保存了數據。如手冊中所述,這不完全是ACID交易。可能是我不明白重要的事情?點燃關閉節點,同時進行交易

+0

您可以將您的編碼示例放入pastebin或gist並在此處提供鏈接嗎? – Dmitriy

+0

以下是要點https://gist.github.com/anisimovt/ed4bbce84d8d489e42ff – anisimovt

回答

2

事務是線程本地的。這意味着要將緩存操作納入事務,它必須由啓動事務的相同線程執行。提交或回滾也必須在這個線程中發生。

在您的示例中,您將啓動新線程來執行更新,因此它們不會被註冊。實質上,每個操作都是在單獨的隱式事務中執行的,這會導致您觀察到的行爲。