LCOV - code coverage report
Current view: top level - pageserver/src/tenant - layer_map.rs (source / functions) Coverage Total Hit
Test: c639aa5f7ab62b43d647b10f40d15a15686ce8a9.info Lines: 78.0 % 563 439
Test Date: 2024-02-12 20:26:03 Functions: 79.7 % 59 47

Function Name Sort by function name Hit count Sort by function hit count
<pageserver::tenant::layer_map::LayerMap>::dump 0
::dump 0
::dump::{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::NextLayerType as core::fmt::Debug>::fmt 0
<pageserver::tenant::layer_map::OrderedSearchResult as core::cmp::PartialEq>::eq 0
<pageserver::tenant::layer_map::OrderedSearchResult as core::cmp::PartialOrd>::partial_cmp 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::{closure#0} 2
pageserver::tenant::layer_map::tests::ranged_search_on_empty_layer_map 2
pageserver::tenant::layer_map::tests::ranged_search_on_empty_layer_map::{closure#0} 2
<pageserver::tenant::layer_map::tests::LayerDesc as core::clone::Clone>::clone 10
<pageserver::tenant::layer_map::LayerMap as core::default::Default>::default 1594
<pageserver::tenant::layer_map::LayerMap>::get_level0_deltas 1643
<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 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}>>>>::new 3540
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>::range_search 3542
<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 4458
<pageserver::tenant::layer_map::BatchedUpdates>::remove_historic 5219
<pageserver::tenant::layer_map::LayerMap>::remove_historic_noflush 5219
<pageserver::tenant::layer_map::RangeSearchResult>::new 7080
<pageserver::tenant::layer_map::LayerMap>::iter_historic_layers 7104
<pageserver::tenant::layer_map::BatchedUpdates as core::ops::drop::Drop>::drop 7623
<pageserver::tenant::layer_map::BatchedUpdates>::flush 7623
<pageserver::tenant::layer_map::LayerMap>::batch_update 7623
<pageserver::tenant::layer_map::LayerMap>::flush_updates 7625
<pageserver::tenant::layer_map::SearchResult as core::fmt::Debug>::fmt 8230
::fmt 0
::eq 8230
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>::count_deltas::{closure#0} 8452
<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} 9218
<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} 9848
<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 10478
<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 10478
<pageserver::tenant::layer_map::NextLayerType>::next_change_at_key 13836
<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 14018
<pageserver::tenant::layer_map::LayerMap>::image_layer_exists 14982
<pageserver::tenant::layer_map::LayerMap>::image_layer_exists::{closure#0} 15885
<pageserver::tenant::layer_map::LayerMap>::remove_historic_noflush::{closure#0} 67741
<pageserver::tenant::layer_map::BatchedUpdates>::insert_historic 75550
<pageserver::tenant::layer_map::LayerMap>::insert_historic_noflush 75560
<pageserver::tenant::layer_map::OrderedSearchResult as core::cmp::Ord>::cmp 91470
<pageserver::tenant::layer_map::LayerMap>::select_layer::{closure#1} 2073855
<pageserver::tenant::layer_map::LayerMap>::count_deltas::{closure#1} 2396358
<pageserver::tenant::layer_map::LayerMap>::is_reimage_worthy 2404810
<pageserver::tenant::layer_map::LayerMap>::image_coverage 2429960
<pageserver::tenant::layer_map::LayerMap>::is_l0 2496325
<pageserver::tenant::layer_map::LayerMap>::count_deltas 4430788
<pageserver::tenant::layer_map::LayerMap>::select_layer::{closure#0} 16804845
<pageserver::tenant::layer_map::LayerMap>::select_layer 17023149
<pageserver::tenant::layer_map::LayerMap>::search 17026323

Generated by: LCOV version 2.1-beta