Interface JournalMBean

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      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 getBacklogCount()
      Determine the number of serialized values that have not yet been persisted to disk.
      int getBacklogSize()
      Determine the total size in bytes of the serialized values that have not yet been persisted to disk.
      int getBinaryStoreCount()
      Determine the number of active BinaryStore objects that are using this Journal.
      int getBufferSize()
      Determine the size of the buffers used to write a chunk of data at a time to an underlying journal file.
      double getCollectorLoadFactor()
      Determine the load factor threshold at which files become eligible for garbage collection (compaction).
      int getCompactionCount()
      Determine the number of compactions (garbage collections) performed by this journal.
      double getCurrentCollectorLoadFactor()
      Determine the current load factor threshold for the journal.
      int getExhaustiveCompactionCount()
      Determine the total number of exhaustive compactions performed by the collector.
      long getExhaustiveCompactionTime()
      Return the total amount time spent performing exhaustive compaction.
      int getFileCount()
      Determine the number of Journal files used by this Journal.
      double getHighestLoadFactor()
      Determine the high-water mark load factor for the entire journal.
      int getHighFileCount()
      Determine the high file count for this Journal.
      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.
      long getMaxFileSize()
      Determine the maximum allowable size, in bytes, of each individual file used to hold Journal data.
      int getMaxJournalFilesNumber()
      Determine the maximum number of Journal files.
      long getMaxPoolSize()
      Determine the maximum size (in bytes) of the buffers that can be held by the pool.
      long getMaxTotalRam()
      Determine the total amount, in bytes, of RAM that will be used for the Journal.
      int getMaxValueSize()
      Determine the maximum allowable size, in bytes, of a Binary value.
      int getPoolSize()
      Determine the size (in bytes) of the buffers that are currently available in the pool.
      long getTotalDataSize()
      Determine the amount of data currently stored by this Journal.
      long getTotalFileSize()
      Determine the number of bytes in the Journal files for this Journal.
      boolean isNioRam()
      Determine if the journal will use direct buffers (NIO RAM) instead of on-heap buffers (byte arrays).
      void resetStatistics()
      Reset the journal statistics.
    • Method Detail

      • 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
      • 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 compactions (garbage collections) performed by this journal.
        Returns:
        the number of compactions
      • 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