QuestDB CHECKPOINT CREATE 和磁盘使用情况

问题描述 投票:0回答:1

什么影响 QuestDB 在执行“CHECKPOINT CREATE”时写出的数据量?我注意到,当我在启动磁盘快照之前运行时,它似乎使用了许多千兆字节。

我想知道我们这边是否配置错误,因此它被迫做更多通常应该做的事情。

database questdb
1个回答
0
投票

当您运行

CHECKPOINT CREATE;
时,数据库会进行sync()系统调用,将所有脏页从操作系统页面缓存刷新到磁盘。这样做是为了确保所有数据和元数据在拍摄快照时保持一致。根据您的内存和数据库活动,仅此一项就可以解释正在写入的几 GB 数据。

该语句还及时拍摄了所有表的所有事务的快照,但这只是元数据,只需要几KB。

如果您在执行

CHECKPOINT RELEASE
之前摄取数据,则会创建更多元数据来跟踪文件的版本和偏移量。如果您的摄取是仅追加的,那么这些文件的大小将会很小,但如果您正在进行无序摄取或更新现有行,则使用的数据量可能会很大。

一旦调用

CHECKPOINT RELEASE
,数据库将回到常规模式,并且最终将回收额外的磁盘空间。

© www.soinside.com 2019 - 2024. All rights reserved.