我在字节跳动研发数据库|火山引擎开发者社区 Meetup 讲师访谈

技术

点击上方👆蓝字关注我们!

picture.image

5 月 15 日,火山引擎开发者社区第二期 Meetup 邀请到了火山引擎系统开发工程师马浩翔为大家分享《分布式数据库在抖音春晚活动中的应用》,小火山提前采访了马浩翔,和大家分享他对春晚红包项目印象深刻的事情,以及对分布式数据库的看法。

小火山:简单介绍一下自己,有什么兴趣爱好?

马浩翔

:我硕士毕业于美国东北大学,目前担任数据库系统开发工程师。因为我 来自工程师文化的家庭 ,所以在小学的时候就很喜欢鼓捣,经常把硬件拆了又装,还学习在 DOS 黑框里敲神奇的命令。长大后赶上了移动互联网浪潮,年少时过于热血,感觉代码时刻都在改变世界,就毫不犹豫投身到技术路上:)

picture.image

我的兴趣爱好非常广泛,包括 做饭、看艺术展、KTV 等等。这些跟写代码有一个共通点,它们都是 艺术 ,我觉得要有一定的艺术审美才能做出优秀的技术项目。最近写代码有一个小癖好,就是越来越 喜欢用 vim 直接写而不用 IDE ,在用 vim 的时候感觉大脑活动更活跃,思维会更专注~

小火山:什么时候加入字节跳动的?对字节跳动最大的感受是什么?

马浩翔

:我于 2019 年 6 月加入字节,一直参与着我们的分布式数据库系统项目。我加入的时候项目是全零状态,有幸从 0 到 1 参与了设计、编码、测试的全过程,现在我们的项目已经逐渐支撑了各业务的超大流量。

反观自身成长过程, 对字节最深的感受就是开放谦逊的文化 ,不管 senior 还是 junior,都能就事论事开放讨论,谦逊地听取别人的建议,共同把事情做到极致。

小火山:平时如何保持技术输入,有什么推荐的技术书单?

马浩翔

:个人感觉 保持输入的核心是要保持对未知的好奇心 。虽然工作本身很忙,但我们团队每周都会组织 workshop,鼓励大家分享新知识,从别的同学的分享中,我会找到不熟悉的细节私下再深入研究。如果大家对数据库感兴趣,这里推荐「 Designing Data-Intensive Application 」这本书;另外对计算机系统感兴趣的同学还可以看过去 10 年的 SIGMOD/VLDB/OSDI/FAST 的论文集

小火山:在支持抖音春晚红包活动项目的过程中有什么印象深刻的事情?

马浩翔

:有两件事情印象最深刻。

一是听说我司承接了春晚活动后,需要自愿报名值班,短短一两分钟内项目组群里有不少同学都自告奋勇,战意昂扬,感觉 大家都很渴望参加这种技术和业务巅峰的活动

二是在测试阶段,因为时间很紧,硬件资源协调很困难,大家经常“小马拉大车”地测试,然后想出各种方案来满足业务在活动期间的性能需求,还设计了一堆预案来为异常情况兜底。 每次凌晨演练结束,大家瞬间放松,异口同声地呼出一口气的场景应该永远都不会忘记

picture.image

小火山:这次 Meetup 中你将分享分布式数据库相关实践经验,那么分布式数据库相比传统关系型数据库有什么特点?

马浩翔

:传统关系型数据库一般指的是单机数据库,两者最大的不同就是在于「分布式」架构,基于分布式架构,分布式数据库会有以下特点:

  • 支持超大容量 。依托于分布式存储,数据表的大小不再被单机存储限制,现在单表大小轻松可达百 TB 级别。而传统单机数据库需要复杂的分库分表方案才能支持大容量,且存在 SQL 兼容性问题。
  • 成本较低,灵活可控 。通过把计算层和存储层都做成分布式架构,CPU 和磁盘互相解耦,可以按需分别扩缩容。而传统单机数据库扩缩容时只能按单机维度操作,同时扩展了 CPU 和磁盘,成本较高。
  • 高性能 。在超大并发场景下,分布式架构可以轻松 scale-out。分布式数据库不再受限于单点能力,而单机数据库的读写能力一定程度上受限于单机 CPU 和单机磁盘的能力。

小火山:春晚红包活动给存储/数据库带来了什么挑战?

马浩翔

  • 一是 性能挑战 。春晚活动的流量极高,传到数据库层的 QPS 与业务的 QPS 也呈正相关,要在超高 QPS 和硬件资源并不富裕的情况下保证用户的 query 时延足够低,难度很大。为此我们深度结合业务做了很多优化方案,最终全程保障了业务性能和稳定性。
  • 二是 容灾能力挑战 。春晚活动过程中,绝对不允许出现服务宕机,不然会影响整个业务链路。数据库作为数据链路的最后一环,需要考虑机房级别的容灾策略,在单个机房全面宕机且无法恢复的情况下仍能正常提供服务。

小火山:分布式数据库可以给业务带来哪些好处?

马浩翔

  • 高性能 。超大并发下分布式架构可以提供极高的事务吞吐能力。
  • 低成本 。当业务增长,需要对数据库扩容时,可以按需分别扩展计算节点或者存储节点,不需要死板地按机器维度同时扩展计算(CPU)和存储(磁盘),浪费资源。
  • 高可用和高可靠 。在分布式存储层,可把数据按多副本跨多机房部署,而计算节点可视为无状态节点,可随时随地启动,提供很高的可用性。

更多关于分布式数据库在春晚活动中的应用内容,请关注我在 5 月 15 日火山引擎开发者社区 Meetup 中的分享, 我将为大家具体介绍分布式数据库的架构和技术特点,结合春晚红包活动的业务特点,数据库团队做了哪些优化支撑业务,以及数据库团队对未来分布式数据库演进的探索和思考。点击阅读原文立即报名,并扫描下图中的二维码进群观看直播!

picture.image

13
0
0
0
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论