0

私は Apache Ignite を試して、例で遊んでいます。トランザクションに関するスクリーンキャストから例を挙げました。3 つのサーバー ノードを開始し、トランザクションを開始して 50k 要素をキャッシュに入れる開始コード。実行中に、3 つのノードのうち 2 つを強制終了します。Ignite がエラーでコミットに失敗することを期待していましたが、実際にはエラーはなく、部分的に保存されたデータが得られました。マニュアルに記載されているように、完全な ACID トランザクションではありません。私は何か重要なことを理解していないのでしょうか?

4

1 に答える 1

2

トランザクションはスレッドローカルです。これは、キャッシュ操作をトランザクションに参加させるには、トランザクションを開始したのと同じスレッドで実行する必要があることを意味します。このスレッドでもコミットまたはロールバックが発生する必要があります。

あなたの例では、新しいスレッドを開始して更新を実行するため、参加していません。基本的に、各操作は個別の暗黙的なトランザクションで実行され、観察される動作が発生します。

于 2016-01-23T06:52:26.350 に答える