LCOV - code coverage report
Current view: top level - pageserver/src/tenant - layer_map.rs (source / functions) Coverage Total Hit
Test: b837401fb09d2d9818b70e630fdb67e9799b7b0d.info Lines: 71.3 % 568 405
Test Date: 2024-04-18 15:32:49 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::LayerMap>::count_deltas 2
<pageserver::tenant::layer_map::LayerMap>::image_coverage 2
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>::find_in_memory_layer::<<pageserver::tenant::timeline::Timeline>::get_vectored_reconstruct_data_timeline::{closure#0}::{closure#0}> 32
<pageserver::tenant::layer_map::BatchedUpdates>::remove_historic 450
<pageserver::tenant::layer_map::LayerMap>::remove_historic_noflush 450
<pageserver::tenant::layer_map::LayerMap>::get_level0_deltas 512
<pageserver::tenant::layer_map::LayerMap>::iter_historic_layers 536
<pageserver::tenant::layer_map::BatchedUpdates>::insert_historic 964
<pageserver::tenant::layer_map::LayerMap>::insert_historic_noflush 974
<pageserver::tenant::layer_map::BatchedUpdates as core::ops::drop::Drop>::drop 1256
<pageserver::tenant::layer_map::BatchedUpdates>::flush 1256
<pageserver::tenant::layer_map::LayerMap>::batch_update 1256
<pageserver::tenant::layer_map::LayerMap>::flush_updates 1258
<pageserver::tenant::layer_map::LayerMap>::is_l0 1666
<pageserver::tenant::layer_map::LayerMap>::image_layer_exists 2644
<pageserver::tenant::layer_map::LayerMap>::image_layer_exists::{closure#0} 2644
<pageserver::tenant::layer_map::LayerMap>::remove_historic_noflush::{closure#0} 2664
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::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 3556
<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 3556
<pageserver::tenant::layer_map::LayerMap>::range_search 3560
<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 4474
<pageserver::tenant::layer_map::RangeSearchResult>::new 7100
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::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} 9236
<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} 9860
<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 10496
<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 10496
<pageserver::tenant::layer_map::NextLayerType>::next_change_at_key 13870
<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 14052
<pageserver::tenant::layer_map::LayerMap>::select_layer::{closure#1} 117560
<pageserver::tenant::layer_map::LayerMap>::select_layer::{closure#0} 159180
<pageserver::tenant::layer_map::LayerMap>::search 195848
<pageserver::tenant::layer_map::LayerMap>::select_layer 206240

Generated by: LCOV version 2.1-beta