LCOV - code coverage report
Current view: top level - pageserver/src/tenant - layer_map.rs (source / functions) Coverage Total Hit
Test: 40847ed574e0fcb4c245504ae69f84bc64a0e184.info Lines: 73.1 % 568 415
Test Date: 2024-06-26 19:30:22 Functions: 80.4 % 51 41

Function Name Sort by function name Hit count Sort by function hit count
<pageserver::tenant::layer_map::BatchedUpdates as core::ops::drop::Drop>::drop 1598
<pageserver::tenant::layer_map::BatchedUpdates>::flush 1598
<pageserver::tenant::layer_map::BatchedUpdates>::insert_historic 1556
<pageserver::tenant::layer_map::BatchedUpdates>::remove_historic 434
<pageserver::tenant::layer_map::LayerMap>::batch_update 1598
<pageserver::tenant::layer_map::LayerMap>::count_deltas 14
<pageserver::tenant::layer_map::LayerMap>::count_deltas::{closure#0} 0
<pageserver::tenant::layer_map::LayerMap>::count_deltas::{closure#1} 0
<pageserver::tenant::layer_map::LayerMap>::dump 4
::dump 2
::dump::{closure#0} 2
<pageserver::tenant::layer_map::LayerMap>::find_in_memory_layer::<<pageserver::tenant::timeline::Timeline>::get_vectored_reconstruct_data_timeline::{closure#0}::{closure#0}> 288
<pageserver::tenant::layer_map::LayerMap>::find_in_memory_layer::<<pageserver::tenant::timeline::Timeline>::get_vectored_reconstruct_data_timeline::{closure#0}::{closure#0}>::{closure#0} 0
<pageserver::tenant::layer_map::LayerMap>::flush_updates 1600
<pageserver::tenant::layer_map::LayerMap>::get_difficulty 0
<pageserver::tenant::layer_map::LayerMap>::get_difficulty_map 0
<pageserver::tenant::layer_map::LayerMap>::get_difficulty_map::{closure#0} 0
<pageserver::tenant::layer_map::LayerMap>::get_difficulty_map_bruteforce 0
<pageserver::tenant::layer_map::LayerMap>::get_difficulty_map_bruteforce::{closure#0} 0
<pageserver::tenant::layer_map::LayerMap>::get_difficulty_map_bruteforce::{closure#1} 0
<pageserver::tenant::layer_map::LayerMap>::get_level0_deltas 370
<pageserver::tenant::layer_map::LayerMap>::image_coverage 14
<pageserver::tenant::layer_map::LayerMap>::image_layer_exists 11650
<pageserver::tenant::layer_map::LayerMap>::image_layer_exists::{closure#0} 11748
<pageserver::tenant::layer_map::LayerMap>::insert_historic_noflush 1566
<pageserver::tenant::layer_map::LayerMap>::is_l0 2308
<pageserver::tenant::layer_map::LayerMap>::is_reimage_worthy 0
<pageserver::tenant::layer_map::LayerMap>::iter_historic_layers 772
<pageserver::tenant::layer_map::LayerMap>::range_search 75630
<pageserver::tenant::layer_map::LayerMap>::remove_historic_noflush 434
<pageserver::tenant::layer_map::LayerMap>::remove_historic_noflush::{closure#0} 5524
<pageserver::tenant::layer_map::LayerMap>::search 282844
<pageserver::tenant::layer_map::LayerMap>::select_layer 357244
<pageserver::tenant::layer_map::LayerMap>::select_layer::{closure#0} 309856
<pageserver::tenant::layer_map::LayerMap>::select_layer::{closure#1} 253895
<pageserver::tenant::layer_map::NextLayerType>::next_change_at_key 141878
<pageserver::tenant::layer_map::RangeSearchCollector<either::Either<core::iter::adapters::chain::Chain<core::iter::sources::once::Once<(i128, core::option::Option<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>)>, core::iter::adapters::peekable::Peekable<core::iter::adapters::map::Map<core::iter::adapters::map::Map<rpds::map::red_black_tree_map::RangeIterPtr<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>, core::ops::range::Range<i128>, i128, archery::shared_pointer::kind::arc::ArcK>, fn(&archery::shared_pointer::SharedPointer<rpds::map::entry::Entry<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>>, archery::shared_pointer::kind::arc::ArcK>) -> (&i128, &core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>)>, <pageserver::tenant::layer_map::layer_coverage::LayerCoverage<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>>::range::{closure#0}>>>, core::iter::adapters::map::Map<core::iter::adapters::map::Map<rpds::map::red_black_tree_map::RangeIterPtr<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>, core::ops::range::Range<i128>, i128, archery::shared_pointer::kind::arc::ArcK>, fn(&archery::shared_pointer::SharedPointer<rpds::map::entry::Entry<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>>, archery::shared_pointer::kind::arc::ArcK>) -> (&i128, &core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>)>, <pageserver::tenant::layer_map::layer_coverage::LayerCoverage<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>>::range::{closure#0}>>>>::add_range 74516
<pageserver::tenant::layer_map::RangeSearchCollector<either::Either<core::iter::adapters::chain::Chain<core::iter::sources::once::Once<(i128, core::option::Option<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>)>, core::iter::adapters::peekable::Peekable<core::iter::adapters::map::Map<core::iter::adapters::map::Map<rpds::map::red_black_tree_map::RangeIterPtr<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>, core::ops::range::Range<i128>, i128, archery::shared_pointer::kind::arc::ArcK>, fn(&archery::shared_pointer::SharedPointer<rpds::map::entry::Entry<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>>, archery::shared_pointer::kind::arc::ArcK>) -> (&i128, &core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>)>, <pageserver::tenant::layer_map::layer_coverage::LayerCoverage<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>>::range::{closure#0}>>>, core::iter::adapters::map::Map<core::iter::adapters::map::Map<rpds::map::red_black_tree_map::RangeIterPtr<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>, core::ops::range::Range<i128>, i128, archery::shared_pointer::kind::arc::ArcK>, fn(&archery::shared_pointer::SharedPointer<rpds::map::entry::Entry<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>>, archery::shared_pointer::kind::arc::ArcK>) -> (&i128, &core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>)>, <pageserver::tenant::layer_map::layer_coverage::LayerCoverage<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>>::range::{closure#0}>>>>::advance 74516
<pageserver::tenant::layer_map::RangeSearchCollector<either::Either<core::iter::adapters::chain::Chain<core::iter::sources::once::Once<(i128, core::option::Option<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>)>, core::iter::adapters::peekable::Peekable<core::iter::adapters::map::Map<core::iter::adapters::map::Map<rpds::map::red_black_tree_map::RangeIterPtr<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>, core::ops::range::Range<i128>, i128, archery::shared_pointer::kind::arc::ArcK>, fn(&archery::shared_pointer::SharedPointer<rpds::map::entry::Entry<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>>, archery::shared_pointer::kind::arc::ArcK>) -> (&i128, &core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>)>, <pageserver::tenant::layer_map::layer_coverage::LayerCoverage<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>>::range::{closure#0}>>>, core::iter::adapters::map::Map<core::iter::adapters::map::Map<rpds::map::red_black_tree_map::RangeIterPtr<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>, core::ops::range::Range<i128>, i128, archery::shared_pointer::kind::arc::ArcK>, fn(&archery::shared_pointer::SharedPointer<rpds::map::entry::Entry<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>>, archery::shared_pointer::kind::arc::ArcK>) -> (&i128, &core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>)>, <pageserver::tenant::layer_map::layer_coverage::LayerCoverage<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>>::range::{closure#0}>>>>::choose_next_layer_type 150108
<pageserver::tenant::layer_map::RangeSearchCollector<either::Either<core::iter::adapters::chain::Chain<core::iter::sources::once::Once<(i128, core::option::Option<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>)>, core::iter::adapters::peekable::Peekable<core::iter::adapters::map::Map<core::iter::adapters::map::Map<rpds::map::red_black_tree_map::RangeIterPtr<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>, core::ops::range::Range<i128>, i128, archery::shared_pointer::kind::arc::ArcK>, fn(&archery::shared_pointer::SharedPointer<rpds::map::entry::Entry<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>>, archery::shared_pointer::kind::arc::ArcK>) -> (&i128, &core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>)>, <pageserver::tenant::layer_map::layer_coverage::LayerCoverage<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>>::range::{closure#0}>>>, core::iter::adapters::map::Map<core::iter::adapters::map::Map<rpds::map::red_black_tree_map::RangeIterPtr<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>, core::ops::range::Range<i128>, i128, archery::shared_pointer::kind::arc::ArcK>, fn(&archery::shared_pointer::SharedPointer<rpds::map::entry::Entry<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>>, archery::shared_pointer::kind::arc::ArcK>) -> (&i128, &core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>)>, <pageserver::tenant::layer_map::layer_coverage::LayerCoverage<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>>::range::{closure#0}>>>>::choose_next_layer_type::{closure#0} 73212
<pageserver::tenant::layer_map::RangeSearchCollector<either::Either<core::iter::adapters::chain::Chain<core::iter::sources::once::Once<(i128, core::option::Option<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>)>, core::iter::adapters::peekable::Peekable<core::iter::adapters::map::Map<core::iter::adapters::map::Map<rpds::map::red_black_tree_map::RangeIterPtr<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>, core::ops::range::Range<i128>, i128, archery::shared_pointer::kind::arc::ArcK>, fn(&archery::shared_pointer::SharedPointer<rpds::map::entry::Entry<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>>, archery::shared_pointer::kind::arc::ArcK>) -> (&i128, &core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>)>, <pageserver::tenant::layer_map::layer_coverage::LayerCoverage<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>>::range::{closure#0}>>>, core::iter::adapters::map::Map<core::iter::adapters::map::Map<rpds::map::red_black_tree_map::RangeIterPtr<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>, core::ops::range::Range<i128>, i128, archery::shared_pointer::kind::arc::ArcK>, fn(&archery::shared_pointer::SharedPointer<rpds::map::entry::Entry<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>>, archery::shared_pointer::kind::arc::ArcK>) -> (&i128, &core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>)>, <pageserver::tenant::layer_map::layer_coverage::LayerCoverage<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>>::range::{closure#0}>>>>::choose_next_layer_type::{closure#1} 60023
<pageserver::tenant::layer_map::RangeSearchCollector<either::Either<core::iter::adapters::chain::Chain<core::iter::sources::once::Once<(i128, core::option::Option<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>)>, core::iter::adapters::peekable::Peekable<core::iter::adapters::map::Map<core::iter::adapters::map::Map<rpds::map::red_black_tree_map::RangeIterPtr<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>, core::ops::range::Range<i128>, i128, archery::shared_pointer::kind::arc::ArcK>, fn(&archery::shared_pointer::SharedPointer<rpds::map::entry::Entry<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>>, archery::shared_pointer::kind::arc::ArcK>) -> (&i128, &core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>)>, <pageserver::tenant::layer_map::layer_coverage::LayerCoverage<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>>::range::{closure#0}>>>, core::iter::adapters::map::Map<core::iter::adapters::map::Map<rpds::map::red_black_tree_map::RangeIterPtr<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>, core::ops::range::Range<i128>, i128, archery::shared_pointer::kind::arc::ArcK>, fn(&archery::shared_pointer::SharedPointer<rpds::map::entry::Entry<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>>, archery::shared_pointer::kind::arc::ArcK>) -> (&i128, &core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>)>, <pageserver::tenant::layer_map::layer_coverage::LayerCoverage<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>>::range::{closure#0}>>>>::collect 75592
<pageserver::tenant::layer_map::RangeSearchCollector<either::Either<core::iter::adapters::chain::Chain<core::iter::sources::once::Once<(i128, core::option::Option<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>)>, core::iter::adapters::peekable::Peekable<core::iter::adapters::map::Map<core::iter::adapters::map::Map<rpds::map::red_black_tree_map::RangeIterPtr<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>, core::ops::range::Range<i128>, i128, archery::shared_pointer::kind::arc::ArcK>, fn(&archery::shared_pointer::SharedPointer<rpds::map::entry::Entry<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>>, archery::shared_pointer::kind::arc::ArcK>) -> (&i128, &core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>)>, <pageserver::tenant::layer_map::layer_coverage::LayerCoverage<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>>::range::{closure#0}>>>, core::iter::adapters::map::Map<core::iter::adapters::map::Map<rpds::map::red_black_tree_map::RangeIterPtr<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>, core::ops::range::Range<i128>, i128, archery::shared_pointer::kind::arc::ArcK>, fn(&archery::shared_pointer::SharedPointer<rpds::map::entry::Entry<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>>, archery::shared_pointer::kind::arc::ArcK>) -> (&i128, &core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>)>, <pageserver::tenant::layer_map::layer_coverage::LayerCoverage<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>>::range::{closure#0}>>>>::new 75592
<pageserver::tenant::layer_map::RangeSearchCollector<either::Either<core::iter::adapters::chain::Chain<core::iter::sources::once::Once<(i128, core::option::Option<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>)>, core::iter::adapters::peekable::Peekable<core::iter::adapters::map::Map<core::iter::adapters::map::Map<rpds::map::red_black_tree_map::RangeIterPtr<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>, core::ops::range::Range<i128>, i128, archery::shared_pointer::kind::arc::ArcK>, fn(&archery::shared_pointer::SharedPointer<rpds::map::entry::Entry<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>>, archery::shared_pointer::kind::arc::ArcK>) -> (&i128, &core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>)>, <pageserver::tenant::layer_map::layer_coverage::LayerCoverage<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>>::range::{closure#0}>>>, core::iter::adapters::map::Map<core::iter::adapters::map::Map<rpds::map::red_black_tree_map::RangeIterPtr<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>, core::ops::range::Range<i128>, i128, archery::shared_pointer::kind::arc::ArcK>, fn(&archery::shared_pointer::SharedPointer<rpds::map::entry::Entry<i128, core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>>, archery::shared_pointer::kind::arc::ArcK>) -> (&i128, &core::option::Option<(u64, alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>)>)>, <pageserver::tenant::layer_map::layer_coverage::LayerCoverage<alloc::sync::Arc<pageserver::tenant::storage_layer::layer_desc::PersistentLayerDesc>>>::range::{closure#0}>>>>::pad_range 76524
<pageserver::tenant::layer_map::RangeSearchResult>::new 79170
pageserver::tenant::layer_map::tests::assert_range_search_result_eq 3540
pageserver::tenant::layer_map::tests::assert_range_search_result_eq::{closure#0} 8230
pageserver::tenant::layer_map::tests::assert_range_search_result_eq::{closure#1} 8230
pageserver::tenant::layer_map::tests::brute_force_range_search 3540
pageserver::tenant::layer_map::tests::create_layer_map 2
pageserver::tenant::layer_map::tests::ranged_search 2
pageserver::tenant::layer_map::tests::ranged_search_on_empty_layer_map 2

Generated by: LCOV version 2.1-beta