WriteSynchronizationMode 对 Apache Ignite 事务内写操作的影响

Effect of WriteSynchronizationMode on write operations inside a transaction in Apache Ignite

WriteSynchronizationMode 允许用户在分布式设置上执行写入时从 3 种不同的同步模式(FULL_SYNC、FULL_ASYNC、PRIMARY_SYNC)中进行选择。

根据我的理解,当写入缓存时(无论是在事务内部还是外部),在以下两种情况下用户感知的延迟必须相同如果 WriteSynchronizationMode 设置为 PRIMARY_SYNC:

  1. 单节点集群,其中只有一个数据的主要副本存在于远程服务器中。
  2. 双节点集群,其中数据的 1 个主要副本驻留在远程服务器上,而备份副本存在于相邻服务器上。

换句话说,写入延迟应该不受PRIMARY_SYNC中备份副本数量的影响。

但是,在我目前的实验中,我面临着上述设置的不同延迟(场景 #1 为 3RTT,场景 #2 为 4RTT)。有人可以解释一下原因吗?

当您使用事务缓存时,每个写操作都需要获取锁。它还涉及与备份节点的通信。因此,备份越多,执行事务所需的时间就越多。即使您不 运行 显式事务,每个写入操作也会通过此过程。

因此,对于事务缓存,我预计写入操作的性能会随着备份数量的增加而显着下降。您可以在此处找到有关事务缓存工作的更多信息:https://cwiki.apache.org/confluence/display/IGNITE/Ignite+Key-Value+Transactions+Architecture

尝试对原子缓存进行基准测试。您仍然可以观察到性能下降,因为同步会占用资源。但不会那么大。