To help understand the memory usage for a specific VoltDB database, the @Statistics system procedure provides memory usage information. The "MEMORY" selector returns a separate row of data for each server in the cluster, with columns providing information about the different aspects of memory usage, as described in the following table.
Column | Type of Storage | Description |
---|---|---|
JAVAUSED | Temporary | The amount of memory currently in use for temporary storage. |
JAVAUNUSED | Temporary | The maximum amount of Java heap allocated but not currently in use. |
TUPLECOUNT | Persistent | The number of tuples currently being held in memory. |
TUPLEDATA | Persistent | The amount of memory in use to store inline table data. |
TUPLEALLOCATED | Persistent | The amount of memory allocated for table storage. This includes the amount in use and any free space currently being held by VoltDB. |
INDEXMEMORY | Persistent | The approximate amount of memory in use to store indexes. |
STRINGMEMORY | Persistent | The approximate amount of memory in use for non-inline string and binary storage. |
POOLEDMEMORY | Persistent | The total amount allocated to pooled memory, including the memory assigned for storing strings, indexes, free lists, and metadata associated with tuple storage. |
RSS | All | The resident set size for the VoltDB server process. |
There is also a separate @Statistics selector, COMPACTION, that reports of the results of the compaction process for each table. You can use periodic calls to the @Statistics system procedure with the MEMORY and COMPACTION keywords to track your database cluster's memory usage in detail. But if you are only looking for an overall picture, the Volt Management Center, a web-based console accessible from the server's HTTP port, provides graphs of both database activity and memory usage at runtime.