LCOV - code coverage report
Current view: top level - storage_controller/src - tenant_shard.rs (source / functions) Coverage Total Hit
Test: 07bee600374ccd486c69370d0972d9035964fe68.info Lines: 71.1 % 1794 1276
Test Date: 2025-02-20 13:11:02 Functions: 46.3 % 136 63

Function Name Sort by function name Hit count Sort by function hit count
<<storage_controller::tenant_shard::ObservedState as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting 0
<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> 0
<::deserialize::__Field as serde::de::Deserialize>::deserialize::> 0
<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting 0
<::deserialize::__Visitor as serde::de::Visitor>::expecting 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> 0
<<storage_controller::tenant_shard::ObservedStateLocation as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting 0
<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> 0
<::deserialize::__Field as serde::de::Deserialize>::deserialize::> 0
<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting 0
<::deserialize::__Visitor as serde::de::Visitor>::expecting 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> 0
<<storage_controller::tenant_shard::TenantShard as serde::ser::Serialize>::serialize::__SerializeWith as serde::ser::Serialize>::serialize::<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> 0
<::serialize::__SerializeWith as serde::ser::Serialize>::serialize::<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec>> 0
<::serialize::__SerializeWith as serde::ser::Serialize>::serialize::, serde_json::ser::CompactFormatter>> 0
<storage_controller::tenant_shard::IntentState>::pop_secondary 0
<storage_controller::tenant_shard::IntentState>::single 0
<storage_controller::tenant_shard::ObservedState>::is_empty 0
<storage_controller::tenant_shard::ObservedState>::new 0
<storage_controller::tenant_shard::ObservedStateDelta>::node_id 0
<storage_controller::tenant_shard::ReconcilerWaiter>::get_status 0
<storage_controller::tenant_shard::ReconcilerWaiter>::wait_timeout 0
::wait_timeout 0
::wait_timeout::{closure#0} 0
<storage_controller::tenant_shard::ReconcilerWaiter>::wait_timeout::{closure#0}::{closure#1} 0
<storage_controller::tenant_shard::ReconcilerWaiter>::wait_timeout::{closure#0}::{closure#2} 0
<storage_controller::tenant_shard::TenantShard>::apply_observed_deltas::<core::iter::adapters::flatten::FlatMap<alloc::vec::into_iter::IntoIter<storage_controller::tenant_shard::ObservedStateDelta>, core::option::Option<storage_controller::tenant_shard::ObservedStateDelta>, <storage_controller::service::Service>::process_result::{closure#0}>> 0
::apply_observed_deltas::, core::option::Option, ::process_result::{closure#0}>, ::process_result::{closure#1}>> 0
::apply_observed_deltas::, core::option::Option, ::process_result::{closure#0}>> 0
<storage_controller::tenant_shard::TenantShard>::apply_observed_deltas::<core::iter::adapters::flatten::FlatMap<alloc::vec::into_iter::IntoIter<storage_controller::tenant_shard::ObservedStateDelta>, core::option::Option<storage_controller::tenant_shard::ObservedStateDelta>, <storage_controller::service::Service>::process_result::{closure#0}>>::{closure#0} 0
::apply_observed_deltas::, core::option::Option, ::process_result::{closure#0}>, ::process_result::{closure#1}>>::{closure#0} 0
::apply_observed_deltas::, core::option::Option, ::process_result::{closure#0}>>::{closure#0} 0
<storage_controller::tenant_shard::TenantShard>::apply_observed_deltas::<core::iter::adapters::flatten::FlatMap<alloc::vec::into_iter::IntoIter<storage_controller::tenant_shard::ObservedStateDelta>, core::option::Option<storage_controller::tenant_shard::ObservedStateDelta>, <storage_controller::service::Service>::process_result::{closure#0}>>::{closure#1} 0
::apply_observed_deltas::, core::option::Option, ::process_result::{closure#0}>, ::process_result::{closure#1}>>::{closure#1} 0
::apply_observed_deltas::, core::option::Option, ::process_result::{closure#0}>>::{closure#1} 0
<storage_controller::tenant_shard::TenantShard>::apply_observed_deltas::<core::iter::adapters::flatten::FlatMap<alloc::vec::into_iter::IntoIter<storage_controller::tenant_shard::ObservedStateDelta>, core::option::Option<storage_controller::tenant_shard::ObservedStateDelta>, <storage_controller::service::Service>::process_result::{closure#0}>>::{closure#2} 0
::apply_observed_deltas::, core::option::Option, ::process_result::{closure#0}>, ::process_result::{closure#1}>>::{closure#2} 0
::apply_observed_deltas::, core::option::Option, ::process_result::{closure#0}>>::{closure#2} 0
<storage_controller::tenant_shard::TenantShard>::attached_locations 0
<storage_controller::tenant_shard::TenantShard>::attached_locations::{closure#0} 0
<storage_controller::tenant_shard::TenantShard>::attached_locations::{closure#1} 0
<storage_controller::tenant_shard::TenantShard>::attached_locations::{closure#2} 0
<storage_controller::tenant_shard::TenantShard>::cancel_reconciler 0
<storage_controller::tenant_shard::TenantShard>::deref_node 0
<storage_controller::tenant_shard::TenantShard>::deref_node::{closure#0} 0
<storage_controller::tenant_shard::TenantShard>::dirty 0
<storage_controller::tenant_shard::TenantShard>::dirty::{closure#0} 0
<storage_controller::tenant_shard::TenantShard>::dirty::{closure#0}::{closure#0} 0
<storage_controller::tenant_shard::TenantShard>::ensure_sequence_ahead 0
<storage_controller::tenant_shard::TenantShard>::ensure_sequence_ahead::{closure#0} 0
<storage_controller::tenant_shard::TenantShard>::from_persistent 0
<storage_controller::tenant_shard::TenantShard>::from_persistent::{closure#0} 0
<storage_controller::tenant_shard::TenantShard>::future_reconcile_waiter 0
<storage_controller::tenant_shard::TenantShard>::get_scheduling_policy 0
<storage_controller::tenant_shard::TenantShard>::get_waiter 0
<storage_controller::tenant_shard::TenantShard>::is_attached_outside_preferred_az 0
<storage_controller::tenant_shard::TenantShard>::is_attached_outside_preferred_az::{closure#0} 0
<storage_controller::tenant_shard::TenantShard>::reconcile 0
<storage_controller::tenant_shard::TenantShard>::reconcile::{closure#0} 0
<storage_controller::tenant_shard::TenantShard>::reconcile_complete 0
<storage_controller::tenant_shard::TenantShard>::reschedule_to_secondary 0
<storage_controller::tenant_shard::TenantShard>::set_last_error 0
<storage_controller::tenant_shard::TenantShard>::set_preferred_az 0
<storage_controller::tenant_shard::TenantShard>::set_scheduling_policy 0
<storage_controller::tenant_shard::TenantShard>::spawn_reconciler::{closure#0} 0
<storage_controller::tenant_shard::TenantShard>::spawn_reconciler::{closure#0}::{closure#0} 0
<storage_controller::tenant_shard::TenantShard>::stably_attached 0
<storage_controller::tenant_shard::TenantShard>::to_persistent 0
<storage_controller::tenant_shard::TenantShard>::to_persistent::{closure#0} 0
<storage_controller::tenant_shard::TenantShard>::to_persistent::{closure#1} 0
<storage_controller::tenant_shard::TenantShard>::to_persistent::{closure#2} 0
storage_controller::tenant_shard::read_last_error::<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>, alloc::sync::Arc<storage_controller::reconciler::ReconcileError>> 0
storage_controller::tenant_shard::read_last_error::<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec>, alloc::sync::Arc> 0
storage_controller::tenant_shard::read_last_error::, serde_json::ser::CompactFormatter>, alloc::sync::Arc> 0
storage_controller::tenant_shard::read_last_error::<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>, alloc::sync::Arc<storage_controller::reconciler::ReconcileError>>::{closure#0} 0
storage_controller::tenant_shard::read_last_error::<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec>, alloc::sync::Arc>::{closure#0} 0
storage_controller::tenant_shard::read_last_error::, serde_json::ser::CompactFormatter>, alloc::sync::Arc>::{closure#0} 0
<storage_controller::tenant_shard::TenantShard>::intent_from_observed 1
<storage_controller::tenant_shard::TenantShard>::optimize_attachment::{closure#2} 1
storage_controller::tenant_shard::tests::initial_scheduling_is_optimal 1
storage_controller::tenant_shard::tests::intent_from_observed 1
storage_controller::tenant_shard::tests::optimize_add_nodes 1
storage_controller::tenant_shard::tests::optimize_attachment_marginal 1
storage_controller::tenant_shard::tests::optimize_attachment_multistep 1
storage_controller::tenant_shard::tests::optimize_attachment_simple 1
storage_controller::tenant_shard::tests::optimize_attachment_simple::make_schedule_context 1
storage_controller::tenant_shard::tests::optimize_removes_secondary 1
storage_controller::tenant_shard::tests::optimize_secondary 1
storage_controller::tenant_shard::tests::random_az_shard_scheduling 1
storage_controller::tenant_shard::tests::scheduling_mode 1
storage_controller::tenant_shard::tests::tenant_ha_scheduling 1
storage_controller::tenant_shard::tests::tenant_secondary_scheduling 1
<storage_controller::tenant_shard::TenantShard>::do_schedule::{closure#0} 2
<storage_controller::tenant_shard::TenantShard>::intent_from_observed::{closure#0} 2
<storage_controller::tenant_shard::TenantShard>::intent_from_observed::{closure#1} 2
<storage_controller::tenant_shard::TenantShard>::intent_from_observed::{closure#2} 2
<storage_controller::tenant_shard::TenantShard>::optimize_attachment::{closure#3} 2
<storage_controller::tenant_shard::TenantShard>::preferred_secondary::{closure#0} 2
<storage_controller::tenant_shard::TenantShard>::preferred_secondary::{closure#1} 2
<storage_controller::tenant_shard::TenantShard>::maybe_optimizable 3
storage_controller::tenant_shard::tests::optimize_attachment_multistep::make_schedule_context 3
storage_controller::tenant_shard::tests::optimize_til_idle 3
storage_controller::tenant_shard::tests::initial_scheduling_is_optimal::{closure#0} 4
storage_controller::tenant_shard::tests::initial_scheduling_is_optimal::{closure#1} 4
storage_controller::tenant_shard::tests::optimize_attachment_marginal::make_schedule_context 4
<storage_controller::tenant_shard::IntentState>::promote_attached 6
<storage_controller::tenant_shard::IntentState>::demote_attached 7
<storage_controller::tenant_shard::IntentState>::remove_secondary 8
<storage_controller::tenant_shard::TenantShard>::optimize_attachment::{closure#4} 8
<storage_controller::tenant_shard::TenantShard>::optimize_attachment::{closure#0} 10
<storage_controller::tenant_shard::TenantShard>::optimize_attachment::{closure#1} 10
<storage_controller::tenant_shard::IntentState>::remove_secondary::{closure#0} 11
storage_controller::tenant_shard::tests::make_test_tenant_shard 11
<storage_controller::tenant_shard::IntentState>::promote_attached::{closure#0} 13
<storage_controller::tenant_shard::TenantShard>::apply_optimization 14
<storage_controller::tenant_shard::TenantShard>::find_better_location::<storage_controller::scheduler::AttachedShardTag>::{closure#0} 23
::find_better_location::::{closure#0} 7
::find_better_location::::{closure#0} 16
<storage_controller::tenant_shard::TenantShard>::find_better_location::<storage_controller::scheduler::AttachedShardTag> 47
::find_better_location:: 15
::find_better_location:: 32
<storage_controller::tenant_shard::TenantShard>::is_better_location::<storage_controller::scheduler::AttachedShardTag> 63
::is_better_location:: 7
::is_better_location:: 56
storage_controller::tenant_shard::tests::make_test_tenant 5004
storage_controller::tenant_shard::tests::make_test_tenant_with_id 5007
storage_controller::tenant_shard::tests::random_az_shard_scheduling::{closure#0} 12500
<storage_controller::tenant_shard::TenantShard>::preferred_az 12508
storage_controller::tenant_shard::tests::make_test_tenant_with_id::{closure#0} 12522
<storage_controller::tenant_shard::IntentState>::get_attached 12618
<storage_controller::tenant_shard::IntentState>::get_secondary 12696
<storage_controller::tenant_shard::TenantShard>::preferred_secondary 12831
<storage_controller::tenant_shard::TenantShard>::schedule_attached 12831
<storage_controller::tenant_shard::TenantShard>::do_schedule 12835
<storage_controller::tenant_shard::TenantShard as core::ops::drop::Drop>::drop 12841
<storage_controller::tenant_shard::TenantShard>::new 12841
<storage_controller::tenant_shard::IntentState>::push_secondary 12845
<storage_controller::tenant_shard::IntentState>::clear 12857
<storage_controller::tenant_shard::IntentState>::clear_secondary 12857
<storage_controller::tenant_shard::IntentState>::set_attached 12857
<storage_controller::tenant_shard::IntentState as core::ops::drop::Drop>::drop 12858
<storage_controller::tenant_shard::IntentState>::new 12858
<storage_controller::tenant_shard::IntentState>::all_pageservers 12897

Generated by: LCOV version 2.1-beta