Atom feed of this document
  

 数据库复制

数据库复制是一次低代价的哈希对比来决定两个副本是否匹配。通常,系统中多数已经同步的数据库作这样的检查会非常快的得到验证。但是如果哈希不一致了,复制器通过分享最后一次的同步点所增加的纪录来同步数据库。

此同步点是一高水印,此水印记下了已知的同步过的两数据库的最后纪录,且作为一远程数据库ID和纪录ID的元组保存在各自的数据库。数据库ID在跨所有副本的数据库中是唯一的,纪录ID按整数单调递增。在所有的新的纪录都推送到了远程数据库之后,会讲整个本地数据库的同步表推送,所以远程数据库可以可以保证同步所有的本地数据库是过去同步过的。

如果一个副本丢失了,就会通过rsync(1)将整个本地数据库文件传输到远端,然后再为其分配一个新的唯一的ID。

在实践中,数据库复制每秒可以处理数以百计的每个并发数据库设置(可用cpu的数量或磁盘)和绑定必须执行数据库事务的数量。

Questions? Discuss on ask.openstack.org
Found an error? Report a bug against this page


loading table of contents...