alitrack

性能小金刚 DuckDB 正式发布 v1.0.0, 主打"稳定性"

文中参考文档点击阅读原文打开, 同时推荐2个学习环境: 

1、懒人Docker镜像, 已打包200+插件:《最好的PostgreSQL学习镜像》

2、有web浏览器就能用的云起实验室: 《免费体验PolarDB开源数据库》

3、PolarDB开源数据库内核、最佳实践等学习图谱:  https://www.aliyun.com/database/openpolardb/activity 

关注公众号, 持续发布PostgreSQL、PolarDB、DuckDB等相关文章. 

DuckDB 宣布 v1.0.0 正式发布, 主打"稳定性"

原文: https://duckdb.org/2024/06/03/announcing-duckdb-100.html

DuckDB团队非常高兴地宣布,发布DuckDB 1.0.0版本,代号为“Snow Duck”(anas nivis)。

DuckDB目前github已经有17.6K star, 自2018年为该项目编写第一个源代码以来,已经过去了近六年,此后发生了很多事情:现在有超过30万行C++引擎代码,超过42000个提交,近4000个问题再次打开和关闭。DuckDB也获得了极大的知名度:该项目在GitHub和社交媒体平台上吸引了数以万计的明星和追随者。每月的下载量为数百万,仅用于扩展的下载流量每天超过四兆字节。

为什么是现在宣布 v1.0.0 正式发布?

上一个版本是v0.10.4, v1.0.0 版本号有点武断的“感觉”,但是DuckDB可以在2018年发布DuckDB v1.0.0,或者可以再等十年。从来没有一个伟大的时刻,因为软件(TeX除外)永远不会“完成”。需要一直迭代下去.

发布v1.0.0的主要障碍之一是存储格式。DuckDB有自己的定制数据存储格式。这种格式允许用户在单个文件中管理许多(可能非常大的)表,具有完整的事务语义和最先进的压缩。当然,设计新的文件格式并非没有挑战,随着时间的推移,我们必须对格式进行重大更改。这导致了次优情况,即每当发布新的DuckDB版本时,使用旧版本创建的文件无法与新的DuckDB版本配合使用,必须手动升级。这个问题早在2月份的v0.10.0中就得到了解决——我们引入了DuckDB存储格式的向后兼容性和有限的前向兼容性。此功能现已使用一段时间,没有出现严重问题——让我们有信心保证使用DuckDB v1.0.0创建的DuckDB文件将与未来的DuckDB版本兼容。

虽然DuckDB官方说发布v1.0.0的主要障碍之一是存储格式, 但是我相信大多数人会选择使用外部parquet存储, 对于DuckDB内部的存储仅用于存储元数据, 例如Parquet文件的视图.

"稳定性"是 DuckDB v1.0.0 的主要标签

v1.0.0版本的核心主题是稳定性。这与之前的版本形成鲜明对比,在这些版本中,我们的博客文章谈到了长长的新功能列表。相反,1.0.0版本的新功能非常有限(少数可能已经偷偷溜进去了)。相反,我们的重点一直放在稳定上。

我们观察到DuckDB的使用量和广度惊人地增长,并且没有看到严重问题的报道有所增加。与此同时,有数千个测试用例,每天晚上运行数百万个测试查询。我们运行大量微基准和标准化基准套件,以发现性能回归。DuckDB不断受到各种模糊器的折磨,这些模糊器构建各种野生SQL查询,以确保我们不会错过奇怪的角落情况。总而言之,这为我们建立了发布v1.0.0的必要信心。

1.0.0版本稳定性的另一个核心方面是跨版本的稳定性。虽然永远不会破坏任何人的工作流程可能是不可能的,但我们计划在今后更加谨慎地处理面向用户的变化。特别是,我们计划专注于为SQL方言以及C API提供稳定性。虽然我们不保证将来永远不会改变这些层的语义,但我们将尝试在这样做时提供足够的警告,并提供变通办法,允许以前工作的代码继续工作。

展望未来, DuckDB将在MIT开源许可证下长期存在

与许多开源项目不同,DuckDB也有一个健康的长期融资策略。DuckDB Labs是雇用DuckDB核心贡献者的公司,没有任何外部投资,因此,该公司完全归该团队所有。实验室的商业模式是为DuckDB提供咨询和支持服务,我们很高兴地报告,这进展顺利。凭借合同收入,我们以近20人的团队为长期和战略性的DuckDB开发提供资金。与此同时,该项目中的知识产权由独立的DuckDB基金会保护。这个非营利性基金会确保DuckDB将在MIT开源许可证下长期存在。

当然,关于长期计划,路线图上仍然有很多东西。我们非常兴奋的一件事是能够围绕DuckDB扩展扩展环境。扩展是插件,可以添加新的SQL级功能、文件格式、优化器等,同时保持DuckDB核心均值和精益。DuckDB已经有数量惊人的第三方扩展,我们正在努力简化构建和分发社区贡献扩展的过程。我们认为DuckDB可以通过通过统一的SQL接口访问的高性能数据结构连接的社区扩展,成为下一次数据革命的基础。

和我对PG社区的判断一样, 我认为PG

  • 一方面要做好一个数据库产品最基本的内核能力(安全、稳定、可靠、体验), 从而让更多用户敢把它用在核心系统业务中.

  • 另一方面要做好可扩展的接口(例如wire protocol, hook, fdw, tam, pllanguage, type, udf, op, index等), 让更多的外围开发者可以参与其中, 使得PG的生态蓬勃发展, 保持PG的生命力和创新性.

参考阅读

  • 《云、商业、开源数据库终局之战 - 商业角度解读PG如何破局 - openapi 、 扩展能力、插件开源协议》

  • 《[直播]大话数据库终局之战》

  • 《未来数据库方向 - 以及PostgreSQL 有价值的插件、可改进功能、开放接口 (202005)》

本期彩蛋-招商中,有需要的小伙伴可联系嵌入...

文章中的参考文档请点击阅读原文获得. 


欢迎关注我的github (https://github.com/digoal/blog) , 学习数据库不迷路.  

近期正在写公开课材料, 未来将通过视频号推出, 欢迎关注视频号:

Image