Package org.rocksdb

Class PerfContext

All Implemented Interfaces:
AutoCloseable

public class PerfContext extends RocksObject
  • Constructor Details

    • PerfContext

      protected PerfContext(long nativeHandle)
  • Method Details

    • reset

      public void reset()
    • getUserKeyComparisonCount

      public long getUserKeyComparisonCount()
      Returns:
      total number of user key comparisons
    • getBlockCacheHitCount

      public long getBlockCacheHitCount()
      Returns:
      total number of block cache hits
    • getBlockReadCount

      public long getBlockReadCount()
      Returns:
      total number of block reads (with IO)
    • getBlockReadByte

      public long getBlockReadByte()
      Returns:
      total number of bytes from block reads
    • getBlockReadTime

      public long getBlockReadTime()
    • getBlockReadCpuTime

      public long getBlockReadCpuTime()
      Returns:
      total cpu time in nanos spent on block reads
    • getBlockCacheIndexHitCount

      public long getBlockCacheIndexHitCount()
      Returns:
      total number of index block hits
    • getBlockCacheStandaloneHandleCount

      public long getBlockCacheStandaloneHandleCount()
      Returns:
      total number of standalone handles lookup from secondary cache
    • getBlockCacheRealHandleCount

      public long getBlockCacheRealHandleCount()
      Returns:
      total number of real handles lookup from secondary cache that are inserted into primary cache
    • getIndexBlockReadCount

      public long getIndexBlockReadCount()
      Returns:
      total number of index block reads
    • getBlockCacheFilterHitCount

      public long getBlockCacheFilterHitCount()
      Returns:
      total number of filter block hits
    • getFilterBlockReadCount

      public long getFilterBlockReadCount()
      Returns:
      total number of filter block reads
    • getCompressionDictBlockReadCount

      public long getCompressionDictBlockReadCount()
      Returns:
      total number of compression dictionary block reads
    • getSecondaryCacheHitCount

      public long getSecondaryCacheHitCount()
      Returns:
      total number of secondary cache hits
    • getCompressedSecCacheInsertRealCount

      public long getCompressedSecCacheInsertRealCount()
      Returns:
      total number of real handles inserted into secondary cache
    • getCompressedSecCacheInsertDummyCount

      public long getCompressedSecCacheInsertDummyCount()
      Returns:
      total number of dummy handles inserted into secondary cache
    • getCompressedSecCacheUncompressedBytes

      public long getCompressedSecCacheUncompressedBytes()
      Returns:
      bytes for vals before compression in secondary cache
    • getCompressedSecCacheCompressedBytes

      public long getCompressedSecCacheCompressedBytes()
      Returns:
      bytes for vals after compression in secondary cache
    • getBlockChecksumTime

      public long getBlockChecksumTime()
      Returns:
      total nanos spent on block checksum
    • getBlockDecompressTime

      public long getBlockDecompressTime()
      Returns:
      total nanos spent on block decompression
    • getReadBytes

      public long getReadBytes()
      Returns:
      bytes for vals returned by Get
    • getMultigetReadBytes

      public long getMultigetReadBytes()
      Returns:
      bytes for vals returned by MultiGet
    • getIterReadBytes

      public long getIterReadBytes()
      Returns:
      bytes for keys/vals decoded by iterator
    • getBlobCacheHitCount

      public long getBlobCacheHitCount()
      Returns:
      total number of blob cache hits
    • getBlobReadCount

      public long getBlobReadCount()
      Returns:
      total number of blob reads (with IO)
    • getBlobReadByte

      public long getBlobReadByte()
      Returns:
      total number of bytes from blob reads
    • getBlobReadTime

      public long getBlobReadTime()
      Returns:
      total nanos spent on blob reads
    • getBlobChecksumTime

      public long getBlobChecksumTime()
      Returns:
      total nanos spent on blob checksum
    • getBlobDecompressTime

      public long getBlobDecompressTime()
      Returns:
      total nanos spent on blob decompression
    • getInternalKeySkippedCount

      public long getInternalKeySkippedCount()
      total number of internal keys skipped over during iteration. There are several reasons for it: 1. when calling Next(), the iterator is in the position of the previous key, so that we'll need to skip it. It means this counter will always be incremented in Next(). 2. when calling Next(), we need to skip internal entries for the previous keys that are overwritten. 3. when calling Next(), Seek() or SeekToFirst(), after previous key before calling Next(), the seek key in Seek() or the beginning for SeekToFirst(), there may be one or more deleted keys before the next valid key that the operation should place the iterator to. We need to skip both of the tombstone and updates hidden by the tombstones. The tombstones are not included in this counter, while previous updates hidden by the tombstones will be included here. 4. symmetric cases for Prev() and SeekToLast() internal_recent_skipped_count is not included in this counter.
    • getInternalDeleteSkippedCount

      public long getInternalDeleteSkippedCount()
      Total number of deletes and single deletes skipped over during iteration When calling Next(), Seek() or SeekToFirst(), after previous position before calling Next(), the seek key in Seek() or the beginning for SeekToFirst(), there may be one or more deleted keys before the next valid key. Every deleted key is counted once. We don't recount here if there are still older updates invalidated by the tombstones.
    • getInternalRecentSkippedCount

      public long getInternalRecentSkippedCount()
      How many times iterators skipped over internal keys that are more recent than the snapshot that iterator is using.
    • getInternalMergeCount

      public long getInternalMergeCount()
      How many merge operands were fed into the merge operator by iterators. Note: base values are not included in the count.
    • getInternalMergePointLookupCount

      public long getInternalMergePointLookupCount()
      How many merge operands were fed into the merge operator by point lookups. Note: base values are not included in the count.
    • getInternalRangeDelReseekCount

      public long getInternalRangeDelReseekCount()
      Number of times we reseeked inside a merging iterator, specifically to skip after or before a range of keys covered by a range deletion in a newer LSM component.
    • getSnapshotTime

      public long getSnapshotTime()
      Returns:
      total nanos spent on getting snapshot
    • getFromMemtableTime

      public long getFromMemtableTime()
      Returns:
      total nanos spent on querying memtables
    • getFromMemtableCount

      public long getFromMemtableCount()
      Returns:
      number of mem tables queried
    • getPostProcessTime

      public long getPostProcessTime()
      Returns:
      total nanos spent after Get() finds a key
    • getFromOutputFilesTime

      public long getFromOutputFilesTime()
      Returns:
      total nanos reading from output files
    • getSeekOnMemtableTime

      public long getSeekOnMemtableTime()
      Returns:
      total nanos spent on seeking memtable
    • getSeekOnMemtableCount

      public long getSeekOnMemtableCount()
      number of seeks issued on memtable (including SeekForPrev but not SeekToFirst and SeekToLast)
      Returns:
      number of seeks issued on memtable
    • getNextOnMemtableCount

      public long getNextOnMemtableCount()
      Returns:
      number of Next()s issued on memtable
    • getPrevOnMemtableCount

      public long getPrevOnMemtableCount()
      Returns:
      number of Prev()s issued on memtable
    • getSeekChildSeekTime

      public long getSeekChildSeekTime()
      Returns:
      total nanos spent on seeking child iters
    • getSeekChildSeekCount

      public long getSeekChildSeekCount()
      Returns:
      number of seek issued in child iterators
    • getSeekMinHeapTime

      public long getSeekMinHeapTime()
      Returns:
      total nanos spent on the merge min heap
    • getSeekMaxHeapTime

      public long getSeekMaxHeapTime()
      Returns:
      total nanos spent on the merge max heap
    • getSeekInternalSeekTime

      public long getSeekInternalSeekTime()
      Returns:
      total nanos spent on seeking the internal entries
    • getFindNextUserEntryTime

      public long getFindNextUserEntryTime()
      Returns:
      total nanos spent on iterating internal entries to find the next user entry
    • getWriteWalTime

      public long getWriteWalTime()
      Returns:
      total nanos spent on writing to WAL
    • getWriteMemtableTime

      public long getWriteMemtableTime()
      Returns:
      total nanos spent on writing to mem tables
    • getWriteDelayTime

      public long getWriteDelayTime()
      Returns:
      total nanos spent on delaying or throttling write
    • getWriteSchedulingFlushesCompactionsTime

      public long getWriteSchedulingFlushesCompactionsTime()
      Returns:
      total nanos spent on switching memtable/wal and scheduling flushes/compactions.
    • getWritePreAndPostProcessTime

      public long getWritePreAndPostProcessTime()
      Returns:
      total nanos spent on writing a record, excluding the above four things
    • getWriteThreadWaitNanos

      public long getWriteThreadWaitNanos()
      Returns:
      time spent waiting for other threads of the batch group
    • getDbMutexLockNanos

      public long getDbMutexLockNanos()
      Returns:
      time spent on acquiring DB mutex.
    • getDbConditionWaitNanos

      public long getDbConditionWaitNanos()
      Returns:
      Time spent on waiting with a condition variable created with DB mutex.
    • getMergeOperatorTimeNanos

      public long getMergeOperatorTimeNanos()
      Returns:
      Time spent on merge operator.
    • getReadIndexBlockNanos

      public long getReadIndexBlockNanos()
      Returns:
      Time spent on reading index block from block cache or SST file
    • getReadFilterBlockNanos

      public long getReadFilterBlockNanos()
      Returns:
      Time spent on reading filter block from block cache or SST file
    • getNewTableBlockIterNanos

      public long getNewTableBlockIterNanos()
      Returns:
      Time spent on creating data block iterator
    • getNewTableIteratorNanos

      public long getNewTableIteratorNanos()
      Returns:
      Time spent on creating a iterator of an SST file.
    • getBlockSeekNanos

      public long getBlockSeekNanos()
      Returns:
      Time spent on seeking a key in data/index blocks
    • getFindTableNanos

      public long getFindTableNanos()
      Returns:
      Time spent on finding or creating a table reader
    • getBloomMemtableHitCount

      public long getBloomMemtableHitCount()
      Returns:
      total number of mem table bloom hits
    • getBloomMemtableMissCount

      public long getBloomMemtableMissCount()
    • getBloomSstHitCount

      public long getBloomSstHitCount()
      Returns:
      total number of SST bloom hits
    • getBloomSstMissCount

      public long getBloomSstMissCount()
      Returns:
      total number of SST bloom misses
    • getKeyLockWaitTime

      public long getKeyLockWaitTime()
      Returns:
      Time spent waiting on key locks in transaction lock manager.
    • getKeyLockWaitCount

      public long getKeyLockWaitCount()
      Returns:
      number of times acquiring a lock was blocked by another transaction.
    • getEnvNewSequentialFileNanos

      public long getEnvNewSequentialFileNanos()
      Returns:
      Total time spent in Env filesystem operations. These are only populated when TimedEnv is used.
    • getEnvNewRandomAccessFileNanos

      public long getEnvNewRandomAccessFileNanos()
    • getEnvNewWritableFileNanos

      public long getEnvNewWritableFileNanos()
    • getEnvReuseWritableFileNanos

      public long getEnvReuseWritableFileNanos()
    • getEnvNewRandomRwFileNanos

      public long getEnvNewRandomRwFileNanos()
    • getEnvNewDirectoryNanos

      public long getEnvNewDirectoryNanos()
    • getEnvFileExistsNanos

      public long getEnvFileExistsNanos()
    • getEnvGetChildrenNanos

      public long getEnvGetChildrenNanos()
    • getEnvGetChildrenFileAttributesNanos

      public long getEnvGetChildrenFileAttributesNanos()
    • getEnvDeleteFileNanos

      public long getEnvDeleteFileNanos()
    • getEnvCreateDirNanos

      public long getEnvCreateDirNanos()
    • getEnvCreateDirIfMissingNanos

      public long getEnvCreateDirIfMissingNanos()
    • getEnvDeleteDirNanos

      public long getEnvDeleteDirNanos()
    • getEnvGetFileSizeNanos

      public long getEnvGetFileSizeNanos()
    • getEnvGetFileModificationTimeNanos

      public long getEnvGetFileModificationTimeNanos()
    • getEnvRenameFileNanos

      public long getEnvRenameFileNanos()
    • getEnvLinkFileNanos

      public long getEnvLinkFileNanos()
    • getEnvLockFileNanos

      public long getEnvLockFileNanos()
    • getEnvUnlockFileNanos

      public long getEnvUnlockFileNanos()
    • getEnvNewLoggerNanos

      public long getEnvNewLoggerNanos()
    • getGetCpuNanos

      public long getGetCpuNanos()
    • getIterNextCpuNanos

      public long getIterNextCpuNanos()
    • getIterPrevCpuNanos

      public long getIterPrevCpuNanos()
    • getIterSeekCpuNanos

      public long getIterSeekCpuNanos()
    • getEncryptDataNanos

      public long getEncryptDataNanos()
      Returns:
      Time spent in encrypting data. Populated when EncryptedEnv is used.
    • getDecryptDataNanos

      public long getDecryptDataNanos()
      Returns:
      Time spent in decrypting data. Populated when EncryptedEnv is used.
    • getNumberAsyncSeek

      public long getNumberAsyncSeek()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • toString

      public String toString(boolean excludeZeroCounters)
    • disposeInternal

      protected void disposeInternal(long handle)
      Specified by:
      disposeInternal in class RocksObject