galera集群有多同步

How synchronous is galera cluster

其实我有几个问题。

1) 当我使用 Mysql 连接器从我的应用程序调用插入时,它由其中一个主节点应答,但该主节点是否在插入应用于所有节点之前等待,然后回复客户端。如果它在回复客户端之前等待所有节点插入,那么 wsrep_sst_method=xtrabackup 有什么帮助,它会立即回复客户端还是没有区别。也许我理解错了这个变量。

2) 读呢,我猜它只是由其中一个主节点回答。如果 wsrep_sync_wait 仅在这种情况下设置,它会等待所有节点的回复。 谢谢

"How synchronous"?足够同步,但有一个例外:"Critical read".

"fix"是在读,不是写。

  1. 时,重量级检查在COMMIT期间完成。此时,联系所有其他节点以查看是否"this transaction will eventually commit successfully"。也就是说,其他节点说 "yes" 但实际上并没有完成足以让后续 SELECT 看到写入结果的工作。这里的保证是,cluster 处于一致状态并将保持这种状态,即使任何一个节点死亡。

  2. 例如,
  3. "Critical read" 是当用户发布内容时,立即读取数据库并希望看到发布内容。但是,如果读取 (SELECT) 命中了一个不同的节点,Galera 的 "almost" 同步特性可能没有将数据提交给读取节点。数据那里,成功写入磁盘,但可能还没有。解决方法是在读取 时使用 wsrep_sync_wait 以确保在 SELECT 之前赶上复制。 写入.

  4. 时不采取任何行动

(我看不出 wsrep_sst_method=xtrabackup 的相关性。这与从死节点中恢复有关。)