Package org.rocksdb

Class PerfContext

  • All Implemented Interfaces:
    java.lang.AutoCloseable

    public class PerfContext
    extends RocksObject
    • Constructor Detail

      • PerfContext

        protected PerfContext​(long nativeHandle)
    • Method Detail

      • 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 java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • toString

        public java.lang.String toString​(boolean excludeZeroCounters)