мы используем bdb je в реплицируемых средах с 10 миллиардами записей в день и столкнулись с некоторой проблемой, связанной с восстановлением файлов журнала и удалением зарезервированных файлов журнала.
Как описано в Getting Started with High Availability Applications
:
"В реплицируемых средах JE как можно дольше удерживает файлы журналов, если они необходимы для обновления реплики. Файлы журналов, которые были очищены, но затем сохранены из-за репликации, находятся в зарезервированном состоянии. Все такие файлы сохраняются до тех пор, пока не будут превышены пороги использования диска, определенные в EnvironmentConfig.MAX_DISK и EnvironmentConfig.FREE_DISK. В этот момент JE удаляет зарезервированные файлы журнала. "
В нашем проекте операции записи иногда быстро увеличиваются. И если пороги использования диска приближаются, реплицируемая среда выдает исключение DiskLimitException, и операции записи запрещены, поскольку скорость удаления файла не может соответствовать скорости записи данных. Поэтому я действительно хочу знать, есть ли способ удалить зарезервированные файлы вручную, а не зависеть от порогов использования диска.
мы используем je.properties для настройки среды высокой доступности, а содержимое выглядит так:
je.log.fileMax=1073741824
je.lock.timeout=3000000
je.sharedCache=true
je.maxMemoryPercent=50
je.rep.txnRollbackLimit=1000
je.rep.replicaReceiveBufferSize=4194304
je.rep.feederBatchNs=10000000
je.rep.feederBatchBuffKb=256
je.rep.commitToNetwork=false
je.rep.replicaMessageQueueSize=10000
je.rep.insufficientReplicasTimeout=5000 ms
je.rep.replicaAckTimeout=10000 ms
je.cleaner.minUtilization=50
je.rep.replayFreeDiskPercent=50
je.env.runCleaner=false
je.rep.designatedPrimary=false
je.env.backgroundReadLimit=20
je.cleaner.readSize=33554432
je.cleaner.detailMaxMemoryPercentage=5
je.cleaner.lookAheadCacheSize=32768
В нашем проекте мы используем ReplicatedEnvironment.cleanLogFile (), указывающий je на очистку файла, и используем ReplicatedEnvironment.removeDatabase (null, "persist #" + storeName + "# com.sleepycat.persist.formats") для объявления одного EntityStore. можно почистить.
Будем благодарны за любые советы.