Node.js 基于LevelDB的mqtt级别存储不清除文件系统中已删除的数据

Node.js 基于LevelDB的mqtt级别存储不清除文件系统中已删除的数据,node.js,mqtt,leveldb,Node.js,Mqtt,Leveldb,我在用。我不知道leveldb在这里是如何使用的,它是如何工作的 mqtt.js将数据放入存储,并在成功上载数据后将其删除 我让我的设备离线2天,让它在存储中收集数据(每分钟140 KB) 在我把它放到网上之后,它上传了很多数据,然后停止了。现在它只上传了新的输入数据,所以我猜它上传了所有内容 然而,在将设备上线之前,我看到有大约230MB的文件。 所有上传完成后,文件仍然存在。在上传了几次新的数据之后,一些文件被删除了,但是仍然有大约190MB的文件 有没有我错过的场景?这种清理是如何发生的?

我在用。我不知道leveldb在这里是如何使用的,它是如何工作的

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

我让我的设备离线2天,让它在存储中收集数据(每分钟140 KB)

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

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

有没有我错过的场景?这种清理是如何发生的?

从我们所知的数据库压缩提供了

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

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

根据我的经验,你需要等一等。DB将及时清理