Skip to Main Content

Berkeley DB Family

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Cleaner making no progress / lnSizeCorrectionFactor became very small

keithwallJan 22 2016 — edited Jan 25 2016

Hello

We have an application using JE 5.0.104.  We recently experienced a problem where a JE transaction log continued to grow in size (3GB/hour).  We eliminated the possibility of an application defect by comparing the application's own accounting records against getDatabaseStats, so we know that the application was not somehow forgetting to delete records.


Invoking cleanLog() from JEMonitor had no effect on JDB files and returned 0.  getEnvironmentStats() revealed that lnSizeCorrectionFactor had fallen to 0.079.   Turning on logging for com.sleepycat.je.cleaner.Cleaner gave us:

2016-01-18 17:10:58,128 DEBUG [Cleaner-1] logging.Log4jLoggingHandler (Log4jLoggingHandler.java:83) - [myvhost] Chose lowest utilized file for cleaning. fileChosen: 0x3ca92d lnSizeCorrectionFactor: 0.07944859 totalUtilization: 2 bestFileUtilization: 0 isProbe: true

2016-01-18 17:10:58,183 DEBUG [Cleaner-1] logging.Log4jLoggingHandler (Log4jLoggingHandler.java:83) - [myvhost] CleanerRun 1801 ends on file 0x3ca92d probe=true invokedFromDaemon=true finished=true fileDeleted=false nEntriesRead=1902 nINsObsolete=0 nINsCleaned=0 nINsDead=0 nINsMigrated=0 nBINDeltasObsolete=0 nBINDeltasCleaned=0 nBINDeltasDead=0 nBINDeltasMigrated=0 nLNsObsolete=0 nLNsCleaned=0 nLNsDead=0 nLNsMigrated=0 nLNsMarked=0 nLNQueueHits=0 nLNsLocked=0 logSummary=<CleanerLogSummary endFileNumAtLastAdjustment="0x4c44fe" initialAdjustments="5" recentLNSizesAndCounts="Cor:9191/58-Est:6998244/1386 Cor:6407/6-Est:7969221/636 Cor:5936/24-Est:7418832/444 Cor:16683/56-Est:8912936/434 Cor:17058/89-Est:8143993/523 Cor:9191/58-Est:6998244/1386 Cor:6407/6-Est:7969221/636 Cor:5936/24-Est:7418832/444 Cor:16683/56-Est:8912936/434 Cor:17058/89-Est:8143993/523 "> inSummary=<INSummary totalINCount="402" totalINSize="160621" totalBINDeltaCount="89" totalBINDeltaSize="20532" obsoleteINCount="299" obsoleteINSize="151932" obsoleteBINDeltaCount="88" obsoleteBINDeltaSize="20435"/> estFileSummary=<summary totalCount="2192" totalSize="9850987" totalINCount="491" totalINSize="181153" totalLNCount="1409" totalLNSize="9656676" maxLNSize="4317683" obsoleteINCount="387" obsoleteLNCount="975" obsoleteLNSize="1512683" obsoleteLNSizeCounted="886" getObsoleteSize="3054503" getObsoleteINSize="142782" getObsoleteLNSize="2898563" getMaxObsoleteSize="9805672" getMaxObsoleteLNSize="9649732" getAvgObsoleteLNSizeNotCounted="15571.688"/> recalcFileSummary=<summary totalCount="2192" totalSize="9850987" totalINCount="491" totalINSize="181153" totalLNCount="1409" totalLNSize="9656676" maxLNSize="0" obsoleteINCount="387" obsoleteLNCount="975" obsoleteLNSize="1529741" obsoleteLNSizeCounted="975" getObsoleteSize="1685681" getObsoleteINSize="142782" getObsoleteLNSize="1529741" getMaxObsoleteSize="1685681" getMaxObsoleteLNSize="1529741" getAvgObsoleteLNSizeNotCounted="NaN"/> lnSizeCorrection=0.07944859 newLnSizeCorrection=0.07944859 estimatedUtilization=69 correctedUtilization=82 recalcUtilization=83 correctionRejected=false

On restarting the application, the JE transaction log shrank back to normal size, but the situation recurred a few hours later and continued to remanifest after subsequent restarts.  So far our attempts to understand/reproduce the exact trigger point has been unsuccessful.  The single JE environemnt is being ultimately used by many different applications and all have different traffic profiles (frequency/size of records etc).

We have been monitoring getEnvironmentStats() in production and see that once lnSizeCorrectionFactor starts to fall below 1, it normally it continues to fall, and once it hits 0.5 cleaning ceases and we see the unbounded transaction log growth.


The application is reasonably mature and has been running in production for many years without seeing this problem.  Seemingly the appearance of the problem correlates with a change that  a) upgraded from JE 5.0.73 to JE 5.0.104 b) switched to CacheMode.EVICT_LN and reduced je.maxMemory (our application caches the data itself in a higher tier, so the JE caches of leaves was redundant from our perspective).


Prompted by and the changes in 5.0.97, we are testing our application with EnvironmentConfig.CLEANER_ADJUST_UTILIZATION turned off.    So far all seems well.  We realise that without je.cleaner.fetchObsoleteSize=true the cleaner will be assuming that all records in a log are average size and thus may over clean/under clean, but we don't want to pay the cost of the additional read.


If you could comment on any nuisances of cleaner behaviour with CacheMode.EVICT_LN and the drawbacks for using EnvironmentConfig.CLEANER_ADJUST_UTILIZATION turned off in isolation that would be appreciated.


Many thanks in advance

This post has been answered by Greybird-Oracle on Jan 22 2016
Jump to Answer

Comments

270337
I have tora 1.3.21 with Postgres and Oracle connections on Debian. I think that you should compile from tora source for Oracle connection. For this, you should download instant client from OTN and specify the instant client path in the parameters:

./configure with-instant-client with-oracle-includes=/usr/local/instantclient_10_2/sdk/include/ with-oracle-libraries=/usr/local/instantclient_10_2/lib with-oci-version=10G

You should review configure parameters file for new features or customize this for your platform
Billy Verreynne
Assuming that you've downloaded TOra with OCI support, this could mean that TOra is not seeing the OCI client drivers and therefore not presenting you with an option to connect via an Oracle client driver.

Check you LD_LIBRARY_PATH and make sure that it includes $ORACLE_HOME/lib - or download Instant Client and point the path there.
1 - 2
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Feb 22 2016
Added on Jan 22 2016
2 comments
1,189 views