Какова стоимость использования `checkumHeaderBypass` в mapdb? - PullRequest
0 голосов
/ 06 июня 2018

мы используем mapdb для хранения списка файлов, которые были посещены во время длительного процесса, чтобы, если нам нужно прервать работу или произошел сбой процесса, мы могли продолжить с того места, где остановились.

weхочу защитить от сбоев, портящих наше хранилище файлов mapdb.

, поэтому мы используем транзакции, в которых мы периодически фиксируем изменения на диске.

но потом я заметил кое-что интересное, что, если мы в определенный момент завершаем работу с ошибкой, мы все равно получаем ошибку

Контрольная сумма заголовка нарушена.Магазин был закрыт неправильно и может быть поврежден.Используйте DBMaker.checksumHeaderBypass() для восстановления ваших данных.Используйте чистое отключение или включите транзакции для защиты хранилища в будущем.

Но действительно, установка checksumHeaderBypass устраняет ошибку.Какова стоимость использования этой настройки checksumHeaderBypass?

1 Ответ

0 голосов
/ 02 июля 2018

Здесь нет трафика, потому что на софе замечено много людей из mapdb.Поэтому я опубликую ответ, который я считаю лучшим

В принципе, если вы разрешите обход заголовка контрольной суммы, вы можете загрузить карту mapdb, но она может содержать недопустимые записи в карте mapdb.потому что, если контрольная сумма не совпадает, это означает, что содержимое не является тем, чем должно быть.так что у вас, скорее всего, будут плохие данные в mapdb.в зависимости от того, как часто вы фиксируете данные в хранилище, это может привести к большому или небольшому количеству поврежденных данных.

...