简讯 | TiDB团队与我院师生开展分享交流活动

发布时间:2018-11-29浏览量:78

2018年11月14,应我院邀请,PingCAP公司的分布式数据库TiDB的合伙人崔秋老师、技术leader申砾老师、TiKV技术leader唐刘老师和OLAP技术Leader马晓宇老师来我院进行访问并与师生们热情地交流了在数据库系统设计、实现已经维护方面的心得体会。

此次分享交流活动在数学馆113举办。活动伊始,数据学院副院长周烜老师为TiDB团队的来访表示欢迎,并介绍了我院在数据库系统领域的工作和成果,希望能借此机会和TiDB团队多多交流与学习。随后,崔秋老师为在座的师生介绍了TiDB数据库的现状,以及未来项目研发的重点方向。

image.png

在第一场交流报告中,申砾老师指出现如今互联网应用越来越复杂,传统的MySQL之类的数据库已经无法支撑庞大的互联网业务。新起的NoSQL数据库在提供了较高的水平扩展能力的同时失去了对SQL复杂查询的支持,并且需要通过调整应用层面的代码来支持业务。而业务代码的调整在实际生产中也是不太现实的。因此,TiDB团队希望能够在结合传统数据库和NoSQL的优点的基础上设计出一款能够保证一致性、可扩展和高可用的分布式数据库。在接下来的介绍中,申砾老师解释他们底层存储引擎选择RocksDB的依据,以及如何在RocksDB的基础上实现了关系型数据的存储以及存储节点间的高可用和扩展性。紧接着,申砾老师与大家继续分享了如何他们如何在这款KV存储引擎上设计SQL的执行,以及如何通过Secondary Index(二级索引)和Memory-Comparable encoding algorithm(内存可比较的编码算法)等技术来保证SQL执行的效率。申砾老师随后还介绍了TiDB在Kubernetes上部署的一些想法和经验。申砾老师说,怎样面对一个云环境或者一个可以弹性伸缩的容器环境设计一个可以弹性伸缩的数据库一直是TiDB团队的重点。最后,XX介绍了他们的项目一直怀着拥抱开源的心态,致力于开源社区的建设,也欢迎大家加入到TiDB的开源项目中,为TiDB的发展舔砖加瓦。本场报告结束后,现场师生同申砾老师就高可用、查询处理方面展开了热烈的交流。

image.png

在接下来的报告中,唐刘老师为大家讲解了构造一个健壮的分布式数据库是一件如何困难的事情,以及TiDB团队是如何通过践行Chaos Engineering来保证数据库系统的稳定开发迭代。唐刘老师首先提出了unit test(单元测试)和integration test(整合测试)是十分重要的,但他们任然存在许多局限性。随后,唐刘老师指出,为了更好地模拟系统地实际情况,我们需要Chaos。而在TiDB中Chaos的实现主要涉及到三个关键技术:monitor,fault injection以及automation。最后,唐老师给大家着重介绍了一下TiDB中如何使用TLA+来验证我们程序的正确性,并为大家解答了关于TLA+原理及应用方面的困惑。

image.png

TiDB简介:TiDB是PingCAP公司基于Google Spanner/F1论文实现的开源分布式NewSQL数据库。TiDB的设计目标是100%OLTP场景和80%OLAP场景。TiDB具备如下NewSQL核心特性:

· SQL支持(TiDB是MySQL兼容的)

· 水平线性弹性扩展

· 分布式事务

· 跨数据中心数据强一致性保证

· 故障自恢复的高可用

(摘自PingCAP官网:https://pingcap.com/index.html)


摄影 | 魏星

文案 | 魏星

排版 | 王菲