Interface JournalMBean

All Known Implementing Classes:
AbstractJournalRM, FlashJournalRM, RamJournalRM

public interface JournalMBean
A 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 Type
    Method
    Description
    void
    compact(boolean fRegular)
    Execute either a regular or exhaustive compaction on the journal based on the provided parameter.
    int
    Determine the number of serialized values that have not yet been persisted to disk.
    int
    Determine the total size in bytes of the serialized values that have not yet been persisted to disk.
    int
    Determine the number of active BinaryStore objects that are using this Journal.
    int
    Determine the size of the buffers used to write a chunk of data at a time to an underlying journal file.
    double
    Determine the load factor threshold at which files become eligible for garbage collection (compaction).
    int
    Determine the number of journal files successfully evacuated by the collector.
    double
    Determine the current load factor threshold for the journal.
    default long
    Determine the elapsed time of the current journal-file compaction, or zero if no file is currently being compacted.
    default long
    Determine the elapsed time of the current FlashJournal congestion episode, or zero if the journal is not congested.
    int
    Determine the total number of exhaustive compactions performed by the collector.
    long
    Return the total amount time spent performing exhaustive compaction.
    int
    Determine the number of Journal files used by this Journal.
    double
    Determine the high-water mark load factor for the entire journal.
    int
    Determine the high file count for this Journal.
    int
    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.
    long
    Determine the maximum allowable size, in bytes, of each individual file used to hold Journal data.
    default long
    Determine the longest completed or currently active single journal-file compaction attempt, including failed attempts.
    default long
    Determine the longest continuous FlashJournal congestion episode.
    default long
    Determine the longest physical FileChannel.force invocation.
    default long
    Determine the longest physical FileChannel.write invocation.
    int
    Determine the maximum number of Journal files.
    long
    Determine the maximum size (in bytes) of the buffers that can be held by the pool.
    long
    Determine the total amount, in bytes, of RAM that will be used for the Journal.
    int
    Determine the maximum allowable size, in bytes, of a Binary value.
    default long
    Determine when the FlashJournal collector most recently completed a scan and successfully finalized its results.
    default long
    Determine the most recently assigned, non-resetting FlashJournal file creation sequence number.
    default long
    Determine the creation time of the most recently created FlashJournal file.
    default long
    Determine the deletion time of the most recently deleted FlashJournal managed file.
    default long
    Determine the non-resetting creation sequence number assigned to the oldest currently active FlashJournal file.
    default long
    Determine the creation time of the oldest currently active FlashJournal file.
    int
    Determine the size (in bytes) of the buffers that are currently available in the pool.
    default long
    Determine the cumulative number of journal-file compaction attempts started by the collector.
    default long
    Determine the cumulative number of live bytes evacuated by successfully completed journal-file compactions.
    default long
    Determine the cumulative wall-clock time spent evacuating live values from journal files selected for compaction.
    default long
    Determine the number of FlashJournal congestion episodes.
    default long
    Determine the cumulative wall-clock time during which the FlashJournal was unable to accept new values because of write-backlog congestion.
    long
    Determine the amount of data currently stored by this Journal.
    default long
    Determine the number of FlashJournal files successfully created since statistics were reset.
    default long
    Determine the number of failed FlashJournal file or channel creation attempts since statistics were reset.
    default long
    Determine the number of managed FlashJournal files successfully deleted since statistics were reset.
    default long
    Determine the number of failed managed FlashJournal file deletion attempts since statistics were reset, including attempts for which File.delete() returned false.
    long
    Determine the number of bytes in the Journal files for this Journal.
    default long
    Determine the number of write errors thrown by physical FileChannel.write invocations.
    default long
    Determine the total number of physical FileChannel.force invocations attempted by the FlashJournal writer.
    default long
    Determine the number of write errors thrown by physical FileChannel.force invocations.
    default long
    Determine the cumulative time spent in physical FileChannel.force invocations.
    default long
    Determine the total number of bytes reported written by physical FileChannel.write invocations, including recovery writes.
    default long
    Determine the total number of I/O exceptions thrown by physical write or force operations.
    default long
    Determine the total number of physical FileChannel.write invocations attempted by the FlashJournal writer.
    default long
    Determine the number of recovery attempts made after a physical write or force operation failed.
    default long
    Determine the cumulative time spent in physical FileChannel.write invocations.
    boolean
    Determine if the journal will use direct buffers (NIO RAM) instead of on-heap buffers (byte arrays).
    void
    Reset 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 FlashJournalRM implementation.

      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 FlashJournalRM implementation.

      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 FlashJournalRM implementation.

      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 FlashJournalRM implementation.

      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 FlashJournalRM implementation.

      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 FlashJournalRM implementation.

      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 by resetStatistics().
      Returns:
      the creation time in epoch milliseconds, or zero if there is no active file, or -1 if 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 -1 if 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 by resetStatistics().
      Returns:
      the creation time in epoch milliseconds, or zero if no file has been created, or -1 if 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 -1 if 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 -1 if 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 -1 if 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 by resetStatistics().
      Returns:
      the deletion time in epoch milliseconds, or zero if no file has been deleted, or -1 if 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 -1 if 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 which File.delete() returned false.
      Returns:
      the failed file deletion count, or -1 if 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 by resetStatistics().
      Returns:
      the scan completion time in epoch milliseconds, or zero if no scan has completed, or -1 if unsupported
      Since:
      26.1.0.0
    • getTotalWriteOperationCount

      default long getTotalWriteOperationCount()
      Determine the total number of physical FileChannel.write invocations 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 physical FileChannel.write invocations, 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 physical FileChannel.write invocations.
      Returns:
      the cumulative write time in milliseconds
      Since:
      26.1.0.0
    • getMaximumWriteTime

      default long getMaximumWriteTime()
      Determine the longest physical FileChannel.write invocation.
      Returns:
      the maximum write time in milliseconds
      Since:
      26.1.0.0
    • getTotalForceCount

      default long getTotalForceCount()
      Determine the total number of physical FileChannel.force invocations 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 physical FileChannel.force invocations.
      Returns:
      the cumulative force time in milliseconds
      Since:
      26.1.0.0
    • getMaximumForceTime

      default long getMaximumForceTime()
      Determine the longest physical FileChannel.force invocation.
      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 physical FileChannel.write invocations.
      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 physical FileChannel.force invocations.
      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 RamJournalRM implementation.

      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 RamJournalRM implementation.

      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