package com.sleepycat.je.incomp;
import com.sleepycat.je.EnvironmentStats;
import com.sleepycat.je.StatsConfig;
public class INCompressor {
private int splitBins=0;
private int dbClosedBins=0;
private int cursorsBins=0;
private int nonEmptyBins=0;
private int processedBins=0;
private int splitBinsThisRun=0;
private int dbClosedBinsThisRun=0;
private int cursorsBinsThisRun=0;
private int nonEmptyBinsThisRun=0;
private int processedBinsThisRun=0;
private int lazyProcessed=0;
private int lazyEmpty=0;
private int lazySplit=0;
private int wokenUp=0;
/**
* Return stats
*/
public void loadStats( StatsConfig config, EnvironmentStats stat) throws DatabaseException {
stat.setSplitBins(splitBins);
stat.setDbClosedBins(dbClosedBins);
stat.setCursorsBins(cursorsBins);
stat.setNonEmptyBins(nonEmptyBins);
stat.setProcessedBins(processedBins);
stat.setInCompQueueSize(getBinRefQueueSize());
if (DEBUG) {
System.out.println("lazyProcessed = " + lazyProcessed);
System.out.println("lazyEmpty = " + lazyEmpty);
System.out.println("lazySplit = " + lazySplit);
System.out.println("wokenUp=" + wokenUp);
}
if (config.getClear()) {
splitBins=0;
dbClosedBins=0;
cursorsBins=0;
nonEmptyBins=0;
processedBins=0;
lazyProcessed=0;
lazyEmpty=0;
lazySplit=0;
wokenUp=0;
}
}
/**
* Reset per-run counters.
*/
private void resetPerRunCounters(){
splitBinsThisRun=0;
dbClosedBinsThisRun=0;
cursorsBinsThisRun=0;
nonEmptyBinsThisRun=0;
processedBinsThisRun=0;
}
private void accumulatePerRunCounters(){
splitBins+=splitBinsThisRun;
dbClosedBins+=dbClosedBinsThisRun;
cursorsBins+=cursorsBinsThisRun;
nonEmptyBins+=nonEmptyBinsThisRun;
processedBins+=processedBinsThisRun;
}
protected void hook403() throws DatabaseException {
wokenUp++;
original();
}
protected void hook404() throws DatabaseException {
resetPerRunCounters();
original();
}
protected void hook405() throws DatabaseException {
accumulatePerRunCounters();
original();
}
protected void hook406() throws DatabaseException, NodeNotEmptyException, CursorsExistException {
processedBinsThisRun++;
original();
}
protected void hook407() throws DatabaseException {
nonEmptyBinsThisRun++;
original();
}
protected void hook408() throws DatabaseException {
cursorsBinsThisRun++;
original();
}
protected void hook409() throws DatabaseException {
lazyProcessed++;
original();
}
protected void hook410() throws DatabaseException {
lazySplit++;
original();
}
protected void hook411() throws DatabaseException {
lazyEmpty++;
original();
}
protected void hook412() throws DatabaseException {
dbClosedBinsThisRun++;
original();
}
protected void hook413() throws DatabaseException {
splitBinsThisRun++;
original();
}
protected void hook414() throws DatabaseException {
cursorsBinsThisRun++;
original();
}
}