Mqtt-level-store на основе LevelDB не очищает удаленные данные из файловой системы - PullRequest
0 голосов
/ 15 октября 2018

Я использую mqtt.js с mqtt-level-store .Я понятия не имею, как здесь используется leveldb и как он работает.

mqtt.js помещает данные в хранилище и удаляет их после успешной загрузки.

Я держал свое устройство в автономном режимев течение 2 дней, и пусть он собирает данные в хранилище (140 КБ каждую минуту)

После того, как я поместил его в сеть, он загрузил много данных и затем остановился.Теперь он только загружал новые входящие данные, так что я думаю, что он загрузил все.

Однако, прежде чем включить устройство в сеть, я увидел, что там были файлы размером около 230 МБ.После завершения загрузки файлы все еще были там.После нескольких дополнительных загрузок свежих данных некоторые файлы были удалены, однако все еще остаются файлы размером около 190 МБ.

Есть ли параметр, который мне не хватает?Как происходит эта очистка?

1 Ответ

0 голосов
/ 15 октября 2018

Из документации Google мы знаем, что обеспечено сжатие дБ

Когда размер уровня L превышает его предел, мы сжимаем его в фоновом потоке.Сжатие выбирает файл с уровня L и все перекрывающиеся файлы со следующего уровня L + 1.Обратите внимание, что если файл уровня L перекрывает только часть файла уровня (L + 1), весь файл уровня (L + 1) используется в качестве входных данных для сжатия и будет отброшен после сжатия.

.,.

DeleteObsoleteFiles () вызывается в конце каждого сжатия и в конце восстановления.

Из моего опыта вам нужно немного подождать.БД будет где-то вовремя очищена.

...