public class EnvironmentStats extends Object implements Serializable
The statistics are logically grouped into several categories. Viewing the
statistics through toString() displays the values
in these categories, as does viewing the stats through the JEMonitor mbean.
Viewing the stats with toStringVerbose() will
provide more detailed descriptions of the stats and stat categories.
The current categories are:
| Modifier and Type | Method and Description |
|---|---|
long |
getAdminBytes()
The number of bytes of JE cache used for log cleaning metadata and other
administrative structures.
|
long |
getAvgBatchCacheMode()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getAvgBatchCritical()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getAvgBatchDaemon()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getAvgBatchEvictorThread()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getAvgBatchManual()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getBufferBytes()
The total memory currently consumed by log buffers, in bytes.
|
long |
getCacheDataBytes()
Deprecated.
Please use
getDataBytes() to get the amount of cache
used for data and use getAdminBytes(), getLockBytes() and
getBufferBytes() to get other components of the total cache usage
(getCacheTotalBytes()). |
long |
getCacheTotalBytes()
The total amount of JE cache in use, in bytes.
|
int |
getCleanerBacklog()
Deprecated.
in 7.0, always returns zero. Use
getCurrentMinUtilization() and getCurrentMaxUtilization() to
monitor cleaner behavior. |
float |
getCorrectedAvgLNSize()
Deprecated.
in JE 5.0.56, use
getCorrectedAvgLNSize() instead. |
int |
getCurrentMaxUtilization()
The last known log maximum utilization as a percentage.
|
int |
getCurrentMinUtilization()
The last known log minimum utilization as a percentage.
|
long |
getCursorsBins()
The number of BINs encountered by the INCompressor that had cursors
referring to them when the compressor ran.
|
long |
getDataAdminBytes()
The portion of data bytes (
getDataBytes()) in the cache that are
allocated for per-database cleaner utilization metadata. |
long |
getDataBytes()
The amount of JE cache used for holding data, keys and internal Btree
nodes, in bytes.
|
long |
getDbClosedBins()
The number of BINs encountered by the INCompressor that had their
database closed between the time they were put on the compressor queue
and when the compressor ran.
|
long |
getDirtyLRUSize() |
long |
getDOSBytes()
The amount of JE cache consumed by disk-ordered scans, in bytes.
|
long |
getEndOfLog()
The location of the next entry to be written to the log.
|
long |
getEnvironmentCreationTime()
The time the Environment was created.
|
float |
getEstimatedAvgLNSize()
Deprecated.
in JE 5.0.56, use
getCorrectedAvgLNSize() instead. |
int |
getFileDeletionBacklog()
The number of log files that are ready to be deleted.
|
long |
getFSyncMaxTime()
The maximum number of milliseconds used to perform a single fsync.
|
long |
getFSyncTime()
The total number of milliseconds used to perform fsyncs.
|
long |
getInCompQueueSize()
The number of entries in the INCompressor queue when the getStats()
call was made.
|
long |
getLastCheckpointEnd()
The location in the log of the last checkpoint end.
|
long |
getLastCheckpointId()
The Id of the last checkpoint.
|
long |
getLastCheckpointInterval()
Byte length from last checkpoint start to the previous checkpoint start.
|
long |
getLastCheckpointStart()
The location in the log of the last checkpoint start.
|
int |
getLastKnownUtilization()
Deprecated.
in JE 6.5, use
getCurrentMinUtilization() or
getCurrentMaxUtilization() instead. |
float |
getLNSizeCorrectionFactor()
Deprecated.
in JE 6.3. Adjustments are no longer needed because LN log
sizes have been stored in the Btree since JE 6.0.
|
long |
getLockBytes()
The number of bytes of JE cache used for holding locks and transactions.
|
long |
getMixedLRUSize() |
int |
getNAcquiresNoWaiters()
Number of acquires of lock table latch with no contention.
|
int |
getNAcquiresNoWaitSuccessful()
Number of successful no-wait acquires of the lock table latch.
|
int |
getNAcquiresNoWaitUnSuccessful()
Number of unsuccessful no-wait acquires of the lock table latch.
|
int |
getNAcquiresSelfOwned()
Number of acquires of lock table latch when it was already owned
by the caller.
|
int |
getNAcquiresWithContention()
Number of acquires of lock table latch when it was already owned by
another thread.
|
long |
getNBatchesCacheMode()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getNBatchesCritical()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getNBatchesDaemon()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getNBatchesEvictorThread()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getNBatchesManual()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getNBINDeltaBlindOps()
The number of operations performed blindly in BIN deltas
|
long |
getNBinDeltaDeleteOps()
The number of user (non-internal) Cursor and Database delete operations
performed in BIN deltas.
|
long |
getNBinDeltaGetOps()
The number of user (non-internal) Cursor and Database get operations
performed in BIN deltas.
|
long |
getNBinDeltaInsertOps()
The number of user (non-internal) Cursor and Database insert operations
performed in BIN deltas (these are insertions performed via the various
put methods).
|
long |
getNBINDeltasCleaned()
The accumulated number of BIN-deltas cleaned.
|
long |
getNBINDeltasDead()
The accumulated number of BIN-deltas that were not found in the tree
anymore (deleted).
|
long |
getNBINDeltasFetchMiss()
Number of BIN-deltas (partial BINS) fetched to satisfy btree
operations.
|
long |
getNBINDeltasMigrated()
The accumulated number of BIN-deltas migrated.
|
long |
getNBINDeltasObsolete()
The accumulated number of BIN-deltas obsolete.
|
long |
getNBinDeltaUpdateOps()
The number of user (non-internal) Cursor and Database update operations
performed in BIN deltas (these are updates performed via the various
put methods).
|
long |
getNBINsEvictedCacheMode()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getNBINsEvictedCritical()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getNBINsEvictedDaemon()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getNBINsEvictedEvictorThread()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getNBINsEvictedManual()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getNBINsFetch()
Number of BINs (bottom internal nodes) requested by btree
operations.
|
long |
getNBINsFetchMiss()
Number of full BINs (bottom internal nodes) and BIN deltas fetched to
satisfy btree operations.
|
float |
getNBINsFetchMissRatio()
The ratio between the number of BINs (full or deltas) fetched to
satisfy btree operations and the number of BINs requested by btree
operations.
|
long |
getNBINsMutated()
Deprecated.
Use getNNodesMutated() instead.
|
long |
getNBINsStripped()
Deprecated.
Use getNNodesStripped() instead.
|
long |
getNBytesEvictedCacheMode()
Number of bytes evicted in the course of executing operations that
use an explicitly set
CacheMode. |
long |
getNBytesEvictedCritical()
Number of bytes evicted in the course of executing operations that
will cause the cache to go over budget.
|
long |
getNBytesEvictedDeamon()
Number of bytes evicted by JE deamon threads.
|
long |
getNBytesEvictedEvictorThread()
Number of bytes evicted by evictor pool threads.
|
long |
getNBytesEvictedManual()
Number of bytes evicted by the
Environment.evictMemory() method,
which is called during Environment startup, or by application code. |
long |
getNBytesReadFromWriteQueue()
The number of bytes read to fulfill file read operations by reading out
of the pending write queue.
|
long |
getNBytesWrittenFromWriteQueue()
The number of bytes written from the pending write queue.
|
long |
getNCachedBINDeltas()
Number of BIN-deltas (partial BINs) in cache.
|
long |
getNCachedBINs()
Number of BINs (bottom internal nodes) in cache.
|
long |
getNCachedUpperINs()
Number of INs (internal nodes) in cache.
|
long |
getNCacheMiss()
The total number of requests for database objects which were not in
memory.
|
long |
getNCheckpoints()
The total number of checkpoints run so far.
|
long |
getNCleanerDeletions()
The number of cleaner file deletions this session.
|
long |
getNCleanerDiskRead()
The number of disk reads performed by the cleaner.
|
long |
getNCleanerEntriesRead()
The accumulated number of log entries read by the cleaner.
|
long |
getNCleanerProbeRuns()
Deprecated.
in JE 6.3, always returns zero.
|
long |
getNCleanerRevisalRuns()
Number of cleaner runs that ended in revising expiration info, but not
in any cleaning.
|
long |
getNCleanerRuns()
Total number of cleaner runs, including
two-pass runs but not including revisal runs. |
long |
getNCleanerTwoPassRuns()
Number of cleaner two-pass runs, which are a subset of the
total cleaner runs. |
long |
getNClusterLNsProcessed()
The accumulated number of LNs processed because they qualify for
clustering.
|
long |
getNDeltaINFlush()
The accumulated number of Delta INs flushed to the log.
|
long |
getNDirtyNodesEvicted()
Number of dirty target nodes logged and evicted.
|
long |
getNEvictionRuns()
Number of eviction runs, an indicator of the eviction activity level.
|
long |
getNEvictPasses()
Deprecated.
Use getNEvictionRuns() instead.
|
int |
getNFileOpens()
The number of times a log file has been opened.
|
long |
getNFSyncRequests()
The number of fsyncs requested through the group commit manager.
|
long |
getNFSyncs()
The number of fsyncs issued through the group commit manager.
|
long |
getNFSyncTimeouts()
The number of fsync requests submitted to the group commit manager which
timed out.
|
long |
getNFullBINFlush()
The accumulated number of full BINs flushed to the log.
|
long |
getNFullBINsMiss()
Number of times a BIN-delta had to be mutated to a full BIN (and as a
result a full BIN had to be read in from the log).
|
long |
getNFullINFlush()
The accumulated number of full INs flushed to the log.
|
long |
getNINCompactKeyIN()
Number of INs that use a compact key representation to minimize the key
object representation overhead.
|
long |
getNINNoTarget()
Number of INs that use a compact representation when none of its child
nodes are in the cache.
|
long |
getNINsCleaned()
The accumulated number of INs cleaned.
|
long |
getNINsDead()
The accumulated number of INs that were not found in the tree anymore
(deleted).
|
long |
getNINsMigrated()
The accumulated number of INs migrated.
|
long |
getNINsObsolete()
The accumulated number of INs obsolete.
|
long |
getNINSparseTarget()
Number of INs that use a compact sparse array representation to point
to child nodes in the cache.
|
long |
getNLNQueueHits()
The accumulated number of LNs processed without a tree lookup.
|
long |
getNLNsCleaned()
The accumulated number of LNs cleaned.
|
long |
getNLNsDead()
The accumulated number of LNs that were not found in the tree anymore
(deleted).
|
long |
getNLNsEvicted()
Number of LNs evicted as a result of BIN stripping
|
long |
getNLNsExpired()
The accumulated number of obsolete LNs that were expired.
|
long |
getNLNsFetch()
Number of LNs (data records) requested by btree operations.
|
long |
getNLNsFetchMiss()
Number of LNs (data records) requested by btree operations that were not
in cache.
|
long |
getNLNsLocked()
The accumulated number of LNs encountered that were locked.
|
long |
getNLNsMarked()
The accumulated number of LNs in temporary DBs that were dirtied by the
cleaner and subsequently logging during checkpoint/eviction.
|
long |
getNLNsMigrated()
The accumulated number of LNs encountered that were migrated forward in
the log by the cleaner.
|
long |
getNLNsObsolete()
The accumulated number of LNs obsolete.
|
int |
getNLogBuffers()
The number of log buffers currently instantiated.
|
long |
getNLogFSyncs()
The total number of fsyncs of the JE log.
|
long |
getNMarkedLNsProcessed()
The accumulated number of LNs processed because they were previously
marked for migration.
|
long |
getNNodesEvicted()
Number of target nodes evicted.
|
long |
getNNodesExplicitlyEvicted()
Deprecated.
Use getNNodesEvicted() instead.
|
long |
getNNodesMovedToDirtyLRU()
Number of nodes moved from the "mixed" to the dirty LRU.
|
long |
getNNodesMutated()
Number of BINs mutated to BIN-deltas by eviction.
|
long |
getNNodesPutBack()
Number of nodes back into the LRU without any action taken on them.
|
long |
getNNodesScanned()
Deprecated.
This statistic has no meaning after the implementation
of the new evictor in JE 6.0. The method returns 0 always.
|
long |
getNNodesSelected()
Deprecated.
Use getNNodesTargeted() instead.
|
long |
getNNodesSkipped()
Number of nodes removed from the LRU without any action taken on them.
|
long |
getNNodesStripped()
Number of BINs whose child LNs were evicted (stripped).
|
long |
getNNodesTargeted()
Number of nodes selected as eviction targets.
|
long |
getNNotResident()
The number of requests for database objects not contained within the
in memory data structures.
|
long |
getNonEmptyBins()
The number of BINs encountered by the INCompressor that were not
actually empty when the compressor ran.
|
int |
getNOpenFiles()
The number of files currently open in the file cache.
|
int |
getNOwners()
Total lock owners in lock table.
|
long |
getNPendingLNsLocked()
The accumulated number of pending LNs that could not be locked for
migration because of a long duration application lock.
|
long |
getNPendingLNsProcessed()
The accumulated number of LNs processed because they were previously
locked.
|
long |
getNRandomReadBytes()
The number of bytes read which required repositioning the disk head
more than 1MB from the previous file position.
|
long |
getNRandomReads()
The number of disk reads which required repositioning the disk head
more than 1MB from the previous file position.
|
long |
getNRandomWriteBytes()
The number of bytes written which required repositioning the disk head
more than 1MB from the previous file position.
|
long |
getNRandomWrites()
The number of disk writes which required repositioning the disk head by
more than 1MB from the previous file position.
|
int |
getNReadLocks()
Total read locks currently held.
|
long |
getNReadsFromWriteQueue()
The number of file read operations which were fulfilled by reading out
of the pending write queue.
|
int |
getNReleases()
Number of releases of the lock table latch.
|
long |
getNRepeatFaultReads()
The number of reads which had to be repeated when faulting in an object
from disk because the read chunk size controlled by je.log.faultReadSize
is too small.
|
long |
getNRepeatIteratorReads()
The number of times we tried to read a log entry larger than the read
buffer size and couldn't grow the log buffer to accommodate the large
object.
|
long |
getNRequests()
Total number of lock requests to date.
|
long |
getNRootNodesEvicted()
Number of database root nodes evicted.
|
long |
getNSequentialReadBytes()
The number of bytes read which did not require repositioning the disk
head more than 1MB from the previous file position.
|
long |
getNSequentialReads()
The number of disk reads which did not require repositioning the disk
head more than 1MB from the previous file position.
|
long |
getNSequentialWriteBytes()
The number of bytes written which did not require repositioning the
disk head more than 1MB from the previous file position.
|
long |
getNSequentialWrites()
The number of disk writes which did not require repositioning the disk
head by more than 1MB from the previous file position.
|
int |
getNSharedCacheEnvironments()
The number of environments using the shared cache.
|
long |
getNTempBufferWrites()
The number of writes which had to be completed using the temporary
marshalling buffer because the fixed size log buffers specified by
je.log.totalBufferBytes and je.log.numBuffers were not large enough.
|
long |
getNThreadUnavailable()
Number of eviction tasks that were submitted to the background evictor
pool, but were refused because all eviction threads were busy.
|
long |
getNToBeCleanedLNsProcessed()
The accumulated number of LNs processed because they are soon to be
cleaned.
|
int |
getNTotalLocks()
Total locks currently in lock table.
|
long |
getNUpperINsEvictedCacheMode()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getNUpperINsEvictedCritical()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getNUpperINsEvictedDaemon()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getNUpperINsEvictedEvictorThread()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getNUpperINsEvictedManual()
Deprecated.
This statistic has been removed. The method returns 0
always.
|
long |
getNUpperINsFetch()
Number of upper INs (non bottom internal nodes) requested by btree
operations.
|
long |
getNUpperINsFetchMiss()
Number of upper INs (non-bottom internal nodes) requested by btree
operations that were not in cache.
|
int |
getNWaiters()
Total transactions waiting for locks.
|
long |
getNWaits()
Total number of lock waits to date.
|
int |
getNWriteLocks()
Total write locks currently held.
|
long |
getNWriteQueueOverflow()
The number of writes operations which would overflow the Write Queue.
|
long |
getNWriteQueueOverflowFailures()
The number of writes operations which would overflow the Write Queue
and could not be queued.
|
long |
getNWritesFromWriteQueue()
The number of file writes operations executed from the pending write
queue.
|
long |
getOffHeapAllocFailures()
Number of off-heap allocation failures due to lack of system memory.
|
long |
getOffHeapAllocOverflows()
Number of off-heap allocation attempts that exceeded the cache size.
|
long |
getOffHeapBINsLoaded()
Number of BINs loaded from the off-heap cache.
|
long |
getOffHeapBINsStored()
Number of BINs stored into the off-heap cache.
|
int |
getOffHeapCachedBINDeltas()
Number of BIN-deltas residing in the off-heap cache.
|
int |
getOffHeapCachedBINs()
Number of BINs (full BINs and BIN-deltas) residing in the off-heap
cache.
|
int |
getOffHeapCachedLNs()
Number of LNs residing in the off-heap cache.
|
long |
getOffHeapCriticalNodesTargeted()
Number of off-heap nodes targeted in 'critical eviction' mode,
potentially causing long operation latency in application threads.
|
long |
getOffHeapDirtyNodesEvicted()
Number of target BINs evicted from the off-heap cache that were dirty
and therefore were logged.
|
long |
getOffHeapLNsEvicted()
Number of LNs evicted from the off-heap cache as a result of BIN
stripping.
|
long |
getOffHeapLNsLoaded()
Number of LNs loaded from the off-heap cache.
|
long |
getOffHeapLNsStored()
Number of LNs stored into the off-heap cache.
|
long |
getOffHeapLRUSize()
Number of entries in the off-heap LRU list.
|
long |
getOffHeapNodesEvicted()
Number of BINs (dirty and non-dirty) evicted from the off-heap cache.
|
long |
getOffHeapNodesMutated()
Number of off-heap target BINs mutated to BIN-deltas.
|
long |
getOffHeapNodesSkipped()
Number of off-heap target BINs on which no action was taken.
|
long |
getOffHeapNodesStripped()
Number of target BINs whose off-heap child LNs were evicted (stripped).
|
long |
getOffHeapNodesTargeted()
Number of BINs selected as off-heap eviction targets.
|
long |
getOffHeapThreadUnavailable()
Number of eviction tasks that were submitted to the background off-heap
evictor pool, but were refused because all off-heap eviction threads
were busy.
|
long |
getOffHeapTotalBlocks()
Total number of memory blocks in the off-heap cache.
|
long |
getOffHeapTotalBytes()
Total number of estimated bytes in the off-heap cache.
|
int |
getPendingLNQueueSize()
The number of LNs pending because they were locked and could not be
migrated.
|
long |
getPriDeleteFailOps()
Number of failed primary DB deletion operations.
|
long |
getPriDeleteOps()
Number of successful primary DB deletion operations.
|
long |
getPriInsertFailOps()
Number of failed primary DB insertion operations.
|
long |
getPriInsertOps()
Number of successful primary DB insertion operations.
|
long |
getPriPositionOps()
Number of successful primary DB position operations.
|
long |
getPriSearchFailOps()
Number of failed primary DB key search operations.
|
long |
getPriSearchOps()
Number of successful primary DB key search operations.
|
long |
getPriUpdateOps()
Number of successful primary DB update operations.
|
long |
getProcessedBins()
The number of BINs that were successfully processed by the IN
Compressor.
|
long |
getRelatchesRequired()
Returns the number of latch upgrades (relatches) required while
operating on this Environment.
|
long |
getRequiredEvictBytes()
Deprecated.
The method returns 0 always.
|
long |
getSecDeleteOps()
Number of successful secondary DB deletion operations.
|
long |
getSecInsertOps()
Number of successful secondary DB insertion operations.
|
long |
getSecPositionOps()
Number of successful secondary DB position operations.
|
long |
getSecSearchFailOps()
Number of failed secondary DB key search operations.
|
long |
getSecSearchOps()
Number of successful secondary DB key search operations.
|
long |
getSecUpdateOps()
Number of successful secondary DB update operations.
|
long |
getSharedCacheTotalBytes()
The total amount of the shared JE cache in use, in bytes.
|
long |
getSplitBins()
The number of BINs encountered by the INCompressor that were split
between the time they were put on the compressor queue and when the
compressor ran.
|
long |
getTotalLogSize()
An approximation of the current total log size in bytes.
|
String |
toString()
Returns a String representation of the stats in the form of
<stat>=<value>
|
String |
toStringVerbose()
Returns a String representation of the stats which includes stats
descriptions in addition to <stat>=<value>
|
public long getCursorsBins()
public long getEnvironmentCreationTime()
public long getDbClosedBins()
public long getInCompQueueSize()
public long getNonEmptyBins()
public long getProcessedBins()
public long getSplitBins()
public long getLastCheckpointId()
public long getNCheckpoints()
public long getNFullINFlush()
public long getNFullBINFlush()
public long getNDeltaINFlush()
public long getLastCheckpointInterval()
public long getLastCheckpointStart()
public long getLastCheckpointEnd()
public int getCleanerBacklog()
getCurrentMinUtilization() and getCurrentMaxUtilization() to
monitor cleaner behavior.public int getFileDeletionBacklog()
DbBackup.public int getCurrentMinUtilization()
The log utilization is the percentage of the total log size (all .jdb
files) that is utilized or active. The remaining portion of the log
is obsolete. The log cleaner is responsible for keeping the log
utilization below the configured threshold,
EnvironmentConfig.CLEANER_MIN_UTILIZATION.
This statistic is computed every time the log cleaner examines the
utilization of the log, in order to determine whether cleaning is
needed. The frequency can be configured using
EnvironmentConfig.CLEANER_BYTES_INTERVAL.
The obsolete portion of the log includes data that has expired at the
time the statistic was last computed. An expiration histogram is stored
for each file and used to compute the expired size. The minimum and
maximum utilization are the lower and upper bounds of computed
utilization, which may be different when some data has expired. See
getNCleanerTwoPassRuns() for more information.
Note that the size of the utilized data in the log is always greater than the amount of user data (total size of keys and data). The active Btree internal nodes and other metadata are also included.
public int getCurrentMaxUtilization()
The log utilization is the percentage of the total log size (all .jdb
files) that is utilized or active. The remaining portion of the log
is obsolete. The log cleaner is responsible for keeping the log
utilization below the configured threshold,
EnvironmentConfig.CLEANER_MIN_UTILIZATION.
This statistic is computed every time the log cleaner examines the
utilization of the log, in order to determine whether cleaning is
needed. The frequency can be configured using
EnvironmentConfig.CLEANER_BYTES_INTERVAL.
The obsolete portion of the log includes data that has expired at the
time the statistic was last computed. An expiration histogram is stored
for each file and used to compute the expired size. The minimum and
maximum utilization are the lower and upper bounds of computed
utilization, which may be different when some data has expired. See
getNCleanerTwoPassRuns() for more information.
Note that the size of the utilized data in the log is always greater than the amount of user data (total size of keys and data). The active Btree internal nodes and other metadata are also included.
public int getLastKnownUtilization()
getCurrentMinUtilization() or
getCurrentMaxUtilization() instead.getCurrentMinUtilization().public float getLNSizeCorrectionFactor()
public float getCorrectedAvgLNSize()
getCorrectedAvgLNSize() instead.public float getEstimatedAvgLNSize()
getCorrectedAvgLNSize() instead.public long getNCleanerRuns()
two-pass runs but not including revisal runs. The minimum and
maximum utilization values are used
to drive cleaning.public long getNCleanerTwoPassRuns()
total cleaner runs. The minimum and maximum utilization values are used to
drive cleaning.
The obsolete portion of the log includes data that has expired. An expiration histogram is stored for each file and used to compute the expired size. The minimum and maximum utilization are the lower and upper bounds of computed utilization. They are different only when the TTL feature is used, and some data in the file has expired while other data has become obsolete for other reasons, such as record updates, record deletions or checkpoints. In this case the strictly obsolete size and the expired size may overlap because they are maintained separately.
If they overlap completely then the minimum utilization is correct, while if there is no overlap then the maximum utilization is correct. Both utilization values trigger cleaning, but when there is significant overlap, the cleaner will perform two-pass cleaning.
In the first pass of two-pass cleaning, the file is read to recompute obsolete and expired sizes, but the file is not cleaned. As a result of recomputing the expired sizes, the strictly obsolete and expired sizes will no longer overlap, and the minimum and maximum utilization will be equal. If the file should still be cleaned, based on the recomputed utilization, it is cleaned as usual, and in this case the number of two-pass runs (this statistic) is incremented.
If the file should not be cleaned because its recomputed utilization is
higher than expected, the file will not be cleaned. Instead, its
recomputed expiration histogram, which has size information that now
does not overlap with the strictly obsolete data, is stored for future
use. By storing the revised histogram, the cleaner can select the most
appropriate files for cleaning in the future. In this case the number of
revisal runs is incremented, and the
number of total runs is not incremented.
public long getNCleanerRevisalRuns()
getNCleanerTwoPassRuns()public long getNCleanerProbeRuns()
public long getNCleanerDeletions()
public int getPendingLNQueueSize()
public long getNCleanerDiskRead()
public long getNCleanerEntriesRead()
public long getNINsObsolete()
public long getNINsCleaned()
public long getNINsDead()
public long getNINsMigrated()
public long getNBINDeltasObsolete()
public long getNBINDeltasCleaned()
public long getNBINDeltasDead()
public long getNBINDeltasMigrated()
public long getNLNsObsolete()
public long getNLNsExpired()
EnvironmentConfig.TREE_MAX_EMBEDDED_LN), because embedded LNs
are always considered obsolete.public long getNLNsCleaned()
public long getNLNsDead()
public long getNLNsLocked()
public long getNLNsMigrated()
public long getNLNsMarked()
public long getNLNQueueHits()
public long getNPendingLNsProcessed()
public long getNMarkedLNsProcessed()
public long getNToBeCleanedLNsProcessed()
public long getNClusterLNsProcessed()
public long getNPendingLNsLocked()
public long getNRepeatIteratorReads()
public long getTotalLogSize()
public long getNCacheMiss()
public long getEndOfLog()
Note that the log entries prior to this position may not yet have been flushed to disk. Flushing can be forced using a Sync or WriteNoSync commit, or a checkpoint.
public long getNFSyncs()
public long getNFSyncRequests()
public long getNFSyncTimeouts()
public long getFSyncTime()
toString() and
appeared in the je.stat.csv file in earlier versions.public long getFSyncMaxTime()
public long getNLogFSyncs()
public int getNLogBuffers()
public long getNRandomReads()
This number is approximate and may differ from the actual number of random disk reads depending on the type of disks and file system, disk geometry, and file system cache size.
public long getNRandomReadBytes()
This number is approximate vary depending on the type of disks and file system, disk geometry, and file system cache size.
public long getNRandomWrites()
This number is approximate and may differ from the actual number of random disk writes depending on the type of disks and file system, disk geometry, and file system cache size.
public long getNRandomWriteBytes()
This number is approximate vary depending on the type of disks and file system, disk geometry, and file system cache size.
public long getNSequentialReads()
This number is approximate and may differ from the actual number of sequential disk reads depending on the type of disks and file system, disk geometry, and file system cache size.
public long getNSequentialReadBytes()
This number is approximate vary depending on the type of disks and file system, disk geometry, and file system cache size.
public long getNSequentialWrites()
This number is approximate and may differ from the actual number of sequential disk writes depending on the type of disks and file system, disk geometry, and file system cache size.
public long getNSequentialWriteBytes()
This number is approximate vary depending on the type of disks and file system, disk geometry, and file system cache size.
public long getNBytesReadFromWriteQueue()
public long getNBytesWrittenFromWriteQueue()
public long getNReadsFromWriteQueue()
public long getNWritesFromWriteQueue()
public long getNWriteQueueOverflow()
public long getNWriteQueueOverflowFailures()
public long getBufferBytes()
public long getNNotResident()
public long getNRepeatFaultReads()
public long getNTempBufferWrites()
public int getNFileOpens()
public int getNOpenFiles()
public long getRequiredEvictBytes()
public long getNNodesScanned()
public long getNEvictPasses()
public long getNNodesSelected()
public long getNNodesExplicitlyEvicted()
public long getNBINsStripped()
public long getNBINsMutated()
public long getNEvictionRuns()
public long getNNodesTargeted()
public long getNNodesEvicted()
public long getNRootNodesEvicted()
public long getNDirtyNodesEvicted()
public long getNLNsEvicted()
public long getNNodesStripped()
public long getNNodesMutated()
public long getNNodesPutBack()
public long getNNodesMovedToDirtyLRU()
public long getNNodesSkipped()
public long getNThreadUnavailable()
public int getNSharedCacheEnvironments()
public long getNLNsFetch()
public long getNUpperINsFetch()
public long getNBINsFetch()
public long getNLNsFetchMiss()
public long getNUpperINsFetchMiss()
public long getNBINsFetchMiss()
public long getNBINDeltasFetchMiss()
public float getNBINsFetchMissRatio()
public long getNFullBINsMiss()
public long getNBINDeltaBlindOps()
public long getNCachedUpperINs()
public long getNCachedBINs()
public long getNCachedBINDeltas()
public long getNINSparseTarget()
public long getNINNoTarget()
public long getNINCompactKeyIN()
public long getDirtyLRUSize()
public long getMixedLRUSize()
public long getNBINsEvictedEvictorThread()
public long getNBINsEvictedManual()
public long getNBINsEvictedCritical()
public long getNBINsEvictedCacheMode()
public long getNBINsEvictedDaemon()
public long getNUpperINsEvictedEvictorThread()
public long getNUpperINsEvictedManual()
public long getNUpperINsEvictedCritical()
public long getNUpperINsEvictedCacheMode()
public long getNUpperINsEvictedDaemon()
public long getNBatchesEvictorThread()
public long getNBatchesManual()
public long getNBatchesCacheMode()
public long getNBatchesCritical()
public long getNBatchesDaemon()
public long getNBytesEvictedEvictorThread()
public long getNBytesEvictedManual()
Environment.evictMemory() method,
which is called during Environment startup, or by application code. It
serves as an indicator of which part of the system is doing eviction
work.public long getNBytesEvictedCacheMode()
CacheMode. It serves as an
indicator of which part of the system is doing eviction work.public long getNBytesEvictedCritical()
public long getNBytesEvictedDeamon()
public long getAvgBatchEvictorThread()
public long getAvgBatchManual()
public long getAvgBatchCacheMode()
public long getAvgBatchCritical()
public long getAvgBatchDaemon()
public long getSharedCacheTotalBytes()
To get the configured maximum cache size, see EnvironmentMutableConfig.getCacheSize().
public long getCacheTotalBytes()
This method returns the sum of getDataBytes(), getAdminBytes(), getLockBytes() and getBufferBytes().
To get the configured maximum cache size, see EnvironmentMutableConfig.getCacheSize().
public long getDataBytes()
The value returned by this method includes the amount returned by
getDataAdminBytes().
public long getDataAdminBytes()
getDataBytes()) in the cache that are
allocated for per-database cleaner utilization metadata.public long getDOSBytes()
public long getAdminBytes()
public long getLockBytes()
public long getCacheDataBytes()
getDataBytes() to get the amount of cache
used for data and use getAdminBytes(), getLockBytes() and
getBufferBytes() to get other components of the total cache usage
(getCacheTotalBytes()).public long getOffHeapAllocFailures()
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
public long getOffHeapAllocOverflows()
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
public long getOffHeapThreadUnavailable()
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
public long getOffHeapNodesTargeted()
An eviction target may actually be evicted, or skipped, or put back to the LRU, potentially after stripping child LNs or mutation to a BIN-delta.
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
public long getOffHeapCriticalNodesTargeted()
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
public long getOffHeapNodesEvicted()
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
public long getOffHeapDirtyNodesEvicted()
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
public long getOffHeapNodesStripped()
getOffHeapLNsEvicted() stat is incremented
accordingly.
A stripped BIN could be a BIN in main cache that is stripped of off-heap LNs, or a BIN that is off-heap and also refers to off-heap LNs. When a main cache BIN is stripped, it is removed from the off-heap LRU. When an off-heap BIN is stripped, it is either modified in place to remove the LN references (this is done when a small number of LNs are referenced and the wasted space is small), or is copied to a new, smaller off-heap block with no LN references.
After stripping an off-heap BIN, it is moved to the hot end of the LRU list. Off-heap BINs are only mutated to BIN-deltas or evicted completely when they do not refer to any off-heap LNs. This gives BINs precedence over LNs in the cache.
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
public long getOffHeapNodesMutated()
EnvironmentConfig.TREE_BIN_DELTA). When a BIN is
mutated, it is is copied to a new, smaller off-heap block. After
mutating an off-heap BIN, it is moved to the hot end of the LRU list.
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
public long getOffHeapNodesSkipped()
The number of skipped nodes is normally very small, compared to the number of targeted nodes.
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
public long getOffHeapLNsEvicted()
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
getOffHeapNodesStripped()public long getOffHeapLNsLoaded()
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
public long getOffHeapLNsStored()
CacheMode.EVICT_LN is used, the LN resides in the main
cache for a very short period since it is evicted after the CRUD
operation is complete.
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
public long getOffHeapBINsLoaded()
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
public long getOffHeapBINsStored()
CacheMode.EVICT_BIN is used, the BIN resides in the
main cache for a very short period since it is evicted after the CRUD
operation is complete.
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
public int getOffHeapCachedLNs()
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
public int getOffHeapCachedBINs()
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
public int getOffHeapCachedBINDeltas()
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
public long getOffHeapTotalBytes()
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
To get the configured maximum off-heap cache size, see EnvironmentMutableConfig.getOffHeapCacheSize().
public long getOffHeapTotalBlocks()
getOffHeapCachedLNs()
and getOffHeapCachedBINs().
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
public long getOffHeapLRUSize()
There is one LRU entry for each off-heap BIN, and one for each BIN in main cache that refers to one or more off-heap LNs. The latter approach avoids an LRU entry per off-heap LN, which would use excessive amounts of space in the Java heap. Similarly, when an off-heap BIN refers to off-heap LNs, only one LRU entry (for the BIN) is used.
If this environment uses the shared cache, the return value is the total for all environments that are sharing the cache.
public long getRelatchesRequired()
public int getNOwners()
Environment.getStats is
called in "slow" mode.public int getNReadLocks()
Environment.getStats is
called in "slow" mode.public int getNTotalLocks()
Environment.getStats is
called in "slow" mode.public int getNWaiters()
Environment.getStats is
called in "slow" mode.public int getNWriteLocks()
Environment.getStats is
called in "slow" mode.public long getNRequests()
public long getNWaits()
public int getNAcquiresNoWaiters()
public int getNAcquiresSelfOwned()
public int getNAcquiresWithContention()
public int getNAcquiresNoWaitSuccessful()
public int getNAcquiresNoWaitUnSuccessful()
public int getNReleases()
public long getNBinDeltaGetOps()
public long getNBinDeltaInsertOps()
public long getNBinDeltaUpdateOps()
public long getNBinDeltaDeleteOps()
public long getPriSearchOps()
This operation corresponds to one of the following API calls:
Cursor.get or Database.get call with Get.SEARCH, Get.SEARCH_GTE, Get.SEARCH_BOTH, or Get.SEARCH_BOTH_GTE.
SecondaryCursor.get or SecondaryDatabase.get call
when the primary data is requested (via the data param).
This call internally performs a key search operation in the
primary DB in order to return the data.
public long getPriSearchFailOps()
This operation corresponds to a call to Cursor.get or Database.get with Get.SEARCH, Get.SEARCH_GTE, Get.SEARCH_BOTH, or Get.SEARCH_BOTH_GTE, when the specified key is not found in the DB.
public long getSecSearchOps()
This operation corresponds to a successful call to SecondaryCursor.get or SecondaryDatabase.get with
Get.SEARCH, Get.SEARCH_GTE, Get.SEARCH_BOTH, or
Get.SEARCH_BOTH_GTE.
Note: Operations are currently counted as secondary DB (rather than primary DB) operations only if the DB has been opened by the application as a secondary DB. In particular the stats may be confusing on an HA replica node if a secondary DB has not been opened by the application on the replica.
public long getSecSearchFailOps()
This operation corresponds to a call to SecondaryCursor.get or SecondaryDatabase.get with Get.SEARCH, Get.SEARCH_GTE, Get.SEARCH_BOTH, or Get.SEARCH_BOTH_GTE, when the specified key is not found in the DB.
Note: Operations are currently counted as secondary DB (rather than primary DB) operations only if the DB has been opened by the application as a secondary DB. In particular the stats may be confusing on an HA replica node if a secondary DB has not been opened by the application on the replica.
public long getPriPositionOps()
This operation corresponds to a successful call to Cursor.get
or Database.get with Get.FIRST, Get.LAST,
Get.NEXT, Get.NEXT_DUP, Get.NEXT_NO_DUP,
Get.PREV, Get.PREV_DUP or Get.PREV_NO_DUP.
public long getSecPositionOps()
This operation corresponds to a successful call to SecondaryCursor.get or SecondaryDatabase.get with
Get.FIRST, Get.LAST,
Get.NEXT, Get.NEXT_DUP, Get.NEXT_NO_DUP,
Get.PREV, Get.PREV_DUP or Get.PREV_NO_DUP.
Note: Operations are currently counted as secondary DB (rather than primary DB) operations only if the DB has been opened by the application as a secondary DB. In particular the stats may be confusing on an HA replica node if a secondary DB has not been opened by the application on the replica.
public long getPriInsertOps()
This operation corresponds to a successful call to Cursor.put
or Database.put in one of the following cases:
Put.NO_OVERWRITE or Put.NO_DUP_DATA is
specified.
Put.OVERWRITE is specified and the key was inserted
because it previously did not exist in the DB.
public long getPriInsertFailOps()
This operation corresponds to a call to Cursor.put or Database.put with Put.NO_OVERWRITE or Put.NO_DUP_DATA, when the key could not be inserted because it
previously existed in the DB.
public long getSecInsertOps()
This operation corresponds to a successful call to Cursor.put
or Database.put, for a primary DB with an associated
secondary DB. A secondary record is inserted when inserting a primary
record with a non-null secondary key, or when updating a primary record
and the secondary key is changed to to a non-null value that is
different than the previously existing value.
Note: Operations are currently counted as secondary DB (rather than primary DB) operations only if the DB has been opened by the application as a secondary DB. In particular the stats may be confusing on an HA replica node if a secondary DB has not been opened by the application on the replica.
public long getPriUpdateOps()
This operation corresponds to a successful call to Cursor.put
or Database.put in one of the following cases:
Put.OVERWRITE is specified and the key previously
existed in the DB.
Cursor.put with Put.CURRENT.
public long getSecUpdateOps()
This operation corresponds to a successful call to Cursor.put
or Database.put, when a primary record is updated and its
TTL is changed. The associated secondary records must also be updated to
reflect the change in the TTL.
Note: Operations are currently counted as secondary DB (rather than primary DB) operations only if the DB has been opened by the application as a secondary DB. In particular the stats may be confusing on an HA replica node if a secondary DB has not been opened by the application on the replica.
public long getPriDeleteOps()
This operation corresponds to a successful call to Cursor.delete, Database.delete, SecondaryCursor.delete or SecondaryDatabase.delete.
public long getPriDeleteFailOps()
This operation corresponds to a call to Database.delete or SecondaryDatabase.delete, when the key could not be deleted because it
did not previously exist in the DB.
public long getSecDeleteOps()
This operation corresponds to one of the following API calls:
Cursor.delete or
Database.delete, that deletes a primary record
containing a non-null secondary key.
SecondaryCursor.delete or SecondaryDatabase.delete.
Cursor.put or Database.put that updates a primary record and
changes its previously non-null secondary key to null.
Note: Operations are currently counted as secondary DB (rather than primary DB) operations only if the DB has been opened by the application as a secondary DB. In particular the stats may be confusing on an HA replica node if a secondary DB has not been opened by the application on the replica.
public String toString()
public String toStringVerbose()
Copyright (c) 2002, 2017 Oracle and/or its affiliates. All rights reserved.