public class DbCacheSize
extends java.lang.Object
DbCacheSize is an aid for estimating cache sizes. To get an estimate of the in-memory footprint for a given database, specify the number of records and record characteristics and DbCacheSize will return a minimum and maximum estimate of the cache size required for holding the database in memory. If the user specifies the record's data size, the utility will return both values for holding just the internal nodes of the btree, and for holding the entire database in cache.
Note that "cache size" is a percentage more than "btree size", to cover general environment resources like log buffers. Each invocation of the utility returns an estimate for a single database in an environment. For an environment with multiple databases, run the utility for each database, add up the btree sizes, and then add 10 percent.
Note that the utility does not yet cover duplicate records and the API is subject to change release to release.
The only required parameters are the number of records and key size. Data size, non-tree cache overhead, btree fanout, and other parameters can also be provided. For example:
$ java DbCacheSize -records 554719 -key 16 -data 100 Inputs: records=554719 keySize=16 dataSize=100 nodeMax=128 density=80% overhead=10% Cache Size Btree Size Description -------------- -------------- ----------- 30,547,440 27,492,696 Minimum, internal nodes only 41,460,720 37,314,648 Maximum, internal nodes only 114,371,644 102,934,480 Minimum, internal nodes and leaf nodes 125,284,924 112,756,432 Maximum, internal nodes and leaf nodes Btree levels: 3
This says that the minimum cache size to hold only the internal nodes of the
btree in cache is approximately 30MB. The maximum size to hold the entire
database in cache, both internal nodes and datarecords, is 125Mb.
See main(java.lang.String[])
for full parameter descriptions.
Constructor and Description |
---|
DbCacheSize(long records,
int keySize,
int dataSize,
int nodeMax,
int density,
long overhead) |
Modifier and Type | Method and Description |
---|---|
long |
getMaxBtreeSizeInternalNodesOnly() |
long |
getMaxBtreeSizeWithData() |
long |
getMaxCacheSizeInternalNodesOnly() |
long |
getMaxCacheSizeWithData() |
long |
getMinBtreeSizeInternalNodesOnly() |
long |
getMinBtreeSizeWithData() |
long |
getMinCacheSizeInternalNodesOnly() |
long |
getMinCacheSizeWithData() |
int |
getNLevels() |
static void |
main(java.lang.String[] args) |
public DbCacheSize(long records, int keySize, int dataSize, int nodeMax, int density, long overhead)
public long getMinCacheSizeInternalNodesOnly()
public long getMaxCacheSizeInternalNodesOnly()
public long getMinBtreeSizeInternalNodesOnly()
public long getMaxBtreeSizeInternalNodesOnly()
public long getMinCacheSizeWithData()
public long getMaxCacheSizeWithData()
public long getMinBtreeSizeWithData()
public long getMaxBtreeSizeWithData()
public int getNLevels()
public static void main(java.lang.String[] args)