LCOV - code coverage report
Current view: top level - pageserver/src/tenant - layer_map.rs (source / functions) Coverage Total Hit
Test: 322b88762cba8ea666f63cda880cccab6936bf37.info Lines: 74.2 % 593 440
Test Date: 2024-02-29 11:57:12 Functions: 73.1 % 67 49

Function Name Sort by function name Hit count Sort by function hit count
<pageserver::tenant::layer_map::InMemoryLayerHandle as core::fmt::Debug>::fmt 0
::clone 0
::eq 0
::fmt 0
::hash:: 0
<pageserver::tenant::layer_map::InMemoryLayerHandle>::get_end_lsn 0
<pageserver::tenant::layer_map::InMemoryLayerHandle>::get_lsn_floor 0
<pageserver::tenant::layer_map::LayerMap>::count_deltas::{closure#0} 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>::get_in_memory_layer 0
<pageserver::tenant::layer_map::NextLayerType as core::fmt::Debug>::fmt 0
<pageserver::tenant::layer_map::RangeSearchResult as core::fmt::Debug>::fmt 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::LayerMap>::dump 4
::dump 2
::dump::{closure#0} 2
<pageserver::tenant::layer_map::tests::LayerDesc as core::clone::Clone>::clone 10
<pageserver::tenant::layer_map::LayerMap>::find_in_memory_layer::<<pageserver::tenant::timeline::Timeline>::get_vectored_reconstruct_data_timeline::{closure#0}::{closure#0}> 20
<pageserver::tenant::layer_map::LayerMap as core::default::Default>::default 300
<pageserver::tenant::layer_map::BatchedUpdates>::remove_historic 302
<pageserver::tenant::layer_map::LayerMap>::remove_historic_noflush 302
<pageserver::tenant::layer_map::LayerMap>::get_level0_deltas 410
<pageserver::tenant::layer_map::LayerMap>::iter_historic_layers 422
<pageserver::tenant::layer_map::BatchedUpdates>::insert_historic 570
<pageserver::tenant::layer_map::LayerMap>::insert_historic_noflush 580
<pageserver::tenant::layer_map::LayerMap>::count_deltas::{closure#1} 600
<pageserver::tenant::layer_map::LayerMap>::is_reimage_worthy 600
<pageserver::tenant::layer_map::BatchedUpdates as core::ops::drop::Drop>::drop 970
<pageserver::tenant::layer_map::BatchedUpdates>::flush 970
<pageserver::tenant::layer_map::LayerMap>::batch_update 970
<pageserver::tenant::layer_map::LayerMap>::flush_updates 972
<pageserver::tenant::layer_map::LayerMap>::count_deltas 1200
<pageserver::tenant::layer_map::LayerMap>::is_l0 1512
<pageserver::tenant::layer_map::LayerMap>::remove_historic_noflush::{closure#0} 1650
<pageserver::tenant::layer_map::LayerMap>::image_layer_exists 1984
<pageserver::tenant::layer_map::LayerMap>::image_layer_exists::{closure#0} 1984
<pageserver::tenant::layer_map::LayerMap>::image_coverage 2448
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 3550
<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 3550
<pageserver::tenant::layer_map::LayerMap>::range_search 3552
<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 4468
<pageserver::tenant::layer_map::RangeSearchResult>::new 7090
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} 9228
<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} 9858
<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 10488
<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 10488
<pageserver::tenant::layer_map::NextLayerType>::next_change_at_key 13856
<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 14038
<pageserver::tenant::layer_map::LayerMap>::select_layer::{closure#1} 117775
<pageserver::tenant::layer_map::LayerMap>::select_layer::{closure#0} 159446
<pageserver::tenant::layer_map::SearchResult as core::fmt::Debug>::fmt 162900
::fmt 0
::eq 63000
::hash:: 99900
<pageserver::tenant::layer_map::LayerMap>::search 196110
<pageserver::tenant::layer_map::LayerMap>::select_layer 206496

Generated by: LCOV version 2.1-beta