数据写到主服务器,commit时复制到从服务器。复制完毕commit完成。
只有commit有性能问题,是批量操作性质,可以把通信开销降到最低。
但是如果有锁,锁的传递需要时间。
复制时如果从服务器失效,操作应该依然成功,要在主服务器记录从服务器遗漏事务。待从服务器复活,回复遗漏事务。
如果写几千条记录到主服务器,这期间没有复制开销。在commit时复制,产生一个批量传输,开销是很小的。
但是如果主机从机都在录入数据,他们之间是否有重复记录是不易检测的。一个办法是commit时检测,重复数据导致commit失败。如果在恢复遗漏事务时发生重复记录啦,唯一的办法是抛弃重复记录。
所以主从系统需要阶段性一致性检查,如果有不一致数据,以时间戳最新的为准。