极客视点
极客时间编辑部
极客时间编辑部
113240 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/04:09
登录|注册

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
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
33
沉浸
阅读
分享
手机端
快捷键
回顶部