在进行交易时点燃关闭节点

ignite shutdown node while putting in transaction

我正在尝试 Apache Ignite 并尝试使用示例。我从有关交易的截屏视频中举了一个例子。启动了 3 个服务器节点,并启动了开始事务并将 50k 元素放入缓存的代码。虽然它 运行 我杀死了 3 个节点中的 2 个。我预计 Ignite 会因错误提交而失败,但实际上没有任何错误,我得到了部分保存的数据。它不是手册中所说的完全 ACID 事务。可能是我不明白重要的事情?

交易为 thread-local。这意味着要将缓存操作纳入事务,它必须由启动事务的同一线程执行。提交或回滚也必须在此线程中发生。

在您的示例中,您启动了新线程来执行更新,因此它们未被征募。本质上,每个操作都在单独的隐式事务中执行,这会导致您观察到的行为。