专栏名称: Fundebug
Fundebug为JavaScript、微信小程序及Node.js开发团队提供专业的线上代码bug监控和智能分析服务。
目录
相关文章推荐
前端早读课  ·  【招聘】字节跳动客服平台招高级前端开发工程师 ·  19 小时前  
歸藏的AI工具箱  ·  终于有给设计师用的 Cursor 了 ·  昨天  
歸藏的AI工具箱  ·  终于有给设计师用的 Cursor 了 ·  昨天  
前端早读课  ·  【第3454期】如何用语音学习编程的 ·  昨天  
前端大全  ·  前端行情变了,差别真的挺大。。。 ·  2 天前  
前端早读课  ·  【开源】TinyEngine开启新篇章,服务 ... ·  2 天前  
51好读  ›  专栏  ›  Fundebug

GitHub 发布 10 月 21 日系统故障分析报告

Fundebug  · 公众号  · 前端  · 2018-11-05 09:36

正文


作者:OSC-h4cd

来自:开源中国(oschina2013)

如需转载请在文中注明来源和作者


刚刚 GitHub 通过官方博客发布了 21 日“挂掉”的事件分析。




GitHub 指出此次事件发生的原因是在 10 月 21 日 22:52 UTC 进行日常维护——更换发生故障的 100G 光纤设备时导致美国东海岸网络中心与美国东海岸数据中心之间的连接断开。




更具体地,GitHub 分析,虽然两地的连接在 43 秒内恢复,但这次短暂的中断引发了一系列事件,这才导致了长达 24 小时 11 分钟的服务降级。


为了大规模提高性能,GitHub 的应用程序将直接写入每个群集的相关主数据库,但在绝大多数情况下将读取请求委派给副本服务器的子集。GitHub 使用 Orchestrator 来管理 MySQL 集群拓扑并处理自动故障转移,Orchestrator 在此过程中考虑了许多变量,并在 Raft 共识机制之上达成共识。Orchestrator 可以实现应用程序无法支持的拓扑,因此必须注意将 Orchestrator 的配置与应用程序级别的期望保持一致。




然而 21 日,在网络分区过程中,Orchestrator 在主数据中心根据 Raft 的共识机制,执行了取消领导的选举(leadership deselection)。美国西海岸数据中心和美国东海岸公有云 Orchestrator 节点获得合规票数,并开始对群集进行故障转移,将写入指向美国西海岸数据中心。Orchestrator 继续组织美国西海岸数据库集群拓扑,当连接恢复时,应用层立即开始将写入流量引导到西海岸站点的新当选主节点上。


美国东海岸数据中心的数据库服务器包含一小段时间的写入数据,它们尚未复制到美国西海岸的设施。由于两个数据中心中的数据库集群都包含了其它数据中心中不存在的写入数据,因此无法安全地将主数据库故障转移到美国东海岸数据中心。




GitHub 工程师发现问题后进行了一系列抢救措施,“最终没有用户数据丢失,但是,几秒钟的数据库写入的手动协调仍在进行中。”


而之所以服务降级时间长达 24 小时 11 分,是因为在此次事件中,GitHub 的策略是优先考虑用户数据完整性,而不是站点可用性和恢复时间。


GitHub 对所有受影响的用户表示歉意,并表示“我们已经吸取了教训,并且采取了一系列措施,我们希望更好地确保不再发生类似情况。”


同时 GitHub 也表示接下来将进一步解决由此导致的数据不一致问题。


详细分析与事件时间线请查阅 GitHub 公告:


  • https://blog.github.com/2018-10-30-oct21-post-incident-analysis/


开源中国征稿开始啦!


开源中国 www.oschina.net 是目前备受关注、具有强大影响力的开源技术社区,拥有超过 200 万的开源技术精英。我们传播开源的理念,推广开源项目,为 IT 开发者提供一个发现、使用、并交流开源技术的平台。


现在我们开始对外征稿啦!如果你有优秀的技术文章想要分享,热点的行业资讯需要报道等等,欢迎联系开源中国进行投稿。 投稿详情及联系方式请参见: 我要投稿





推荐阅读

IBM 收购 RedHat:蓝巨人为什么要戴这顶红帽?

机器人在 GitHub 上“卧底”数月,伪装成人类贡献修复补丁

Go HTTP 框架性能大幅下降原因分析







请到「今天看啥」查看全文