基于LevelDB的mqtt-level-store不会清除文件系统中已删除的数据

时间:2018-10-15 06:19:16

标签: node.js mqtt leveldb

我将mqtt.jsmqtt-level-store一起使用。我不知道在这里如何使用leveldb及其工作方式。

mqtt.js将数据放入存储中,并在数据成功上传后将其删除。

我将设备保持离线状态2天,然后让它在商店中收集数据(每分钟140 KB)

将其放到网上之后,它上传了很多数据,然后停止了。现在它只是上传新的传入数据,所以我猜它已经上传了所有内容。

但是,在使设备联机之前,我看到其中有大约230 MB的文件。 所有上传完成后,文件仍然存在。再上传几次新的数据后,一些文件被删除,但是,仍然有大约190 MB的文件。

是否缺少我的设置?这种清理是如何发生的?

1 个答案:

答案 0 :(得分:1)

Google documentation我们知道提供了db的压缩

  

当级别L的大小超过其限制时,我们将其压缩在后台线程中。压缩从级别L中选择一个文件,并从下一级别L + 1中选择所有重叠的文件。请注意,如果级别L文件仅与级别(L + 1)文件的一部分重叠,则级别(L + 1)处的整个文件将用作压缩的输入,并且在压缩后将被丢弃。

     

。 。

     在每次压缩结束和恢复结束时调用

DeleteObsoleteFiles()

根据我的经验,您需要稍等片刻。数据库将及时清理。