解剖“全球最大男性交友网站”,GitHub十五年数据库架构演进

这篇具有很好参考价值的文章主要介绍了解剖“全球最大男性交友网站”,GitHub十五年数据库架构演进。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

解剖“全球最大男性交友网站”,GitHub十五年数据库架构演进,云数据库技术,SQL 开发,交友,github,数据库架构,mysql,oracle,sql,数据库

数据库编程大赛:一条SQL计算扑克牌24点

近期,GitHub全面升级到了MySQL 8.0。ITPUB特别邀请了NineData创始人、资深技术专家叶正盛老师,为大家解析GitHub历年数据库架构的发展历程,以及大型网站何时进行分库分表的改造。

解剖“全球最大男性交友网站”,GitHub十五年数据库架构演进,云数据库技术,SQL 开发,交友,github,数据库架构,mysql,oracle,sql,数据库

Hello,各位朋友!今天,我们一起来回顾GitHub,这个被程序员亲切地戏称为“全球最大的男性交友网站”的平台,在过去十五年的数据库架构演进历程。

GitHub自2008年上线以来,已经演变成全球最大的开源软件托管平台。在这里,约有1亿名程序员在这里贡献代码、交流思想。这背后,GitHub根据业务发展需求完成了数据库架构的多次升级,让我们一探究竟。尤其是大家比较关注的大型网站何时做分库分表的改造。

解剖“全球最大男性交友网站”,GitHub十五年数据库架构演进,云数据库技术,SQL 开发,交友,github,数据库架构,mysql,oracle,sql,数据库

2008年:单机的简约之始

解剖“全球最大男性交友网站”,GitHub十五年数据库架构演进,云数据库技术,SQL 开发,交友,github,数据库架构,mysql,oracle,sql,数据库

最初,GitHub非常简单,仅仅使用了一个单机的MySQL 5.0数据库。应用开发语言是Ruby on Rails,这个也是当时非常流行的开发语言和框架。

2009年:迈向主备架构

单机的数据库肯定是不合格的,可靠性风险太高,到了2009年,随着业务发展,GitHub迈向MySQL的主备架构,并采用了基于数据块同步的DRBD软件来执行主备复制,硬件上则是两台配备了8核32G内存和15,000转的SAS机械硬盘的服务器。

解剖“全球最大男性交友网站”,GitHub十五年数据库架构演进,云数据库技术,SQL 开发,交友,github,数据库架构,mysql,oracle,sql,数据库

2013年:性能提升与IDC搬迁

2011到2012年,GitHub将MySQL升级至5.1。

2013年,为了进一步增强数据库性能,GitHub执行了一次IDC搬迁,数据库硬件也得到了显著升级,尤其是采用了SSD固态硬盘和万兆网卡,这使得性能提升了一倍以上。期间,GitHub还进行了一次在线迁移,并宣布整个停机时间仅为13分钟,显示出了其在数据库管理上的高效能力。

细节上,GitHub通过进行大量历史数据清理,不仅节省了空间,并且提升了缓存的命中率。

这次升级后,GitHub的网页加载时间加快了一倍以上。

解剖“全球最大男性交友网站”,GitHub十五年数据库架构演进,云数据库技术,SQL 开发,交友,github,数据库架构,mysql,oracle,sql,数据库

2015-2016年:MySQL5.6/5.7

到了2015年初,GitHub进一步迈向MySQL 5.6,并在2016年升级至5.7。由于5.6到5.7都属于小版本升级,所以操作过程比较简单。根据业务拆分了很多集群,中间使用了ProxySQL代理服务,整体都是读写分离的技术架构。

解剖“全球最大男性交友网站”,GitHub十五年数据库架构演进,云数据库技术,SQL 开发,交友,github,数据库架构,mysql,oracle,sql,数据库

发布GHOST,创新地解决MySQLDDL锁表难题

MySQL表结构的变更往往会带来锁表问题。之前,通常使用Trigger(触发器)方案来解决。当时我在阿里巴巴集团工作时,对这个问题也非常关注,我们内部开发了一个名为MyDDL的软件。虽然我们考虑过通过解析binlog来减少服务器的影响,但由于技术难度,这个想法并未去实践。

2016年,GitHub推出了基于解析Binlog的GHOST(GitHub Online Schema Transformer)工具,实现了在线DDL的功能。这一解决方案现在在业界颇受欢迎,并且已经开源到了社区。

解剖“全球最大男性交友网站”,GitHub十五年数据库架构演进,云数据库技术,SQL 开发,交友,github,数据库架构,mysql,oracle,sql,数据库

重磅:分库分表架构升级

