由中国团队打造的世界级开源项目



  • 传统数据库已经不能适应这个快速发展的时代,开源是大势所趋。

    对于一个企业的信息化系统而言,数据库的重要性是不言而喻的。但是随着时间的推移,用户数据增长的速度已经大大超过了传统数据库的应对能力,同时现有数据库还不能很好的支持跨数据中心多活,不论是在性能还是在灵活性方面传统数据库都远远落后于市场需求的发展。

    **可以说,传统数据库已经不能适应这个快速发展的时代。**不过好消息是,随着越来越多开源数据库的出现,这一情况得到了很大改善。

    随着开源数据库在功能上的日益强大和完善,越来越多的中小型企业在业务中开始广泛的应用开源数据库。

    现在开源应用是大势所趋,数据库对于任何一个企业而言都很重要,没有人希望自己被绑架到一个单一的商业产品上面。而开源最突出的特点就是不会被绑架,大家在开源平台中其实是一个协作的关系。通常你遇到问题时,可能还有很多人也遇到过相同问题,这个时候你们就可以交流经验。而像传统商业数据库,都会以大客户为主,小用户的需求不一定有人理会。但在开源平台中,只要有足够多的用户提出这个问题,那么官方一般都会接纳。退一步说,即使官方不接纳,你也可以自己 Fork 一个分支来完成自己的需求,这在商业数据库中是不可能做到的。

    此外,开源产品社区由于可以有很多人参与,会不断的壮大,壮大到一定程度就会形成一个超级大的生态。这个生态又形成了良好的相互依存关系,围绕着这一生态会衍生出很多相关工具和产品,从而促进整个生态系统的完善。

    但比较遗憾的是,目前我们看到的开源产品都是以国外为主,国内很少见到有比较好的开源项目出现。同时分布式关系型数据库领域目前还并没有很好的开源解决方案,但是随着业务的发展,数据量越来越大,数据库层面如何扩展渐渐成为一个不可回避的问题。

    由中国团队打造的世界级开源项目

    但凡事总有开始,TiDB 就是由国内 PingCAP 团队发起的数据库领域的顶级开源 NewSQL 项目。

    TiDB 灵感来自于 Google Spanner 和 Google F1,致力于完美实现在线弹性伸缩、支持 SQL 语句、ACID 事务一致性和真正的高可用性等分布式关系型数据库的理想状态。
    项目于 2015 年 5 月在 GitHub 开源,同年 12 月发布 Alpha 版本。作为 GitHub 上的明星开源项目,TiDB 受到了众多开源爱好者的持续关注及参与,在社区和 PingCAP 技术团队的共同努力下,经过一年的开发,现在已经推出了 Beta 版本,预计未来三个月内能够迭代到 GA 版本。

    TiDB 解决了以前数据库灵活性差、扩展性差和不能自由伸缩等诸多问题,TiDB Beta 版实现了以下功能:

    • 在线弹性伸缩
      分布式的 TiDB 可随着你的数据增长而无缝地水平扩展,只需要通过增加更多的机器来满足业务增长需要,应用层可以不用关心存储的容量和吞吐,而且不会影响在线服务。
    • 高可用和强一致性
      TiDB 支持跨数据中心的数据安全,使用多副本的数据存储和无状态的服务节点,使用 Raft 一致性算法确保多个存储副本之间的强一致性。
    • 一致性的分布式事务
      可以把 TiDB 想象成一个单机的 RDBMS,ACID 事务可以在多服务器间进行,无需担心一致性问题。
    • 兼容 MySQL 协议
      高度兼容 MySQL 的协议与语法,兼容常用的 MySQL 客户端和 MySQL 管理工具。大多数业务可无缝从 MySQL 切换到 TiDB。

    How we built TiDB?

    在 7 月 28 日召开 QingCloud Insight 2016 大会上,我们特别邀请了 PingCAP 联合创始人兼 CEO 刘奇,他会在开发者专场上带来《How we built TiDB?》 的主题分享。今天我们专程采访到刘奇,请他为大家提前剧透下大会的精彩内容:

    QingCloud:你认为哪些人应该来了解这个内容?

    刘奇:我觉得像 DBA、系统架构师、CTO 以及 CIO 都挺合适的,他们最了解数据库对于企业真正的价值。我认为从长远上看,数据是区分重要性的,例如对于很多公司来说,客户的数据是永远不能丢的,这就是它最核心的价值。而对于银行用户而言,关于金融业务相关的数据是它最核心的,再往外一些,如日志、LOG 等重要级别就不一样。

    QingCloud:你认为哪些场景、哪些应用应该使用 TiDB?

    刘奇:所有在数据库上遇到瓶颈的应用都可以使用。我认为数据库不应该成为卡住业务的瓶颈,当你的公司业务在快速发展的时候,所有的东西都应该为支撑业务而存在的。如果这时候数据库遇到了性能问题、扩展性问题、数据保护问题、多数据中心容灾能力的问题,那这个时候就可以上 TiDB 了。

    QingCloud:TiDB 能够支持的规模?

    刘奇:我们的设计规模都是单个集群可以支持千级别的机器,如果超过这个级别可以再部署一个新的实例,又可以支持千级别的机器。

    QingCloud:到目前为止,TiDB 的这个开发工作,您认为最困难的是哪一块?

    刘奇:应该是测试,测试对于分布式系统来说,本身就非常困难,对数据库的测试要求就更高了。必须要非常严谨的去做所有可能性的测试。我们会不断模拟机器挂掉、网络断开、程序被 Kill、磁盘损坏等等我们能想到的所有情况。保证无论出现什么极端情况,都可以保证数据的安全性。好在我们兼容 MySQL,可以用大量 MySQL 的测试工具来测试我们的系统。如果靠人工去重新构建这些测试,那个量级是非常巨大的恐怕不管投入几个人都要写一辈子。

    今天的分享就到这,如果你对这个话题非常感兴趣,想听到技术大牛的更详细介绍,别忘了 7 月 28 日 QingCloud Insight 2016 上参加开发者专场《We. Developers》。什么?你还没有报名?名额所剩不多了,马上抓住最后的机会,拿起你的手机,扫描下方二维码报名吧。


登录后回复
 

与 青云QingCloud 社区 的连接断开,我们正在尝试重连,请耐心等待