GreatSQL社区

搜索

[已解决] Rapid引擎压缩率和代码的疑问

285 8 2025-4-13 11:19
https://greatsql.cn/docs/8.0.32- ... f-rapid-engine.html


看了文档有两个疑问
第一个:

Rapid引擎内部采用DataBlocks存储结构,这是一种兼顾OLTP和OLAP的压缩存储结构。其数据存储的基本格式:RowGroup based Storage。存储引擎将一个表的数据按行划分为多个RowGroup的组合,每个RowGroup最大存储122880行,内部数据按列进行存储。


这种存储结构跟SQL Server的列存储索引一样,也是多个RowGroup,但是SQL Server的RowGroup最大存储100万行,这样可以保证最大压缩率
存储10万行数据量太少了,压缩率会很低


第二个:


启用Rapid引擎后,会在数据库主目录datadir中产生一些新文件/目录,主要有:
duckdb.data,Rapid引擎数据文件,存储所有Rapid引擎表用户数据,类似InnoDB系统表空间文件ibdata*,已分配的磁盘空间可以重复使用,但在用户数据删除后不能回收归还操作系统。如果想要让Rapid引擎数据文件释放占用的磁盘空间,需要先卸载Rapid,而后即可删除相关文件,再次启用Rapid引擎即可。请参考 2.1 启用Rapid引擎 和 2.2 卸载Rapid引擎。
duckdb.data.wal,Rapid引擎的预写日志,在Rapid引擎运行过程中,对其的所有修改操作在提交之前,都会预先写入日志,以保证数据库系统的原子性和持久性。
duckdb.data.tmp,Rapid引擎存放临时文件的目录。Rapid引擎运行时,在执行大查询请求或加载大量数据时,如果内存不足,则需要将运行过程中产生的数据先保存在临时文件中。


Rapid引擎是直接使用duckdb的代码吗?还是魔改过的?


QQ截图20250413112025.png
全部回复(8)
reddey 2025-4-13 14:06:14
Rapid引擎的核心代码是采用C++11开发,该引擎没有任何其他的依赖。应该不是DUCKDB魔改的吧
一个学艺不精的国产数据库爱好者
yejr 2025-4-13 19:35:32
Rapid和Turbo引擎底层都是基于DuckDB的,除了整合以外,也做了一些调整和优化
Stevenhua 2025-4-13 19:53:53
yejr 发表于 2025-4-13 19:35
Rapid和Turbo引擎底层都是基于DuckDB的,除了整合以外,也做了一些调整和优化


按照叶老师那么说,就是Rapid和Turbo引擎这两个引擎都是duckdb魔改的, 我看pgsql也是用duckdb做列存储引擎加速
如果用duckdb做的话,感觉greatsql没有什么优势,大家都魔改duckdb来做列存储加速引擎
yejr 2025-4-13 22:12:38
Stevenhua 发表于 2025-4-13 19:53
按照叶老师那么说,就是Rapid和Turbo引擎这两个引擎都是duckdb魔改的, 我看pgsql也是用duckdb做列存储 ...

你“GreatSQL没什么优势”的观点从何而来,有什么论据支撑吗
Stevenhua 2025-4-13 22:51:25
yejr 发表于 2025-4-13 22:12
你“GreatSQL没什么优势”的观点从何而来,有什么论据支撑吗

同质化太严重
yejr 2025-4-13 23:24:10

在开源MySQL这个生态里,GreatSQL应该是唯一支持AP引擎的,尤其是还有Rapid和Turbo两个引擎,不存在同质化的问题吧
reddey 2025-4-14 08:53:23

这个也不一定吧,经过调整后青出蓝而胜于蓝。
一个学艺不精的国产数据库爱好者
Stevenhua 2025-4-14 11:16:26
yejr 发表于 2025-4-13 23:24
在开源MySQL这个生态里,GreatSQL应该是唯一支持AP引擎的,尤其是还有Rapid和Turbo两个引擎,不存在同质 ...

greatsql加油!
Stevenhua

1

主题

0

博客

8

贡献

新手上路

Rank: 1

积分
13

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2025-4-22 04:57 , Processed in 0.022924 second(s), 21 queries , Redis On.
快速回复 返回顶部 返回列表