Skip to content

Instantly share code, notes, and snippets.

@mdcallag
Last active April 7, 2022 01:26
Show Gist options
  • Save mdcallag/702854976ffaf15d424343f30426b1e9 to your computer and use it in GitHub Desktop.
Save mdcallag/702854976ffaf15d424343f30426b1e9 to your computer and use it in GitHub Desktop.
v6.0.2
16.83% db_bench db_bench.v6.0.2 [.] rocksdb::IndexBlockIter::Seek
14.69% db_bench db_bench.v6.0.2 [.] rocksdb::DataBlockIter::Seek
11.14% db_bench db_bench.v6.0.2 [.] rocksdb::LRUHandleTable::FindPointer
6.67% db_bench libc-2.31.so [.] __memcmp_avx2_movbe
3.98% db_bench db_bench.v6.0.2 [.] rocksdb::Block::NewIterator<rocksdb::DataBlockIter>
3.66% db_bench db_bench.v6.0.2 [.] rocksdb::LRUCacheShard::Lookup
3.51% db_bench db_bench.v6.0.2 [.] rocksdb::(anonymous namespace)::FullFilterBitsReader::MayMatch
3.13% db_bench db_bench.v6.0.2 [.] rocksdb::(anonymous namespace)::BytewiseComparatorImpl::Compare
2.94% db_bench libpthread-2.31.so [.] __pthread_mutex_unlock
2.92% db_bench db_bench.v6.0.2 [.] std::__lower_bound<rocksdb::FdWithKeyRange*, ...>
2.14% db_bench db_bench.v6.0.2 [.] rocksdb::LRUCacheShard::LRU_Insert
2.00% db_bench db_bench.v6.0.2 [.] rocksdb::(anonymous namespace)::FilePicker::GetNextFile
1.73% db_bench libpthread-2.31.so [.] __pthread_mutex_lock
1.65% db_bench db_bench.v6.0.2 [.] rocksdb::BlockBasedTable::Get
1.31% db_bench db_bench.v6.0.2 [.] rocksdb::Version::Get
1.28% db_bench db_bench.v6.0.2 [.] rocksdb::Stats::FinishedOps
1.27% db_bench db_bench.v6.0.2 [.] rocksdb::ShardedCache::Lookup
1.22% db_bench libc-2.31.so [.] __memset_avx2_unaligned_erms
1.16% db_bench db_bench.v6.0.2 [.] rocksdb::Benchmark::ReadRandom
v6.28.2
12.73% db_bench db_bench.v6.28.2 [.] rocksdb::IndexBlockIter::SeekImpl
8.76% db_bench db_bench.v6.28.2 [.] rocksdb::LRUHandleTable::FindPointer
7.39% db_bench db_bench.v6.28.2 [.] rocksdb::DataBlockIter::NextImpl
6.42% db_bench db_bench.v6.28.2 [.] rocksdb::DataBlockIter::SeekImpl
4.82% db_bench libc-2.31.so [.] __memcmp_avx2_movbe
3.59% db_bench db_bench.v6.28.2 [.] rocksdb::Block::NewDataIterator
3.13% db_bench db_bench.v6.28.2 [.] rocksdb::LRUCacheShard::LRU_Remove
3.00% db_bench libjemalloc.so.2 [.] malloc_usable_size
2.90% db_bench db_bench.v6.28.2 [.] rocksdb::Version::Get
2.89% db_bench db_bench.v6.28.2 [.] rocksdb::BlockBasedTable::Get
2.73% db_bench db_bench.v6.28.2 [.] rocksdb::(anonymous namespace)::FastLocalBloomBitsReader::MayMatch
2.54% db_bench db_bench.v6.28.2 [.] std::__lower_bound<rocksdb::FdWithKeyRange*, ...>
1.94% db_bench libpthread-2.31.so [.] __pthread_mutex_unlock
1.85% db_bench db_bench.v6.28.2 [.] rocksdb::BlockIter<rocksdb::Slice>::CompareCurrentKey
1.80% db_bench db_bench.v6.28.2 [.] rocksdb::(anonymous namespace)::BytewiseComparatorImpl::Compare
1.60% db_bench db_bench.v6.28.2 [.] rocksdb::BlockIter<rocksdb::IndexValue>::CompareCurrentKey
1.60% db_bench libpthread-2.31.so [.] __pthread_mutex_lock
1.60% db_bench db_bench.v6.28.2 [.] rocksdb::LRUCacheShard::MaintainPoolSize
1.18% db_bench db_bench.v6.28.2 [.] rocksdb::Benchmark::ReadRandom
1.09% db_bench db_bench.v6.28.2 [.] rocksdb::Stats::FinishedOps
1.01% db_bench db_bench.v6.28.2 [.] rocksdb::TableCache::Get
v6.0.2 LRU
11.14% db_bench db_bench.v6.0.2 [.] rocksdb::LRUHandleTable::FindPointer
3.66% db_bench db_bench.v6.0.2 [.] rocksdb::LRUCacheShard::Lookup
2.14% db_bench db_bench.v6.0.2 [.] rocksdb::LRUCacheShard::LRU_Insert
0.40% db_bench db_bench.v6.0.2 [.] rocksdb::LRUCacheShard::Release
0.10% db_bench db_bench.v6.0.2 [.] rocksdb::LRUCache::GetShard
0.05% db_bench db_bench.v6.0.2 [.] rocksdb::LRUCache::GetHash
0.03% db_bench db_bench.v6.0.2 [.] rocksdb::LRUCache::Value
0.02% db_bench db_bench.v6.0.2 [.] rocksdb::LRUCache::GetCharge
v6.28.2 LRU
8.76% db_bench db_bench.v6.28.2 [.] rocksdb::LRUHandleTable::FindPointer
3.13% db_bench db_bench.v6.28.2 [.] rocksdb::LRUCacheShard::LRU_Remove
1.60% db_bench db_bench.v6.28.2 [.] rocksdb::LRUCacheShard::MaintainPoolSize
0.55% db_bench db_bench.v6.28.2 [.] rocksdb::LRUCacheShard::LRU_Insert
0.35% db_bench db_bench.v6.28.2 [.] rocksdb::LRUCacheShard::Lookup
0.34% db_bench db_bench.v6.28.2 [.] rocksdb::LRUCacheShard::Release
0.08% db_bench db_bench.v6.28.2 [.] rocksdb::LRUCache::GetShard
0.04% db_bench db_bench.v6.28.2 [.] rocksdb::LRUCache::GetHash
0.03% db_bench db_bench.v6.28.2 [.] rocksdb::LRUCache::Value
0.02% db_bench db_bench.v6.28.2 [.] rocksdb::LRUCacheShard::Release
0.02% db_bench db_bench.v6.28.2 [.] rocksdb::LRUCache::GetCharge
v6.0.2 joined to v6.28.2 by function name
v6.0% v6.28%
------ ------
16.83% 12.73% rocksdb::IndexBlockIter::Seek
14.69% 6.42% rocksdb::DataBlockIter::Seek
11.14% 8.76% rocksdb::LRUHandleTable::FindPointer
6.67% 4.82% __memcmp_avx2_movbe
3.98% rocksdb::Block::NewIterator<rocksdb::DataBlockIter>
3.66% 0.35% rocksdb::LRUCacheShard::Lookup
3.51% rocksdb::(anonymous namespace)::FullFilterBitsReader::MayMatch
3.13% 1.80% rocksdb::(anonymous namespace)::BytewiseComparatorImpl::Compare
2.94% 1.94% __pthread_mutex_unlock
2.92% std::__lower_bound<rocksdb::FdWithKeyRange*, ...>
2.14% 0.55% rocksdb::LRUCacheShard::LRU_Insert
2.00% rocksdb::(anonymous namespace)::FilePicker::GetNextFile
1.73% 1.60% __pthread_mutex_lock
1.65% 2.89% rocksdb::BlockBasedTable::Get
1.31% 2.90% rocksdb::Version::Get
1.28% 1.09% rocksdb::Stats::FinishedOps
1.27% 0.94% rocksdb::ShardedCache::Lookup
1.22% 0.99% __memset_avx2_unaligned_erms
1.16% 1.18% rocksdb::Benchmark::ReadRandom
v6.28.2 joined to v6.0.2 by function name
v6.0% v6.28%
------ ------
12.73% rocksdb::IndexBlockIter::SeekImpl
11.14% 8.76% rocksdb::LRUHandleTable::FindPointer
7.39% rocksdb::DataBlockIter::NextImpl
6.42% rocksdb::DataBlockIter::SeekImpl
6.67% 4.82% __memcmp_avx2_movbe
3.59% rocksdb::Block::NewDataIterator
3.13% rocksdb::LRUCacheShard::LRU_Remove
3.00% malloc_usable_size
1.31% 2.90% rocksdb::Version::Get
1.65% 2.89% rocksdb::BlockBasedTable::Get
2.73% rocksdb::(anonymous namespace)::FastLocalBloomBitsReader::MayMatch
2.54% std::__lower_bound<rocksdb::FdWithKeyRange*, ...>
2.94% 1.94% __pthread_mutex_unlock
1.85% rocksdb::BlockIter<rocksdb::Slice>::CompareCurrentKey
3.13% 1.80% rocksdb::(anonymous namespace)::BytewiseComparatorImpl::Compare
1.60% rocksdb::BlockIter<rocksdb::IndexValue>::CompareCurrentKey
1.73% 1.60% __pthread_mutex_lock
1.60% rocksdb::LRUCacheShard::MaintainPoolSize
1.16% 1.18% rocksdb::Benchmark::ReadRandom
1.28% 1.09% rocksdb::Stats::FinishedOps
0.97% 1.01% rocksdb::TableCache::Get
The call stack for malloc_usable_size is:
malloc_usable_size;rocksdb::LRUCacheShard::Lookup;rocksdb::ShardedCache::Lookup;rocksdb::BlockBasedTable::GetEntryFromCache;rocksdb::BlockBasedTable::GetDataBlockFromCache<rocksdb::Block>;rocksdb::BlockBasedTable::MaybeReadBlockAndLoadToCache<rocksdb::Block>;rocksdb::BlockBasedTable::RetrieveBlock<rocksdb::Block>;rocksdb::BlockBasedTable::NewDataBlockIterator<rocksdb::DataBlockIter>;rocksdb::BlockBasedTable::Get;rocksdb::TableCache::Get;rocksdb::Version::Get;rocksdb::DBImpl::GetImpl;rocksdb::DBImpl::Get;rocksdb::Benchmark::ReadRandom;rocksdb::Benchmark::ThreadBody;rocksdb::(anon)::StartThreadWrapper;start_thread
The call to malloc_usable_size is from LRU_Remove calling CalcTotalCharge
* https://github.com/facebook/rocksdb/blob/6.28.fb/cache/lru_cache.cc#L225
* https://github.com/facebook/rocksdb/blob/6.28.fb/cache/lru_cache.h#L216
* TODO -- do a test with ROCKSDB_MALLOC_USABLE_CHAR_SIZE disabled
* can the size be computed once and stored in LRUHandle?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment