我们实现了f方案,这是一个不基于f,且不会中方案如上图所示,f的生成期间,它首先会停止哈希表的过程,避免数据在哈希表之间的搬迁影响快照的一致性然后,它会从头开始对整个哈希表的做迭代,每迭代一个就会把它一份出来放到复制队列里边
在迭代的同时,它会对 科威特手机号码列表 迭代的位置记录一个游标如果在迭代哈希表的过程中,里面的有变更的话,在这个游标之前的变更,也会把它放到复制队列里边,确保已经复制的能够持续获得后续的变更如图所示,游标在,它会把之前已经迭代过的更新、删除操作也插入到复制队列里边在游标之后的,因为还没有做数据复制,所以等后续迭代到这个时,把其最新值到复制队列就好
通过这样的方式,就实现了一个不需要f就能获得一个一致性数据快照的过程这个方案的优点很明显,生成的过程不会阻塞服务请求处理,并且因为是实时的发送一个个数据,所以就不需要等生成好就可以向从库复制数据了,大幅提升了数据同步的速度但因为全量数据迭代、复制是在工
|