LCOV - code coverage report
Current view: top level - pageserver/src/tenant - layer_map.rs (source / functions) Coverage Total Hit
Test: 7f7f33f7e83a4c5fdeea2353bc364428e600a607.info Lines: 73.1 % 568 415
Test Date: 2024-06-23 20:41:59 Functions: 80.4 % 51 41

Function Name Sort by function name Hit count Sort by function hit count
<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>::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>::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>::is_reimage_worthy 0
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
<pageserver::tenant::layer_map::LayerMap>::dump 4
::dump 2
::dump::{closure#0} 2
<pageserver::tenant::layer_map::LayerMap>::count_deltas 14
<pageserver::tenant::layer_map::LayerMap>::image_coverage 14
<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>::get_level0_deltas 370
<pageserver::tenant::layer_map::BatchedUpdates>::remove_historic 426
<pageserver::tenant::layer_map::LayerMap>::remove_historic_noflush 426
<pageserver::tenant::layer_map::LayerMap>::iter_historic_layers 771
<pageserver::tenant::layer_map::BatchedUpdates>::insert_historic 1541
<pageserver::tenant::layer_map::LayerMap>::insert_historic_noflush 1551
<pageserver::tenant::layer_map::BatchedUpdates as core::ops::drop::Drop>::drop 1585
<pageserver::tenant::layer_map::BatchedUpdates>::flush 1585
<pageserver::tenant::layer_map::LayerMap>::batch_update 1585
<pageserver::tenant::layer_map::LayerMap>::flush_updates 1587
<pageserver::tenant::layer_map::LayerMap>::is_l0 2285
pageserver::tenant::layer_map::tests::assert_range_search_result_eq 3540
pageserver::tenant::layer_map::tests::brute_force_range_search 3540
<pageserver::tenant::layer_map::LayerMap>::remove_historic_noflush::{closure#0} 5524
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::LayerMap>::image_layer_exists 11650
<pageserver::tenant::layer_map::LayerMap>::image_layer_exists::{closure#0} 11748
<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} 60098
<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} 73184
<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 74488
<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 74488
<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 75564
<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 75564
<pageserver::tenant::layer_map::LayerMap>::range_search 75602
<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 76496
<pageserver::tenant::layer_map::RangeSearchResult>::new 79142
<pageserver::tenant::layer_map::NextLayerType>::next_change_at_key 141822
<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 150052
<pageserver::tenant::layer_map::LayerMap>::select_layer::{closure#1} 254802
<pageserver::tenant::layer_map::LayerMap>::search 283017
<pageserver::tenant::layer_map::LayerMap>::select_layer::{closure#0} 310097
<pageserver::tenant::layer_map::LayerMap>::select_layer 357389

Generated by: LCOV version 2.1-beta