腾讯云数据库开源再突破:TDSQL PG 版查询性能提升百倍
日前,腾讯云数据库开源产品 TDSQL PG 版(开源代号 TBase)宣布推出重磅升级——经过一年半的打磨,上万张表访问场景下,内存占用节省 60%;查询性能提升百倍;SQL 语句兼容性增强。同时,大力提升原有数据库版本在分布式场景下的易用性。
TDSQL PG 版是一款具备 HTAP 能力、经过腾讯多年持续投入研发的数据库产品,是腾讯云数据库团队在开源的 PostgreSQL 基础上研发的企业级分布式 HTAP 数据库管理系统,能够提供成熟的一站式解决方案。腾讯云数据库技术总监李跃森介绍到,“在首次开源的 10 天内,TDSQL PG 版的 Star 数就达到了 500 多个。开源不久,就受到了欧洲航天局、国家天文台,以及医疗健康、零售等各个行业用户的青睐。”
那 TDSQL PG 版开源历程中经历了哪些故事?其推出重磅升级背后又有哪些核心技术的驱动呢?
TDSQL PG 版开源背后的进程
腾讯云自主研发的分布式数据库引擎 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 语句兼容、用户易用性等特性。
TDSQL PG 版特性解读
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 开发,节省人力成本,加强了用户对系统的控制力;
TDSQL PG 版开源意义与腾讯数据库开源生态
对于腾讯云、用户和社区来说,开源 TDSQL PG 版(Tbase)的背后具有几层重要的意义:
通过贡献回馈社区的方式帮助更多用户构建起可控的企业级分布式数据库能力;
填补基于 Postgres 的开源分布式 OLTP 系统空白,支持企业核心交易系统的国产化;
支持 OLTP/OLAP 能力,提供一站式整体解决方案;
借助开源社区的力量,加速迭代进步。
以微信支付为例,使用 TDSQL PG 版,能满足微信支付单表数据轻松突破 TB 级海量存储的需求;腾讯云开源数据库高吞吐、高并发,自动扩容的能力,也适合微信支付的业务场景。
PG 中国社区主席张文升也指出:“PostgreSQL 社区将和 TDSQL 在技术、生态、企业服务上开展更深的合作,勇于开创,为客户和企业提供更好的支持与服务。共同建设数据库开源生态。”
当然,TDSQL PG 版开源只是腾讯云数据库开源的代表作之一,腾讯云数据库在开源领域持续深耕。腾讯云副总裁李纲介绍,腾讯云数据库开源已涵盖三大体系:数据库产品能力开源、产品服务工具开源、前沿研究平台能力的开源。从技术创新、到产品应用,到基础研究深化,构建完整的技术演进周期。
在产品能力开源方面,除了 TDSQL PG 版这种兼顾了分析型场景的数据库产品,腾讯云数据库近期还将推出企业级 MySQL 内核的开源项目,代号为 TXSQL,这是一款针对于大规模交易场景的企业级分布式数据库内核。多款产品的持续开源,共同为社区、行业提供完善的国产数据库产品能力体系。
此外,腾讯云数据库也在推动数据库 SaaS 服务工具的开源,包括可以完成 90%日常自动调优、智能诊断的 AI 自动化运维工具,以及可以进行大规模异构数据迁移、分发、聚合的数据库迁移平台。“面对企业客户、开发者,我们希望提供的是一个成熟完整的产品,而不仅仅只是一份代码,”李纲表示。
而在基础研究领域,腾讯还开源了基础研究平台型框架,来帮助降低研究者的研究门槛,加速基础研究。据介绍,2020 年,腾讯和中国人民大学合作开源的 3TS—事务处理技术验证系统,沉淀了腾讯与人大在数据库核心技术方面的许多研究成果,可以提供统一的事务处理框架,帮助研究者快速构建新的并发控制算法,以及检测数据异常。
“腾讯云数据库致力于打造可持续发展的国产数据库开源生态。未来国产数据库技术发展将像飞船一样加速,腾讯数据库开源项目愿做这个进程加速器的坚实底座”,腾讯云副总裁李纲表达了腾讯云数据库在开源生态上的投入和决心。
持续拥抱开源,腾讯坚持的长期价值
开源是腾讯坚持的长期价值之一。腾讯 2010 年起就确立了拥抱开放的战略,并一直秉承重数量、更重品质的态度发展开源。在自主开源方面,截至目前,腾讯共对外开源超过 130 个优质项目,项目覆盖了云原生、大数据、人工智能、数据库等多个技术领域,代码贡献者超过 2000 人,开源项目 star 总数超过 37 万个。
在社区贡献方面,腾讯云在 KVM 社区已贡献超过 170 个 patch,超过 20 个技术特性,其中 8 个被评为 KVM 年度核心突破,贡献国内排名第一,同时连续四年登上 KVM 开源贡献榜,成为国内唯一取得这一成就的云服务商。
开源的本质是以技术开放促进技术创新。数据库开源社区平台汇聚了众多开发力量,推动了开源数据库在云时代实现更多的技术创新和突破。未来,腾讯云数据库的开源建设和治理将继续秉承重量、更重品质的理念,打造可持续发展的国产数据库开源生态。
TBase 开源地址:
https://github.com/Tencent/TBase
参考文档:
https://github.com/Tencent/TBase/wiki
欢迎关注「腾源会」微信公众号,这里是全球开源内容信息的聚集地,包括但不限于全球开源资讯,开源项目及技术文章,开源活动报道及开源人物采访。
评论