package com.sleepycat.je.evictor; import com.sleepycat.je.EnvironmentStats; import com.sleepycat.je.StatsConfig; public class Evictor { private int nEvictPasses=0; private long nNodesSelected=0; private long nNodesSelectedThisRun; private int nNodesScanned=0; private long nNodesEvicted=0; private long nNodesEvictedThisRun; private long nBINsStripped=0; private long nBINsStrippedThisRun; /** * Load stats. */ public void loadStats( StatsConfig config, EnvironmentStats stat) throws DatabaseException { stat.setNEvictPasses(nEvictPasses); stat.setNNodesSelected(nNodesSelected); stat.setNNodesScanned(nNodesScanned); stat.setNNodesExplicitlyEvicted(nNodesEvicted); stat.setNBINsStripped(nBINsStripped); stat.setRequiredEvictBytes(currentRequiredEvictBytes); if (config.getClear()) { nEvictPasses=0; nNodesSelected=0; nNodesScanned=0; nNodesEvicted=0; nBINsStripped=0; } } protected void hook380( IN target) throws DatabaseException { if (target != null) { nNodesSelectedThisRun++; nNodesSelected++; } original(target); } protected void hook383( long evictedBytes) throws DatabaseException { if (evictedBytes > 0) { nBINsStrippedThisRun++; nBINsStripped++; } original(evictedBytes); } protected void hook384() throws DatabaseException { nNodesEvictedThisRun++; nNodesEvicted++; original(); } @MethodObject static class Evictor_evictBatch { long execute() throws DatabaseException { _this.nNodesSelectedThisRun=0; _this.nNodesEvictedThisRun=0; return original(); } protected void hook381() throws DatabaseException { _this.nBINsStrippedThisRun=0; _this.nEvictPasses++; original(); } protected void hook382() throws DatabaseException { _this.nNodesScanned+=_this.nNodesScannedThisRun; original(); } } }