Hi all,
we use bdb je in replicated environments with 10 billion records per day ,and met some problem about reclaim log files and delete reserved log files.
As descipted in `Getting Started with High Availability Applications` :
"For replicated environments, JE hangs on to log files as long as possible in case they are needed to bring a replica up to date. Log files that have been cleaned but then saved due because of replication are in a reserved state. All such files are retained until the disk usage thresholds as defined by EnvironmentConfig.MAX_DISK and EnvironmentConfig.FREE_DISK are exceeded. At that point, JE deletes reserved log files."
In out project , write operations are increasing quickly sometimes. And if the disk usage thresholds are approaching , the replicated environment throws DiskLimitException and write operations are prohibited because of the speed of delete file cannot match the speed of write data . So I'm really want to know if there is a way to delete reserved files manually instead of dependent on the the disk usage thresholds .
we use je.properties to config out HA environment and content is like :
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
In our project , we use ReplicatedEnvironment.cleanLogFile() telling je to clean file , and use ReplicatedEnvironment.removeDatabase(null, "persist#" + storeName + "#com.sleepycat.persist.formats") to declare one EntityStore can be cleaned.
Any advise will be appreciated.