raft怎么研究引擎,raft怎么免费下载最新版

  

  TiFlash终于开源了,不再是闭源:我们选择这个特殊的节日开源,并做出承诺,希望能更有诚意(:)   

  

  PingCAP一直信奉开源。这种信念根植于创始人的感情,深深影响着聚集在这面旗帜下的所有人。开源本身并不是一种营销策略:只要能看到开源能带来什么,我们就坚持开源,这也让我们的开源精神相对纯粹。作为TiDB社区的重要力量,我们与其他社区贡献者一起贡献代码。通过社区用户的使用和打磨,每个人都可以分享TiDB不断进步的红利,没有任何人为的障碍和边界。而自由共赢的理念也是我们对技术和开源的固执。   

  

  TiDB是HTAP的分布式数据库,其中TiFlash是提供HTAP能力的重要组成部分。从原型开发开始,因为是一个探索性的项目,我们一开始并没有想好最终的形态和架构(TiFlash确实在2018年进行了一次彻底的改造和重做)。为了不引起外界太多的讨论,我们选择暂时关闭TiFlash的源码,待其大致成型后再开放。虽然一开始就打算开源,但真正开始做的时候,发现它已经欠了不少“开源债”,与TiDB的主干显得格格不入:发布流程没有完全整合,开源所需文档缺失,编译体验相当糟糕,甚至有些代码风格有些难看。还清这些债务需要大量的时间和人力。与此同时,产品迭代的压力和有限的资源成为TiFlash开源的最大障碍。作为一个信奉开源的团队,TiFlash的闭源其实对我们来说就像是喉咙痛。所以,虽然还有很多不足,但我们选择投入时间来逐步还债。毕竟单就这个引擎而言,我们也是从社区得到了一些东西。无论是ClickHouse优秀的运行时基础,还是众多社区用户提供的真实场景和改进建议,这些都让TiFlash受益匪浅,无法计算。可以说,没有这些帮助,就没有TiFlash。   

  

  TiFlash首先受益于开源社区中的其他项目。除了我们使用的各种基础库之外,最重要的部分就是TiFlash的框架代码是基于ClickHouse的。我们使用ClickHouse的方式是将其作为独立的计算运行时和服务器框架,并重用存储接口。针对在线交易数据分析的大目标,我们增加了交易相关逻辑、MPP能力和实时可更新的库存引擎,并引入Raft协议和MySQL兼容性,集成到整个TiDB系统中。感谢ClickHouse为社区提供了一套高性能计算引擎。对于我们来说,良好的基础大大加快了TiFlash的开发进度。值得一提的是,t flash和ClickHouse的专长场景完全不同:t flash完全专注于事务性数据的分析,我们不希望用户认为t flash是更好的ClickHouse。   

  

  作为一个年轻的引擎,两年多来,我们得到了天使用户的接纳和帮助。同时,我们也通过近距离倾听用户的声音来迭代改进我们的产品。而这一切,又反过来帮助用户简化分析环节的结构,享受实时数据的红利。当时虽然TiFlash没有开源,但是已经得到了TiDB社区的加持。我们清楚地记得,在早期版本中,税务系统的朋友和我们一起测试,试图优化纳税流程的实时性能。虽然失败了,但我们在真实场景中对系统设计的得失有了第一手的感受,这直接导致了一次重大的重新配置:我们完全重新设计了存储层,引入了Raft Learner作为复制协议,决定使用TiDB-Server作为统一门户,而不是TiSpark,这也是今天大家看到的架构;随着TiDB 4.0的正式发布,可以说完全依靠小红书在发布前几个月提供场景与我们一起探索,而这次尝试最终成功落地电商实时看板场景,让交易数据实时展现;直到5.0,TiFlash在高压实时场景下的性能从无危险但有时有毛刺的618,到流量翻倍但稳定的双十一,都得到了提升和验证。这代表的不仅仅是全球领先快递公司的核心业务,更是数万TPS、数十亿订单的实时监控,以及用户的包容、信任和互助。至今经常收到客户私信,说自己的某个场景因为TiFlash的能力获得了实实在在的商业利益。每次看到这些可爱的消息,我们都会在团队里分享我们的喜悦。帮助大家,提供独特价值,是我们的追求;同时,社群的支持也是产品开发不可或缺的条款,推动其在更严谨、更有价值的场景中落地。可以说,没有社区的力量,我们无法为更多人提供更好的产品。今天,开源是一个全新的渠道,它使TiFlash能够更深入地帮助和共赢社区。   

  

  最后说一句对不起。虽然是开源的,但是TiFlash仍然缺乏必要的面向社区的代码解释。关于TiFlash和TiDB HTAP的架构分析,请参考我们在VLDB 2020发表的论文《TiDB: A Raft-based HTAP Database》,或文章《TiDB HTAP 深度解读》和《TiDB 的列式存储引擎是如何实现的?》。不幸的是,这些都是基于TIDB 4.0版本,当时TiFlash仍然没有重要的MPP功能。此外,源代码分析和阅读指南仍然缺失。这些将在接下来的几个月里补上,帮助你阅读和理解TiFlash。希望关注TiFlash的人可以借助开源有更多的手段帮助它变得更好,无论是更多的功能,运营商支持,更直观的追溯能力,还是更快更稳定的Delta树列表引擎。   

  

  是的,我们期待你的贡献,因为这种力量将借助社区的翅膀,飞跃出令人惊叹的奇迹。   

  

  祝大家节日快乐。   

相关文章