/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 2002-2006
* Sleepycat Software. All rights reserved.
*
* $Id: BtreeStats.java,v 1.1 2006/05/06 08:59:34 ckaestne Exp $
*/
package com.sleepycat.je;
/**
* Javadoc for this public class is generated
* via the doc templates in the doc_src directory.
*/
public class BtreeStats extends DatabaseStats {
/* Number of Bottom Internal Nodes in the database's btree. */
private long binCount;
/* Number of Duplicate Bottom Internal Nodes in the database's btree. */
private long dbinCount;
/* Number of deleted Leaf Nodes in the database's btree. */
private long deletedLNCount;
/* Number of duplicate Leaf Nodes in the database's btree. */
private long dupCountLNCount;
/*
* Number of Internal Nodes in database's btree. BIN's are not included.
*/
private long inCount;
/*
* Number of Duplicate Internal Nodes in database's btree. BIN's are not
* included.
*/
private long dinCount;
/* Number of Leaf Nodes in the database's btree. */
private long lnCount;
/* Maximum depth of the in memory tree. */
private int mainTreeMaxDepth;
/* Maximum depth of the duplicate memory trees. */
private int duplicateTreeMaxDepth;
/* Histogram of INs by level. */
private long[] insByLevel;
/* Histogram of BINs by level. */
private long[] binsByLevel;
/* Histogram of DINs by level. */
private long[] dinsByLevel;
/* Histogram of DBINs by level. */
private long[] dbinsByLevel;
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public long getBottomInternalNodeCount() {
return binCount;
}
/**
* Internal use only.
*/
public void setBottomInternalNodeCount(long val) {
binCount = val;
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public long getDuplicateBottomInternalNodeCount() {
return dbinCount;
}
/**
* Internal use only.
*/
public void setDuplicateBottomInternalNodeCount(long val) {
dbinCount = val;
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public long getDeletedLeafNodeCount() {
return deletedLNCount;
}
/**
* Internal use only.
*/
public void setDeletedLeafNodeCount(long val) {
deletedLNCount = val;
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public long getDupCountLeafNodeCount() {
return dupCountLNCount;
}
/**
* Internal use only.
*/
public void setDupCountLeafNodeCount(long val) {
dupCountLNCount = val;
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public long getInternalNodeCount() {
return inCount;
}
/**
* Internal use only.
*/
public void setInternalNodeCount(long val) {
inCount = val;
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public long getDuplicateInternalNodeCount() {
return dinCount;
}
/**
* Internal use only.
*/
public void setDuplicateInternalNodeCount(long val) {
dinCount = val;
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public long getLeafNodeCount() {
return lnCount;
}
/**
* Internal use only.
*/
public void setLeafNodeCount(long val) {
lnCount = val;
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public int getMainTreeMaxDepth() {
return mainTreeMaxDepth;
}
/**
* Internal use only.
*/
public void setMainTreeMaxDepth(int val) {
mainTreeMaxDepth = val;
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public int getDuplicateTreeMaxDepth() {
return duplicateTreeMaxDepth;
}
/**
* Internal use only.
*/
public void setDuplicateTreeMaxDepth(int val) {
duplicateTreeMaxDepth = val;
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public long[] getINsByLevel() {
return insByLevel;
}
/**
* Internal use only.
*/
public void setINsByLevel(long[] insByLevel) {
this.insByLevel = insByLevel;
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public long[] getBINsByLevel() {
return binsByLevel;
}
/**
* Internal use only.
*/
public void setBINsByLevel(long[] binsByLevel) {
this.binsByLevel = binsByLevel;
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public long[] getDINsByLevel() {
return dinsByLevel;
}
/**
* Internal use only.
*/
public void setDINsByLevel(long[] dinsByLevel) {
this.dinsByLevel = dinsByLevel;
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public long[] getDBINsByLevel() {
return dbinsByLevel;
}
/**
* Internal use only.
*/
public void setDBINsByLevel(long[] dbinsByLevel) {
this.dbinsByLevel = dbinsByLevel;
}
private void arrayToString(long[] arr, StringBuffer sb) {
for (int i = 0; i < arr.length; i++) {
long count = arr[i];
if (count > 0) {
sb.append(" level ").append(i);
sb.append(": count=").append(count).append("\n");
}
}
}
/**
* Javadoc for this public method is generated via
* the doc templates in the doc_src directory.
*/
public String toString() {
StringBuffer sb = new StringBuffer();
if (binCount > 0) {
sb.append("numBottomInternalNodes=");
sb.append(binCount).append("\n");
arrayToString(binsByLevel, sb);
}
if (inCount > 0) {
sb.append("numInternalNodes=");
sb.append(inCount).append("\n");
arrayToString(insByLevel, sb);
}
if (dinCount > 0) {
sb.append("numDuplicateInternalNodes=");
sb.append(dinCount).append("\n");
arrayToString(dinsByLevel, sb);
}
if (dbinCount > 0) {
sb.append("numDuplicateBottomInternalNodes=");
sb.append(dbinCount).append("\n");
arrayToString(dbinsByLevel, sb);
}
sb.append("numLeafNodes=").append(lnCount).append("\n");
sb.append("numDeletedLeafNodes=").
append(deletedLNCount).append("\n");
sb.append("numDuplicateCountLeafNodes=").
append(dupCountLNCount).append("\n");
sb.append("mainTreeMaxDepth=").
append(mainTreeMaxDepth).append("\n");
sb.append("duplicateTreeMaxDepth=").
append(duplicateTreeMaxDepth).append("\n");
return sb.toString();
}
}