性能工程高手课
庄振运
Facebook 性能优化和容量管理高级专家
24631 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 40 讲
性能工程高手课
15
15
1.0x
00:00/00:00
登录|注册

26 | 怎么规划和控制数据库的复制延迟大小?

二进制搜索
数值计算
两步预测模型
ARIMA模型
有无限缓冲的先进先出队列
复制延迟的SLA
复制的延迟
复制模块的吞吐量
用户流量
预留一定的空间
算法实现
时间序列模型
数据传输复制模块
帮助确定延迟SLA
确定用户流量的增长空间
确定数据复制的容量
数据复制延迟的预测
未来的流量预测
传输复制的延迟
传输复制容量的能力
用户流量大小
考虑因素
稳定的复制和传输能力
提供数据的一致性
提供高扩展性
数据的消费/读取
数据复制/传输
数据库存储
事件生成
峰值分布
周期性模式
用户数据的有效性、时间性和一致性
隔离数据库和数据使用者
应用于其他预测场景
数据处理系统的建模原理
结果展示
使用ARIMA模型进行预测
预测误差的解决
规划和分析模型
可帮助回答的问题
三个基本变量
容量规划和分析
特性
模块
时间序列模型
重要性
作用
定义
延迟导致广告统计错误
用户更新照片但朋友看不到
总结
实际生产实践的验证
解决方案的落地
解决数据库复制延迟问题
数据传输复制系统
用户流量特点
数据库的复制延迟
数据库复制延迟导致的问题
思考题
LinkedIn项目经验
庄振运
怎么规划和控制数据库的复制延迟大小?

该思维导图由 AI 生成,仅供参考

你好,我是庄振运。
在正文开始前,首先要祝你新年快乐!今天我们要通过我在 LinkedIn(领英)公司做过的一个项目,来学习如何控制数据库复制延迟。
我在 LinkedIn 工作的时候,就遇到过因为数据复制延迟太大而导致的生产事故。当时出现了这样的情况:一个用户刚刚更新了自己的照片,可是他的朋友们却迟迟看不到更新。
你是不是觉得 LinkedIn 又不是微博,看个照片而已,早点晚点也没什么大不了的?
但换个内容,这性质就严重了。LinkedIn 网站上面会播放广告,在一定时间内,广告商往往会设置一定的广告投放预算限额,比如一天一万元。如果广告投放的收入统计数据被延迟,就会导致很严重的统计错误,实际支出严重地超过预算。一切有关钱的事,可都是大事。
所以,从用户数据的有效性、时间性和一致性来考虑,数据的传输复制延迟当然是越小越好。

什么是数据库的复制延迟?

那到底什么是数据库的复制延迟呢?如果让我用一句话来说,数据库的复制延迟其实就是当线上服务需要多个数据库时(比如为了分散流量),一条信息从源头数据库传递复制到下游数据库时经过的延迟。
还是用 LinkedIn 的例子来说明。LinkedIn 的全球用户已经超过 5.9 亿,用户流量异常庞大。这些用户流量,是由用户的各种活动而生成的事件数据。LinkedIn 的系统要求是,实时地捕获这些用户数据,并不断存储在后台数据库中。这些存放在数据库中的用户数据很重要,会被各种应用程序和其他服务读取,比如广告投放就需要消费这些数据。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

数据库的复制延迟对互联网公司的业务影响巨大。本文通过LinkedIn的案例,详细介绍了如何规划和控制数据库的复制延迟。首先,文章解释了数据库的复制延迟是指一条信息从源头数据库传递复制到下游数据库时的延迟。然后,通过LinkedIn的用户流量特点和数据传输复制系统的介绍,阐述了如何通过容量规划和分析来控制数据的复制延迟。在容量规划和分析中,需要考虑用户流量、复制模块的吞吐量、复制的延迟以及复制延迟的SLA,以确保所需的复制延迟不超过SLA的规定。文章还详细介绍了采用ARIMA模型进行时间序列建模来预测未来数据流量,并通过季节指数来预测一周内每个小时的流量。此外,文章还介绍了使用二进制搜索机制来确定复制容量,并强调了预测误差对延迟SLA的影响。最后,通过LinkedIn的生产实践验证了规划和分析模型的有效性。整体而言,本文通过LinkedIn的案例,详细介绍了如何通过合理的规划和分析,使用ARIMA统计模型和季节指数来控制数据库复制延迟,为读者提供了一套完整的解决方案。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《性能工程高手课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(5)

  • 最新
  • 精选
  • hello
    老师,祝您新年快乐

    作者回复: 谢谢!新年快乐!

    2020-01-24
    2
  • Scott
    这个好像对我们很有用,我们预估是直接用上一周同一天的流量来预测,问题是有时候遇到特殊情况,比如春节国庆,就行不通了。

    作者回复: 嗯,如果是面向终端客户的,特殊日期/事件必须单独考虑。

    2020-01-27
    1
  • xiaobang
    1 对排队论不了解,这边把数据的传输复制系统看成是一个排队系统,排队论给我们提示了什么信息?有没有排队论和它的重要结论的通俗资料推荐呢 ? 2 不了解ARIMA和季节性指数,有什么学习资料推荐吗 ? 3 有了预测流量怎么计算延时的呢 ?

    作者回复: 1.排队论方面,介绍的书籍挺多的,你可以搜一下。也不需要太复杂的资料,了解基本的就够了。 2. ARIMA和季节性指数在统计方面的书籍和资料里面。 3. 有了预测流量,就相当于有了客户输入的信息。放到一个队列系统里面,就可以计算出延时(包括排队时间和处理时间)了。

    2020-02-13
    2
  • Joe Black
    请问LinkedIn是用的mysql数据库吗?对于单个数据中心,对于大量用户事件写入和读取怎么解决的?是通过数据库复制做主从集群吗?我觉得主库估计也得做分片吧?目前来看解决这个复制延迟主要就是通过部署更多节点的方式吗?

    作者回复: LinkedIn之前用Espresso,基于Mysql的。离开3年了,应该有些变化。大量的用户流量只能通过水平扩展来适应(horizontal scaling);是的,分片。 数据库复制主要是为了分散读取,并且全球多数据中心同步。 解决复制延迟也是通过水平扩展,分散的节点越多,处理越快。

    2020-01-31
  • 黄海峰
    听不懂,应该具体一点,实践篇应该具体到用什么软件什么命令执行,现在实践篇也是理论。。。

    作者回复: 这一讲的目的是“工程实践”一些规划的理论;用的例子是LinkedIn公司的例子(Espresso数据库, Databus复制)。这些软件都是Linkedin内部开发的;虽然都有开源,但是我觉得外面用的公司不多。 这个专栏的目的是给大家整体介绍这个职业,所以宏观的知识多些。 不过这一讲听不懂也不用灰心。我在专栏里介绍了很多种容量和性能方面的工作;但是,具体到一个公司,一个岗位,所作的具体工作多数时候其实很窄的;不需要都会的。 我建议多从宏观上把握,具体到某项工作时,再钻进去学。这样就不会迷失在具体的繁琐工作中。

    2020-01-28
收起评论
显示
设置
留言
5
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部