Какова стоимость использования `checkumHeaderBypass` в mapdb?
Мы используем mapdb для хранения списка файлов, которые были посещены во время длительного процесса, чтобы, если нам нужно прервать работу или произошел сбой процесса, мы могли продолжить с того места, где остановились.
мы хотим защитить от сбоев, которые портят наше хранилище файлов mapdb.
поэтому мы используем транзакции, в которых мы периодически фиксируем изменения на диске.
но потом я заметил кое-что интересное, что, если в определенный момент мы потерпим крах, мы все равно получим ошибку
Контрольная сумма заголовка повреждена. Магазин был закрыт неправильно и может быть поврежден. использование
DBMaker.checksumHeaderBypass()
восстановить ваши данные. Используйте чистое отключение или включите транзакции, чтобы защитить магазин в будущем.
Но на самом деле накрывает checksumHeaderBypass
делает ошибку исчезнуть Какова стоимость использования этого checksumHeaderBypass
установка?
1 ответ
Здесь нет трафика, потому что на софе замечено много людей из mapdb. Так что я выложу ответ, который я считаю лучшим
По сути, если вы разрешите обход заголовка контрольной суммы, вы можете загрузить карту mapdb, но она может содержать недопустимые записи в карте mapdb. потому что, если контрольная сумма не совпадает, это означает, что содержимое не является тем, чем должно быть. так что у вас, скорее всего, будут плохие данные в mapdb. в зависимости от того, как часто вы фиксируете данные в хранилище, это может привести к большому или небольшому количеству поврежденных данных.
Если вы используете mapdb
от @postcontruct
в приложении springboot выдает эту ошибку. Избегайте инициализацииmapdb
до запуска приложения (не инициализировать с @postconstruct
).