到了2019年,根据GitHub的公开数据,数据库每秒有95万次请求,其中主库请求5万次/秒,从库达到90万次/秒,这是一个典型的“读多写少”的负载。随着业务不断增长,单纯的主备架构已无法满足需求。GitHub开始做分库分表的数据库架构升级,GitHub选择了海外流行的Vitess,一款YouTube内部使用并后来开源到社区的分库分表中间件,相当于分布式的数据库方案,为业务的持续快速发展提供了强有力的支持。

解剖“全球最大男性交友网站”,GitHub十五年数据库架构演进,云数据库技术,SQL 开发,交友,github,数据库架构,mysql,oracle,sql,数据库

解剖“全球最大男性交友网站”,GitHub十五年数据库架构演进,云数据库技术,SQL 开发,交友,github,数据库架构,mysql,oracle,sql,数据库

2020年,GitHub进一步升级了他们的缓存解决方案,将Redis缓存替换为分布式版本,并完全替换了原有的Memcached。

重大的跨版本升级:MySQL5.7至8.0

进入2023年,GitHub将MySQL的5.7版本全面升级至8.0版本。这次大版本跨越,非常复杂,官方博客中有非常详细的介绍。他们不仅要做到在线升级,还要制定相应的回滚方案,并设置了MySQL5.7到8.0,以及8.0回退到5.7的复制链路,以确保万无一失。

解剖“全球最大男性交友网站”,GitHub十五年数据库架构演进,云数据库技术,SQL 开发,交友,github,数据库架构,mysql,oracle,sql,数据库

解剖“全球最大男性交友网站”,GitHub十五年数据库架构演进,云数据库技术,SQL 开发,交友,github,数据库架构,mysql,oracle,sql,数据库

GitHub这套方案非常复杂,主要是为了确保能够实现在线升级,如果升级失败,还可以回滚到老MySQL5.7,官方透露中间也踩了很多坑,这个需要非常资深的DBA团队才能完成。

我本人在数据迁移这个领域工作了很多年,开发了NineData产品,可以帮助客户做在线的数据复制、数据库迁移升级、ETL等能力,NineData做在线数据迁移的原理是通过解析Log实现,同时支持双向复制,这样可以做到如果升级失败,还能一键完成数据回滚。

解剖“全球最大男性交友网站”,GitHub十五年数据库架构演进,云数据库技术,SQL 开发,交友,github,数据库架构,mysql,oracle,sql,数据库

现如今,GitHub的总数据量约为300TB,使用了1200台数据库服务器,包括IDC主机和Azure云主机,反映了其云上和云下混合云架构的特点。

启发与总结

GitHub的数据库演进历程给我们丰富的启发:在业务初期,数据库架构尽量保持简洁,MySQL+Redis的数据库加缓存结构能够支撑到100万QPS左右,期间可以使用缓存、数据库读写分离、历史数据归档、业务垂直拆分、硬件升级等方案让数据库架构尽量保持简单。在按业务垂直拆分后,当超过了单机负载,就需要采取分库分表解决方案,这个升级会比较复杂,需要做好充分的业务改造预估以及SQL逻辑和性能的测试。GitHub选择的Vitess的分库分表中间件,国内也有很多解决方案,如PolarDB-X、TDSQL、SharedingSphere、TiDB和OceanBase等等,都是相对成熟的选择。

解剖“全球最大男性交友网站”,GitHub十五年数据库架构演进,云数据库技术,SQL 开发,交友,github,数据库架构,mysql,oracle,sql,数据库

GitHub的发展历程不仅是互联网数据库技术演进的缩影,也是对那些面临数据库扩容、分库分表等挑战的公司的一个借鉴。希望这里的分享能给您带来些许启示。如果您觉得有所帮助,请不吝分享给您的同事和朋友。

作者介绍

叶正盛

玖章算术CEO,NineData创始人

资深数据库专家,原阿里云数据库产品管理与解决方案部负责人,阿里巴巴去 IOE、异地多活、云计算多次技术变革核心成员,带领团队研发了阿里云数据传输DTS、数据管理DMS、数据库备份DBS、数据库自治DAS等产品。文章来源地址https://www.toymoban.com/news/detail-773249.html

