日前,腾讯云数据库开源产品TDSQL PG版(开源代号TBase)宣布推出重磅升级——经过一年半的打磨,上万张表访问场景下,内存占用节省60%;查询性能提升百倍;SQL语句兼容性增强。同时,大力提升原有数据库版本在分布式场景下的易用性。
TDSQL PG版是一款具备HTAP能力、经过腾讯多年持续投入研发的数据库产品,是腾讯云数据库团队在开源的 PostgreSQL 基础上研发的企业级分布式HTAP数据库管理系统,能够提供成熟的一站式解决方案。腾讯云数据库技术总监李跃森介绍到,“在首次开源的10天内,TDSQL PG版的Star数就达到了500多个。开源不久,就受到了欧洲航天局、国家天文台,以及医疗健康、零售等各个行业用户的青睐。”
那TDSQL PG版开源历程中经历了哪些故事?其推出重磅升级背后又有哪些核心技术的驱动呢?
PART ONE
腾讯云自主研发的分布式数据库引擎TDSQL PG版(开源代号TBase)的开源背后,其实经历了一段长时间的发展历程——该项目最早诞生于2008年,当时腾讯内部使用的是PostgreSQL单机部署,随着业务体量的不断发展,单机版逐渐满足不了需要,接着就开始了分布式版本的自研。该项目一开始只是服务于腾讯内部大数据平台和微信支付商户系统,伴随产品的不断成熟,目前腾讯内部有7大 BG 的大量业务场景都跑在 TDSQL 上,在丰富的场景验证后才踏入了向外输出的路径。
2019年,TDSQL PG版(开源代号TBase)正式对外开源。2020年,腾讯对旗下数据库品牌进行了整合升级,升级之后腾讯云数据库统一命名为TDSQL(Tencent Database SQL)。
自开源伊始,TDSQL PG版依托社区,在经过内部业务系统的实践检验后,基本保持每月一次小型升级、每半年一次重大升级的节奏。
2020年7月13日,TDSQL 对外正式发布开源V2.1.0版本。在这一次升级中,其强化了多活分布式能力,实现了RPO=0,RTO秒级;并提供了发布与订阅层面一系列的新特性,能帮助用户更高效地完成数据同步和快速定位错误。除了支持传统的主备的部署外,此次开源特性中还增加了对异地多活的部署支持,可以在不阻塞业务的前提下,提供更加灵活的变更发布列表,解决跨地域难题。同时,南北两套独立的系统都可以提供读写服务,并实现就近路由接入,尤其适合微服务架构。
2021年7月,TDSQL 开源版本V2.2.0发布(TDSQL PG版)。而此次V2.2.0又在V2.1.0基础上进一步强化了查询性能、内存优化、SQL语句兼容、用户易用性等特性。
PART TWO
TDSQL PG版的整体架构是非常典型的无共享的MPP的数据库架构,最左边是GTM(事务管理器),负责协调集群事务并管理全局对象,右边是协调节点CN,它是整个数据库访问的接入节点,也是业务访问的入口。
本次TDSQL PG版主要包含如下几大特性的重要升级:
1. 内存管理优化
提供会话内存占用详情查询视图;
自动释放内存过大的空闲连接,使得所有空闲连接的内存占用减少89.3%;
提供LRU替换,使得会话内的内存占用减少55.7%;
2. 分布式调优增强
完善了explain analyze功能,可详细展示各个DN节点上各个算子的执行信息;
方便找到运行较慢的算子,为SQL性能优化提供方向;
3. 执行器/优化器优化
CTE查询、子查询优化为关联查询,性能提升上百倍;
快速SQL下推能力增强,性能提升数十倍;
SQL语句兼容性增强(支持分布式场景下带关联查询的UPDATE/DELETE语句等) ;
4. 分布式执行可视化
新增全局session视图功能;
从CN查询到整个集群的所有会话的运行情况;
提供函数能中止或杀死特定会话所属的进程;
方便运维和前端API开发,节省人力成本,加强了用户对系统的控制力;
PART THREE
对于腾讯云、用户和社区来说,开源TDSQL PG版(Tbase)的背后具有几层重要的意义:
通过贡献回馈社区的方式帮助更多用户构建起可控的企业级分布式数据库能力;
填补基于Postgres的开源分布式OLTP系统空白,支持企业核心交易系统的国产化;
支持OLTP/OLAP能力,提供一站式整体解决方案;
借助开源社区的力量,加速迭代进步。
以微信支付为例,使用TDSQL PG版,能满足微信支付单表数据轻松突破TB级海量存储的需求;腾讯云开源数据库高吞吐、高并发,自动扩容的能力,也适合微信支付的业务场景。
PG中国社区主席张文升也指出:“PostgreSQL社区将和TDSQL在技术、生态、企业服务上开展更深的合作,勇于开创,为客户和企业提供更好的支持与服务。共同建设数据库开源生态。”
当然,TDSQL PG版开源只是腾讯云数据库开源的代表作之一,腾讯云数据库在开源领域持续深耕。腾讯云副总裁李纲介绍,腾讯云数据库开源已涵盖三大体系:数据库产品能力开源、产品服务工具开源、前沿研究平台能力的开源。从技术创新、到产品应用,到基础研究深化,构建完整的技术演进周期。
在产品能力开源方面,除了TDSQL PG版这种兼顾了分析型场景的数据库产品,腾讯云数据库近期还将推出企业级MySQL内核的开源项目,代号为 TXSQL,这是一款针对于大规模交易场景的企业级分布式数据库内核。多款产品的持续开源,共同为社区、行业提供完善的国产数据库产品能力体系。
此外,腾讯云数据库也在推动数据库SaaS服务工具的开源,包括可以完成90%日常自动调优、智能诊断的AI自动化运维工具,以及可以进行大规模异构数据迁移、分发、聚合的数据库迁移平台。“面对企业客户、开发者,我们希望提供的是一个成熟完整的产品,而不仅仅只是一份代码,”李纲表示。
而在基础研究领域,腾讯还开源了基础研究平台型框架,来帮助降低研究者的研究门槛,加速基础研究。据介绍,2020年,腾讯和中国人民大学合作开源的3TS—事务处理技术验证系统,沉淀了腾讯与人大在数据库核心技术方面的许多研究成果,可以提供统一的事务处理框架,帮助研究者快速构建新的并发控制算法,以及检测数据异常。
“腾讯云数据库致力于打造可持续发展的国产数据库开源生态。未来国产数据库技术发展将像飞船一样加速,腾讯数据库开源项目愿做这个进程加速器的坚实底座”,腾讯云副总裁李纲表达了腾讯云数据库在开源生态上的投入和决心。
PART FOUR
开源是腾讯坚持的长期价值之一。腾讯 2010 年起就确立了拥抱开放的战略,并一直秉承重数量、更重品质的态度发展开源。在自主开源方面,截至目前,腾讯共对外开源超过130个优质项目,项目覆盖了云原生、大数据、人工智能、数据库等多个技术领域,代码贡献者超过2000人,开源项目star总数超过37万个。
在社区贡献方面,腾讯云在KVM社区已贡献超过170个patch,超过20个技术特性,其中8个被评为KVM年度核心突破,贡献国内排名第一,同时连续四年登上KVM开源贡献榜,成为国内唯一取得这一成就的云服务商。
开源的本质是以技术开放促进技术创新。数据库开源社区平台汇聚了众多开发力量,推动了开源数据库在云时代实现更多的技术创新和突破。未来,腾讯云数据库的开源建设和治理将继续秉承重量、更重品质的理念,打造可持续发展的国产数据库开源生态。
TBase开源地址:
https://github.com/Tencent/TBase
参考文档:
https://github.com/Tencent/TBase/wiki
往期阅读推荐
给Arm生态添把火,腾讯Kona JDK Arm架构优化实践
Apache之道在腾讯的探索与实践
腾讯开源再登央视!助力提效增产和节能减排
欢迎关注「腾源会」公众号,期待你的「在看」哦~????