Berkeley DB JE JDB файлы продолжают расти

Я отладил проблему дискового пространства в моей системе и обнаружил, что файлы.jdb занимают большую часть пространства.

во время просмотра нашел эту ссылку https://backstage.forgerock.com/knowledge/kb/article/a14630082, в моем случае lnSizeCorrectionFactor был около 1.4 и fileDeleted=false. Я выполнил команду дискового пространства, чтобы найти использование пространства, оно оказалось ненулевым для всех файлов JDB, но большинство файлов имеют использование в виде однозначных значений в диапазоне от 2 до 9.

Я использую версию je-5.0.58, которая не является последней. Мой вопрос в соответствии с документом BDB https://docs.oracle.com/cd/E17277_02/html/GettingStartedGuide/backgroundthreads.html, файл jdb необходимо очистить, если он достигает значения по умолчанию меньше 50%. В моем случае, даже если они однозначные, почему они не очищаются?

Я явно не устанавливал конфигурацию среды, поэтому она должна использовать значения по умолчанию по определению. Ниже приведен код для создания хранилища BDB.

 private static Repository createBDBRepository(File environmentHome) throws 
 RepositoryException {
            BDBRepositoryBuilder builder = new BDBRepositoryBuilder();
            builder.setName("localbdb");
            builder.setEnvironmentHomeFile(environmentHome);
            builder.setTransactionNoSync(false);

            // Set BDB-JE flavor
            builder.setProduct("JE");

            builder.setCacheSize(20 * 1024 * 1024L);
            return builder.build();
    }

Строка журнала из файла je.info

   Chose lowest utilized file for cleaning. fileChosen: 0x50cbecc totalUtilization: 49 bestFileUtilization: 8 lnSizeCorrectionFactor: 1.1012049 isProbe: false
   No file selected for cleaning. totalUtilization: 50 bestFileUtilization: 8 lnSizeCorrectionFactor: 1.1012049 isProbe: false

1 ответ

Как описано в документе ForgeRock, это происходит из-за ошибки в версии 5 BDB JE, ​​которая была исправлена ​​в версии 6 и выше.

Цитировать примечания к выпуску BDB JE 6.x:

Улучшено вычисление использования бревен, чтобы избежать недостаточной или чрезмерной очистки. Например, если оценка использования журнала была ниже, чем фактическая загрузка, произойдет ненужная чрезмерная очистка, которая может снизить производительность. Или, когда использование журнала было оценено выше фактического использования, недостаточная очистка предотвратит восстановление неиспользованного дискового пространства. Чтобы избежать этих проблем, размер каждой зарегистрированной записи теперь сохраняется в Bin BIN (нижние внутренние узлы), так что использование может быть правильно рассчитано при обновлении и удалении записи, при этом избегая выборки старой версии записи. С этим изменением средство корректировки использования в очистителе журнала, которое пыталось компенсировать эту проблему путем оценки использования, больше не требуется большинству приложений.

Поэтому параметр EnvironmentConfig.CLEANER_ADJUST_UTILIZATION теперь по умолчанию имеет значение false, а не true, и будет полностью отключен в будущей версии JE. Для получения дополнительной информации см. Javadoc для этого параметра.

[# 22275] (6.0.7)

Другие вопросы по тегам