/*
* Created on 01.12.2007
* Caleido AG, All Rights Reserved
* Author: Luzius Meisser
*/
package quickbase.internal.index;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class Stats {
private static final byte VERSION = 1;
public long creation;
public long size;
public long addEntries;
public long replacedEntries;
public long gets;
public long puts;
public long contains;
public long removes;
public Stats(){
creation = System.currentTimeMillis();
}
public double getFillRatio(){
//reports a little lower than actual value if there are hash collisions or double removes
return Math.max(0, ((double)addEntries - replacedEntries)/addEntries);
}
public Stats(DataInputStream dis) throws IOException {
byte v = dis.readByte();
assert VERSION == v;
creation = dis.readLong();
size = dis.readLong();
addEntries = dis.readLong();
replacedEntries = dis.readLong();
gets = dis.readLong();
puts = dis.readLong();
contains = dis.readLong();
removes = dis.readLong();
}
public void write(DataOutputStream dos) throws IOException {
dos.writeByte(VERSION);
dos.writeLong(creation);
dos.writeLong(size);
dos.writeLong(addEntries);
dos.writeLong(replacedEntries);
dos.writeLong(gets);
dos.writeLong(puts);
dos.writeLong(contains);
dos.writeLong(removes);
}
}