Interface JournalMBean
- All Known Implementing Classes:
AbstractJournalRM, FlashJournalRM, RamJournalRM
JournalMBean is an MBean interface providing statistics for a
Journal Resource Manager as implemented by either FlashJournalRM or
RamJournalRM implementations.- Since:
- Coherence 3.7
- Author:
- cf 2010-11-28
-
Method Summary
Modifier and TypeMethodDescriptionvoidcompact(boolean fRegular) Execute either a regular or exhaustive compaction on the journal based on the provided parameter.intDetermine the number of serialized values that have not yet been persisted to disk.intDetermine the total size in bytes of the serialized values that have not yet been persisted to disk.intDetermine the number of active BinaryStore objects that are using this Journal.intDetermine the size of the buffers used to write a chunk of data at a time to an underlying journal file.doubleDetermine the load factor threshold at which files become eligible for garbage collection (compaction).intDetermine the number of journal files successfully evacuated by the collector.doubleDetermine the current load factor threshold for the journal.default longDetermine the elapsed time of the current journal-file compaction, or zero if no file is currently being compacted.default longDetermine the elapsed time of the current FlashJournal congestion episode, or zero if the journal is not congested.intDetermine the total number of exhaustive compactions performed by the collector.longReturn the total amount time spent performing exhaustive compaction.intDetermine the number of Journal files used by this Journal.doubleDetermine the high-water mark load factor for the entire journal.intDetermine the high file count for this Journal.intDetermine the maximum allowable size, in bytes, of the backlog; when the backlog reaches this level, writes are delayed until the backlog drops below its maximum.longDetermine the maximum allowable size, in bytes, of each individual file used to hold Journal data.default longDetermine the longest completed or currently active single journal-file compaction attempt, including failed attempts.default longDetermine the longest continuous FlashJournal congestion episode.default longDetermine the longest physicalFileChannel.forceinvocation.default longDetermine the longest physicalFileChannel.writeinvocation.intDetermine the maximum number of Journal files.longDetermine the maximum size (in bytes) of the buffers that can be held by the pool.longDetermine the total amount, in bytes, of RAM that will be used for the Journal.intDetermine the maximum allowable size, in bytes, of a Binary value.default longDetermine when the FlashJournal collector most recently completed a scan and successfully finalized its results.default longDetermine the most recently assigned, non-resetting FlashJournal file creation sequence number.default longDetermine the creation time of the most recently created FlashJournal file.default longDetermine the deletion time of the most recently deleted FlashJournal managed file.default longDetermine the non-resetting creation sequence number assigned to the oldest currently active FlashJournal file.default longDetermine the creation time of the oldest currently active FlashJournal file.intDetermine the size (in bytes) of the buffers that are currently available in the pool.default longDetermine the cumulative number of journal-file compaction attempts started by the collector.default longDetermine the cumulative number of live bytes evacuated by successfully completed journal-file compactions.default longDetermine the cumulative wall-clock time spent evacuating live values from journal files selected for compaction.default longDetermine the number of FlashJournal congestion episodes.default longDetermine the cumulative wall-clock time during which the FlashJournal was unable to accept new values because of write-backlog congestion.longDetermine the amount of data currently stored by this Journal.default longDetermine the number of FlashJournal files successfully created since statistics were reset.default longDetermine the number of failed FlashJournal file or channel creation attempts since statistics were reset.default longDetermine the number of managed FlashJournal files successfully deleted since statistics were reset.default longDetermine the number of failed managed FlashJournal file deletion attempts since statistics were reset, including attempts for whichFile.delete()returnedfalse.longDetermine the number of bytes in the Journal files for this Journal.default longDetermine the number of write errors thrown by physicalFileChannel.writeinvocations.default longDetermine the total number of physicalFileChannel.forceinvocations attempted by the FlashJournal writer.default longDetermine the number of write errors thrown by physicalFileChannel.forceinvocations.default longDetermine the cumulative time spent in physicalFileChannel.forceinvocations.default longDetermine the total number of bytes reported written by physicalFileChannel.writeinvocations, including recovery writes.default longDetermine the total number of I/O exceptions thrown by physical write or force operations.default longDetermine the total number of physicalFileChannel.writeinvocations attempted by the FlashJournal writer.default longDetermine the number of recovery attempts made after a physical write or force operation failed.default longDetermine the cumulative time spent in physicalFileChannel.writeinvocations.booleanisNioRam()Determine if the journal will use direct buffers (NIO RAM) instead of on-heap buffers (byte arrays).voidReset the journal statistics.
-
Method Details
-
getMaxFileSize
long getMaxFileSize()Determine the maximum allowable size, in bytes, of each individual file used to hold Journal data. This is not the total size limit of the Journal, since the Journal may use a number of files to store its data.- Returns:
- the maximum allowable size for an underlying file
-
getMaxValueSize
int getMaxValueSize()Determine the maximum allowable size, in bytes, of a Binary value.- Returns:
- the maximum allowable size for a value to write
-
getMaxJournalFilesNumber
int getMaxJournalFilesNumber()Determine the maximum number of Journal files.- Returns:
- the maximum number of simultaneous Journal files that will be used to store the contents of this Journal
-
getBinaryStoreCount
int getBinaryStoreCount()Determine the number of active BinaryStore objects that are using this Journal.- Returns:
- the number of BinaryStore objects that are currently active
-
getFileCount
int getFileCount()Determine the number of Journal files used by this Journal.- Returns:
- the number of files for this journal
-
getHighFileCount
int getHighFileCount()Determine the high file count for this Journal. Compulsory compaction (GC) occurs when the journal file count reaches the high file count.This property is specific to a
FlashJournalRMimplementation.- Returns:
- the high file count for this journal
-
getTotalDataSize
long getTotalDataSize()Determine the amount of data currently stored by this Journal. This value does not include data that have been released.- Returns:
- the number of bytes for this Journal used to store Binary values that have not been released
-
getTotalFileSize
long getTotalFileSize()Determine the number of bytes in the Journal files for this Journal. This number could include released data that has not yet been compacted.- Returns:
- the total size of all Journal files for this Journal
-
getCollectorLoadFactor
double getCollectorLoadFactor()Determine the load factor threshold at which files become eligible for garbage collection (compaction). The load factor threshold is the ratio between the portion of the file used for live data and the total size of the file, and is expressed as a double value in the interval (0.0, 1.0).When the portion of released data exceeds (1 - threshold), the file becomes eligible for compaction (garbage collection).
- Returns:
- the compaction factor threshold between 0.0 and 1.0
-
getCurrentCollectorLoadFactor
double getCurrentCollectorLoadFactor()Determine the current load factor threshold for the journal.- Returns:
- the current load factor threshold between 0.0 and 1.0
-
getHighestLoadFactor
double getHighestLoadFactor()Determine the high-water mark load factor for the entire journal. The load factor is the ratio of the highest number of journal files that have concurrently existed to the maximum number of journal files that can concurrently exist.- Returns:
- the high-water journal load factor in the range 0.00 to 1.00
-
getBacklogCount
int getBacklogCount()Determine the number of serialized values that have not yet been persisted to disk.This property is specific to a
FlashJournalRMimplementation.- Returns:
- the number of serialized values queued to be written
-
getBacklogSize
int getBacklogSize()Determine the total size in bytes of the serialized values that have not yet been persisted to disk. This value is also referred to as the "backlog".This property is specific to a
FlashJournalRMimplementation.- Returns:
- the number of bytes queued to be written
-
getMaxBacklogSize
int getMaxBacklogSize()Determine the maximum allowable size, in bytes, of the backlog; when the backlog reaches this level, writes are delayed until the backlog drops below its maximum.This property is specific to a
FlashJournalRMimplementation.- Returns:
- the maximum allowable size of the backlog
-
getPoolSize
int getPoolSize()Determine the size (in bytes) of the buffers that are currently available in the pool. This is not a measurement of how many buffers are currently in use or how many have been allocated.This property is specific to a
FlashJournalRMimplementation.- Returns:
- the total size in bytes of all of the buffers that are currently in the buffer pool
-
getBufferSize
int getBufferSize()Determine the size of the buffers used to write a chunk of data at a time to an underlying journal file.This property is specific to a
FlashJournalRMimplementation.- Returns:
- the size, in bytes, of each buffer
-
getMaxPoolSize
long getMaxPoolSize()Determine the maximum size (in bytes) of the buffers that can be held by the pool. This is not a limit of how many buffers can be allocated, since some may be in use at any time, but rather how many will be held by the pool (i.e. recycled) as they are released.- Returns:
- the maximum size in bytes of all of the buffers that the buffer pool can hold onto
-
getOldestActiveFileCreationTime
default long getOldestActiveFileCreationTime()Determine the creation time of the oldest currently active FlashJournal file. Active files are appending, congested, full, or evacuating; garbage and discarded files are excluded. This lifetime value is not changed byresetStatistics().- Returns:
- the creation time in epoch milliseconds, or zero if there is no
active file, or
-1if unsupported - Since:
- 26.1.0.0
-
getOldestActiveFileCreationSequenceNumber
default long getOldestActiveFileCreationSequenceNumber()Determine the non-resetting creation sequence number assigned to the oldest currently active FlashJournal file. Active files are appending, congested, full, or evacuating; garbage and discarded files are excluded.- Returns:
- the creation sequence number, or zero if there is no active
file, or
-1if unsupported - Since:
- 26.1.0.0
-
getMostRecentFileCreationTime
default long getMostRecentFileCreationTime()Determine the creation time of the most recently created FlashJournal file. This lifetime value is not changed byresetStatistics().- Returns:
- the creation time in epoch milliseconds, or zero if no file has
been created, or
-1if unsupported - Since:
- 26.1.0.0
-
getMostRecentFileCreationSequenceNumber
default long getMostRecentFileCreationSequenceNumber()Determine the most recently assigned, non-resetting FlashJournal file creation sequence number.- Returns:
- the creation sequence number, or zero if no file has been
created, or
-1if unsupported - Since:
- 26.1.0.0
-
getTotalFileCreationCount
default long getTotalFileCreationCount()Determine the number of FlashJournal files successfully created since statistics were reset.- Returns:
- the successful file creation count, or
-1if unsupported - Since:
- 26.1.0.0
-
getTotalFileCreationErrors
default long getTotalFileCreationErrors()Determine the number of failed FlashJournal file or channel creation attempts since statistics were reset.- Returns:
- the failed file creation count, or
-1if unsupported - Since:
- 26.1.0.0
-
getMostRecentFileDeletionTime
default long getMostRecentFileDeletionTime()Determine the deletion time of the most recently deleted FlashJournal managed file. This lifetime value is not changed byresetStatistics().- Returns:
- the deletion time in epoch milliseconds, or zero if no file has
been deleted, or
-1if unsupported - Since:
- 26.1.0.0
-
getTotalFileDeletionCount
default long getTotalFileDeletionCount()Determine the number of managed FlashJournal files successfully deleted since statistics were reset.- Returns:
- the successful file deletion count, or
-1if unsupported - Since:
- 26.1.0.0
-
getTotalFileDeletionErrors
default long getTotalFileDeletionErrors()Determine the number of failed managed FlashJournal file deletion attempts since statistics were reset, including attempts for whichFile.delete()returnedfalse.- Returns:
- the failed file deletion count, or
-1if unsupported - Since:
- 26.1.0.0
-
getMostRecentCollectorScanCompletionTime
default long getMostRecentCollectorScanCompletionTime()Determine when the FlashJournal collector most recently completed a scan and successfully finalized its results. This lifetime value is not changed byresetStatistics().- Returns:
- the scan completion time in epoch milliseconds, or zero if no
scan has completed, or
-1if unsupported - Since:
- 26.1.0.0
-
getTotalWriteOperationCount
default long getTotalWriteOperationCount()Determine the total number of physicalFileChannel.writeinvocations attempted by the FlashJournal writer. A scatter/gather invocation counts as one operation regardless of the number of buffers.- Returns:
- the total number of physical write operations
- Since:
- 26.1.0.0
-
getTotalWriteBytes
default long getTotalWriteBytes()Determine the total number of bytes reported written by physicalFileChannel.writeinvocations, including recovery writes.- Returns:
- the total number of bytes reported written
- Since:
- 26.1.0.0
-
getTotalWriteTime
default long getTotalWriteTime()Determine the cumulative time spent in physicalFileChannel.writeinvocations.- Returns:
- the cumulative write time in milliseconds
- Since:
- 26.1.0.0
-
getMaximumWriteTime
default long getMaximumWriteTime()Determine the longest physicalFileChannel.writeinvocation.- Returns:
- the maximum write time in milliseconds
- Since:
- 26.1.0.0
-
getTotalForceCount
default long getTotalForceCount()Determine the total number of physicalFileChannel.forceinvocations attempted by the FlashJournal writer.- Returns:
- the total number of force operations
- Since:
- 26.1.0.0
-
getTotalForceTime
default long getTotalForceTime()Determine the cumulative time spent in physicalFileChannel.forceinvocations.- Returns:
- the cumulative force time in milliseconds
- Since:
- 26.1.0.0
-
getMaximumForceTime
default long getMaximumForceTime()Determine the longest physicalFileChannel.forceinvocation.- Returns:
- the maximum force time in milliseconds
- Since:
- 26.1.0.0
-
getTotalWriteErrors
default long getTotalWriteErrors()Determine the total number of I/O exceptions thrown by physical write or force operations.- Returns:
- the total number of write-path errors
- Since:
- 26.1.0.0
-
getTotalFileWriteErrors
default long getTotalFileWriteErrors()Determine the number of write errors thrown by physicalFileChannel.writeinvocations.- Returns:
- the total number of physical write errors
- Since:
- 26.1.0.0
-
getTotalForceErrors
default long getTotalForceErrors()Determine the number of write errors thrown by physicalFileChannel.forceinvocations.- Returns:
- the total number of force errors
- Since:
- 26.1.0.0
-
getTotalWriteRetries
default long getTotalWriteRetries()Determine the number of recovery attempts made after a physical write or force operation failed.- Returns:
- the total number of write retries
- Since:
- 26.1.0.0
-
getTotalCongestionCount
default long getTotalCongestionCount()Determine the number of FlashJournal congestion episodes. A congestion episode begins when the journal stops accepting new values because its write backlog exceeded the configured maximum.- Returns:
- the total number of congestion episodes
- Since:
- 26.1.0.0
-
getTotalCongestionTime
default long getTotalCongestionTime()Determine the cumulative wall-clock time during which the FlashJournal was unable to accept new values because of write-backlog congestion. Concurrent producers blocked by the same congestion episode do not multiply this value.- Returns:
- the cumulative congestion time in milliseconds
- Since:
- 26.1.0.0
-
getMaximumCongestionTime
default long getMaximumCongestionTime()Determine the longest continuous FlashJournal congestion episode.- Returns:
- the maximum congestion time in milliseconds
- Since:
- 26.1.0.0
-
getCurrentCongestionTime
default long getCurrentCongestionTime()Determine the elapsed time of the current FlashJournal congestion episode, or zero if the journal is not congested.- Returns:
- the current congestion time in milliseconds
- Since:
- 26.1.0.0
-
getMaxTotalRam
long getMaxTotalRam()Determine the total amount, in bytes, of RAM that will be used for the Journal.This property is specific to a
RamJournalRMimplementation.- Returns:
- the maximum number of bytes that will be allocated for Journal storage
-
isNioRam
boolean isNioRam()Determine if the journal will use direct buffers (NIO RAM) instead of on-heap buffers (byte arrays).This property is specific to a
RamJournalRMimplementation.- Returns:
- true iff the journal is configured to use NIO "direct buffer" RAM
-
getCompactionCount
int getCompactionCount()Determine the number of journal files successfully evacuated by the collector.- Returns:
- the number of successfully evacuated journal files
-
getTotalCompactionAttemptCount
default long getTotalCompactionAttemptCount()Determine the cumulative number of journal-file compaction attempts started by the collector. Successful, failed, and currently active attempts are included.- Returns:
- the cumulative number of compaction attempts
- Since:
- 26.1.0.0
-
getTotalCompactionTime
default long getTotalCompactionTime()Determine the cumulative wall-clock time spent evacuating live values from journal files selected for compaction. This includes synchronous reads and any waits incurred while the values are re-enqueued. Failed completed attempts and elapsed time for the currently active attempt are included.- Returns:
- the cumulative compaction time in milliseconds
- Since:
- 26.1.0.0
-
getMaximumCompactionTime
default long getMaximumCompactionTime()Determine the longest completed or currently active single journal-file compaction attempt, including failed attempts.- Returns:
- the maximum compaction time in milliseconds
- Since:
- 26.1.0.0
-
getCurrentCompactionTime
default long getCurrentCompactionTime()Determine the elapsed time of the current journal-file compaction, or zero if no file is currently being compacted.- Returns:
- the current compaction time in milliseconds
- Since:
- 26.1.0.0
-
getTotalCompactionBytes
default long getTotalCompactionBytes()Determine the cumulative number of live bytes evacuated by successfully completed journal-file compactions.- Returns:
- the cumulative number of compacted bytes
- Since:
- 26.1.0.0
-
getExhaustiveCompactionCount
int getExhaustiveCompactionCount()Determine the total number of exhaustive compactions performed by the collector. An exhaustive compaction is performed when there appears to be no memory available, however the garbage collector may have the ability reclaim memory via compaction.- Returns:
- number of exhaustive compactions executed
-
getExhaustiveCompactionTime
long getExhaustiveCompactionTime()Return the total amount time spent performing exhaustive compaction.- Returns:
- the total amount time spent performing exhaustive compaction
-
resetStatistics
void resetStatistics()Reset the journal statistics. -
compact
void compact(boolean fRegular) Execute either a regular or exhaustive compaction on the journal based on the provided parameter. The compaction is performed asynchronous to the invocation of this operation.An exhaustive compaction is only executed if sufficient memory has been released or sufficient time has elapsed since the previous exhaustive compaction.
- Parameters:
fRegular- whether the compaction should be regular; false for an exhaustive compaction
-