到了这里,关于解剖“全球最大男性交友网站”,GitHub十五年数据库架构演进的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 全球银行最大分布式核心系统全面上线,邮储银行做到了!

    摘要: 近年来,国家陆续出台金融科技相关政策,提出创新驱动发展战略,强调以新一代信息和网络技术为支撑,拓展互联网金融,促进技术创新和商业模式创新的融合。 本文分享自华为云社区《全球银行最大分布式核心系统全面上线,邮储银行做到了!》,作者: GaussD

    2024年02月06日
    浏览(36)
  • 阿里云启动全球最大智算中心,总算力达12 EFLOPS

    8月30日,阿里云宣布正式启动张北超级智算中心,总建设规模为12 EFLOPS(每秒1200亿亿次浮点运算)AI算力,将超过谷歌的9 EFLOPS和特斯拉的1.8 EFLOPS,成为全球最大的智算中心,可为AI大模型训练、自动驾驶、空间地理等人工智能探索应用提供强大的智能算力服务。 该智算中心由

    2024年02月15日
    浏览(42)
  • 全球最大互联网公司Facebook拥抱加密货币,已经涨价逾25%

    作者:禅与计算机程序设计艺术 Facebook于2015年发布了世界上第一款加密货币比特币。这个社交网站与微软、苹果、亚马逊等互联网巨头密切相关。作为全球最大的互联网公司之一,它成为了全球货币市场的重要参与者,并推动了加密货币的发展。 2017年末,Facebook在其官方B

    2024年02月05日
    浏览(41)
  • ChatGPT全球最大开源平替OpenAssistant:基于Pythia和LLaMA微调而来

    论文地址:https://drive.google.com/file/d/10iR5hKwFqAKhL3umx8muOWSRm7hs5FqX/view 项目地址:https://github.com/LAION-AI/Open-Assistant 数据集地址:https://huggingface.co/datasets/OpenAssistant/oasst1 体验地址:https://open-assistant.io/chat 观看公告视频:https://youtu.be/ddG2fM9i4Kk OpenAssistant介绍 最近火爆的ChatGPT使用如

    2024年02月15日
    浏览(37)
  • GitHub: 风靡全球的开源版本控制平台

    GitHub是当今软件开发领域最著名的开源版本控制平台之一。自2008年成立以来,GitHub已经成为了全球各种规模的项目的首选源代码托管平台。本论文将介绍GitHub的背景和发展,并着重探讨其对软件开发社区的影响。 GitHub由Tom Preston-Werner、Chris Wanstrath和PJ Hyett于2008年共同创建。

    2024年02月09日
    浏览(42)
  • Reddit NFT爆火,全球最大社区论坛成为Web3大规模应用前哨站

    这是白话区块链的第 1804 期原创  作者 | 火火 出品|白话区块链(ID:hellobtc) 据Dune Analytics最新数据显示,Reddit于Polygon网络发行的NFT系列Reddit Collectible Avatar销售总量已突破9万笔,在12月7日达到94,338笔,交易总额超1100万美元。 此外,当前Reddit Avatar NFT持有地址总量为4,079,

    2023年04月24日
    浏览(47)
  • 全球免费编程教育网站:Code.org

    你还在为小朋友的编程教育而发愁吗? 你还在为小朋友放假无聊而头疼吗? 他来了他来了,全球免费编程教育网站来了。 2013年成立的Code.org是一个非营利组织。 它致力于为年轻女子、学生从来自少数民族提供机会。 其愿景是:每所学校的每位学生都有机会学习计算机科学

    2024年02月10日
    浏览(41)
  • 这么有名的网站居然很少人知道,服了——passmark-全球手机电脑性能、性价比排名网站

    促使我能发表这篇文章的动力不是这个网站有多牛,而是我在某编程群里交流手机cpu多重要时,一些人的回答,我实在看不下去,只能说🛡内的消息闭塞,被迷糊成为大老实人儿,但是。。。这个网站不需要魔法也可以用啊。。服了。。。建议个人的认知不要建立在广告上面

    2024年02月11日
    浏览(36)
  • 调查称全球多所顶尖高校网站存在网络攻击风险

    Cyber News的一项调查研究显示,全球多所顶尖高校的网站未能及时更新安全补丁,存在敏感信息泄露,甚至被攻击者全面接管的风险。 Cyber​​ News 研究团队详细调查了 20 个每月有数百万访问量的高校网站,其中至少有6个是位于全球Top 100的顶尖高校。研究人员表示,针对大学

    2024年02月09日
    浏览(40)
  • 网站本地化翻译、建设助力企业拓展全球市场 安睿杰翻译

    企业开展海外业务,建立面向目标地区或国家的海外站或独立站,离不开网站的本地化。 网站本地化分为:网站本地化翻译、网站本地化建设。 【网站本地化翻译】是指将网站的文本、图片、音频、视频等内容中的语言转换成目标地区用户的母语。 【网站本地化建设】是指

    2024年01月25日
    浏览(77)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包