TiDB的架构演进哲学
极客时间编辑部
讲述:丁婵大小:1.90M时长:04:09
日前,PingCAP CEO 刘奇在演讲中分享了 TiDB 的架构演进中的思考和哲学,他谈到通常业内会给创业公司的最佳建议是优先打“透”一个行业,因为行业内复制成本是最低的,可复制性也是最好的。而 TiDB 从第一天开始就选择了相反的一条路,先往通用性发展,虽然路途艰难,但是有更长时间的复制性。这是一条“取势”的思路,因为“势高,则围广”,
那么,如何“取势”呢?TIDB 最初有三个基本信念,第一,相信云是未来,全面拥抱 Kubernetes,而当年 Kubernetes 还没火。第二,不依赖特定硬件、特定的云厂商,希望 TiDB 可以支持多种环境。第三个信念是支持多种计算单元,比如 X86、ARM 、MIPS 等等,其中 MIPS 典型代表是龙芯。
除此以外,PingCAP 从产品最初设计和之后 Roadmap 计划,一直遵循一个原则,就是将用户遇到的问题放在第一优先级。
在开始做产品之前,PingCAP 做了用户调研,并确定了很多的技术方向,比如 TiDB 的分层。TiDB 分两层,一层是 SQL 层,一层是 key-value 层,那么到底先从哪一个层开始写呢?
按照 PingCAP 的原则 ,要永远站在离用户更近的地方去考虑问题。因为离用户越近越能更快的得到用户反馈,更快地验证你的想法是否可行。显然 SQL 层离用户更近,所以 PingCAP 选择从 SQL 层写起。而接下来面临的问题就是怎么做测试、验证,让整个架构能够先完整跑起来。
在软件开发领域有一条非常经典的哲学“Make it work, make it right, make it fast”,PingCAP 正是遵循了这条规律。
首先,用最短的时间让整个系统能够工作。于是 PingCAP 在 2015 年 9 月份开源了第一个版本,并及时找到调研时的用户进行验证。然而,当用户一听,需要安装组件才能使用系统时,用户并不愿意使用,他们会想这是引入问题还是在解决问题?类似这样的问题或者质疑声有很多,PingCAP 都根据用户反馈一一改进,最终获得第一个用户的认可。这证明 PingCAP 做到了“Make it work”。
接下来就是 Make it right。做一个保证正确性的数据库是一个巨大的挑战,也有巨大的工作量,是从理论到实践的距离。这期间需要不断地接收反馈、改进、测试、验证。
最后是 Make it fast,从收到用户反馈,解决用户问题,再收到用户反馈之间循环了许久之后,他们意识到了问题的重复性,于是将所有需求和问题进行汇总,并考虑两点:
哪些是共性需求?
什么是彻底解决之道?
把共性的需求都列在一块,提供一个在产品层面和技术层面真正的彻底的解决办法。
比如其中一个共性问题是要解决三个方面:性能、隔离和功能。性能和隔离兼得好像很困难,但因为架构的独特优势,所以这些看上去非常复杂的问题用一个方案就可以解决,并且强化了原来的系统。
这里的“强化”怎么定义呢?例如,用户不会考虑 Query 是 OLAP 还是 OLTP,只是想跑这条 Query。用一套东西解决用户的所有问题,对用户来说就是“强化”的系统。
总而言之,TiDB 的架构演进过程都是围绕着“解决用户问题”这一点,希望今天的内容对你有所启发。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论