首页 > 编程知识 正文

增量和迭代方法的本质特征,迭代和增量是两种不同的方式吗

时间:2023-05-06 01:54:24 阅读:131449 作者:4586

假设您有一个需要从MySQL迁移到Hbase的数据量很大的前台系统。 比较粗略的数据同步方法如下。

1、使整个前置系统为只读

2、总量dump MySQL数据

3、将MySQL数据导入Hbase

4、前台系统切换到Hbase,打开更新

此方案相对简单,易于保持数据一致性,但存在影响所有用户写入、耗时过长的缺点。

用户体验友好的数据同步方法如下。

1、将到某一时间点为止的数据全部dump,记录期间的增量日志a

2、记录APP日志a内的数据,记录期间的增量日志b

3、记录APP日志b内的数据,记录期间的增量日志c

4、重复步骤3直到日志c足够小

5、将整个前置系统设为只读,应用日志c中的数据

6、前台系统切换到Hbase,打开更新

该方案的实现很复杂,迭代日志方法看起来没完没了,容易出现部分用户数据不一致。 但是,只读时间非常短,大多数用户在数据同步期间可以自由使用APP应用程序。

简单概括一下:

方案1 :所有用户都受到长时间的小影响(只读) )。

场景2 )较少的用户在短时间内受到很大影响(数据不匹配) )。

问题:

牺牲大部分人来保护大部分人是正确的吗?

在这个问题上,聪明的彩虹(democracy )是最终的答案吗?

虽然我想不出这个问题的答案,

但是,对于反复日志是不是没完没了的疑问,增长的板栗悖论给了我一点线索:

挺拔的板栗是跑得很快的神话人物,芝诺建议:“只要乌龟比挺拔的板栗往前走1000米,挺拔的板栗就永远赶不上乌龟。” 这个结论的推理过程如下:

1 .乌龟比挺起的栗子往前走1000米

2、长高了的栗子追了1000米

3、乌龟前进了100米(假设是乌龟速度增长了的栗子的十分之一) ) ) ) ) ) ) ) ) )。

4、长高了的栗子追了100米

5、乌龟前进了10米。

6、挺起的栗子追赶了n米

7、乌龟前进了半米。

8、挺起的栗子无限逼近乌龟,但绝对追不上

挺起的栗子真的赶不上乌龟吗? 当然不可能:

1000*(10.10.01…)=1000 * (11/9 )=10000/9

在10000/9米的地方,挺起的栗子和乌龟并排跑着,赶超。

返回到增量日志迭代同步问题。 在什么前提下,您认为迭代可以结束:

1、日志APP中没有停顿(挺起的栗子一直在跑) ) ) ) )。

如果APP结束日志,并且不是立即前往APP新生成的增量日志,迭代很可能不会结束

2、日志APP的速度大于增加日志的生成速度(伸长的板栗跑得比乌龟快) ) ) ) ) ) ) ) ) ) )。

这一点比较明显。 否则,日志只会累积,不会完成APP

这是我的看法。 希望今后在不影响用户的情况下实现完美的数据迁移。

原文地址: http://www.Taobao DBA.com/html/564 _增量日志迭代同步和地址悖论. html

转载于:https://blog.51cto.com/Hz csky/558190

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。