From e286ce8850a8ee1ba02a41deb330543200127e98 Mon Sep 17 00:00:00 2001 From: iceseer Date: Thu, 30 Jan 2025 11:45:29 +0300 Subject: [PATCH 1/3] [feature] additional statistics Signed-off-by: iceseer --- core/network/impl/peer_view.cpp | 11 ++++++++++ core/network/peer_view.hpp | 5 +++++ .../validator/backing_implicit_view.hpp | 2 +- .../validator/impl/parachain_processor.cpp | 21 +++++++------------ .../prospective_parachains.cpp | 1 + .../statement_distribution.cpp | 18 ++++++++++++++++ .../statement_distribution.hpp | 2 ++ 7 files changed, 46 insertions(+), 14 deletions(-) diff --git a/core/network/impl/peer_view.cpp b/core/network/impl/peer_view.cpp index 58ee637abf..c888885e21 100644 --- a/core/network/impl/peer_view.cpp +++ b/core/network/impl/peer_view.cpp @@ -109,6 +109,17 @@ namespace kagome::network { return remote_view_.sharedAccess([](const auto &rv) { return rv.size(); }); } + void PeerView::printStoragesLoad() const { + const size_t remote_veiw_size = remote_view_.sharedAccess([](const auto &rv) { + return rv.size(); + }); + + SL_TRACE(logger, + "[Peer View storages statistics]:" + "\n\t-> remote_view={}", + remote_veiw_size); + } + void PeerView::removePeer(const PeerId &peer_id) { auto ref = remote_view_.exclusiveAccess( [&](auto &rv) -> std::optional { diff --git a/core/network/peer_view.hpp b/core/network/peer_view.hpp index 4bd26367aa..877f948bf6 100644 --- a/core/network/peer_view.hpp +++ b/core/network/peer_view.hpp @@ -88,6 +88,8 @@ namespace kagome::network { return my_view_stripped_; } + void printStoragesLoad() const; + private: void updateMyView(const primitives::BlockHeader &header); @@ -100,6 +102,9 @@ namespace kagome::network { View my_view_; View my_view_stripped_; SafeObject> remote_view_; + + log::Logger logger = + log::createLogger("PeerView", "parachain"); }; } // namespace kagome::network diff --git a/core/parachain/validator/backing_implicit_view.hpp b/core/parachain/validator/backing_implicit_view.hpp index dbaa04f226..60d8a1e2a2 100644 --- a/core/parachain/validator/backing_implicit_view.hpp +++ b/core/parachain/validator/backing_implicit_view.hpp @@ -115,7 +115,7 @@ namespace kagome::parachain { /// Trace print of all internal buffers. /// /// Usable for tracing memory consumption. - void printStoragesLoad() { + void printStoragesLoad() const { SL_TRACE(logger, "[Backing implicit view statistics]:" "\n\t-> leaves={}" diff --git a/core/parachain/validator/impl/parachain_processor.cpp b/core/parachain/validator/impl/parachain_processor.cpp index ee874c611a..268d91359e 100644 --- a/core/parachain/validator/impl/parachain_processor.cpp +++ b/core/parachain/validator/impl/parachain_processor.cpp @@ -404,17 +404,6 @@ namespace kagome::parachain { void ParachainProcessorImpl::onDeactivateBlocks( const primitives::events::RemoveAfterFinalizationParams &event) { - REINVOKE(*main_pool_handler_, onDeactivateBlocks, event); - - for (const auto &lost : event.removed) { - SL_TRACE(logger_, - "Remove from storages.(relay parent={}, number={})", - lost.hash, - lost.number); - - backing_store_->onDeactivateLeaf(lost.hash); - bitfield_store_->remove(lost.hash); - } } outcome::result> @@ -667,6 +656,8 @@ namespace kagome::parachain { for (const auto &l : lost) { our_current_state_.per_leaf.erase(l); pruned = our_current_state_.implicit_view->deactivate_leaf(l); + backing_store_->onDeactivateLeaf(l); + bitfield_store_->remove(l); } std::vector< @@ -2970,13 +2961,16 @@ namespace kagome::parachain { "\n\t-> per_candidate={}" "\n\t-> active_leaves={}" "\n\t-> collation_requests_cancel_handles={}" - "\n\t-> validator_side.fetched_candidates={}", + "\n\t-> validator_side.fetched_candidates={}" + "\n\t-> validator_side.blocked_from_seconding={}", our_current_state_.state_by_relay_parent.size(), our_current_state_.per_leaf.size(), our_current_state_.per_candidate.size(), our_current_state_.validator_side.active_leaves.size(), our_current_state_.collation_requests_cancel_handles.size(), - our_current_state_.validator_side.fetched_candidates.size()); + our_current_state_.validator_side.fetched_candidates.size(), + our_current_state_.validator_side.blocked_from_seconding.size()); + if (our_current_state_.implicit_view) { our_current_state_.implicit_view->printStoragesLoad(); } @@ -2984,6 +2978,7 @@ namespace kagome::parachain { bitfield_store_->printStoragesLoad(); backing_store_->printStoragesLoad(); av_store_->printStoragesLoad(); + statement_distribution->printStoragesLoad(); } void ParachainProcessorImpl::handle_advertisement( diff --git a/core/parachain/validator/prospective_parachains/prospective_parachains.cpp b/core/parachain/validator/prospective_parachains/prospective_parachains.cpp index e181011806..b6a1f7f38d 100644 --- a/core/parachain/validator/prospective_parachains/prospective_parachains.cpp +++ b/core/parachain/validator/prospective_parachains/prospective_parachains.cpp @@ -58,6 +58,7 @@ namespace kagome::parachain { "\n\t-> view.active_leaves={}", view().per_relay_parent.size(), view().active_leaves.size()); + view().implicit_view.printStoragesLoad(); } std::shared_ptr ProspectiveParachains::getBlockTree() { diff --git a/core/parachain/validator/statement_distribution/statement_distribution.cpp b/core/parachain/validator/statement_distribution/statement_distribution.cpp index 69cb83b2b0..c9f8ab131d 100644 --- a/core/parachain/validator/statement_distribution/statement_distribution.cpp +++ b/core/parachain/validator/statement_distribution/statement_distribution.cpp @@ -2422,6 +2422,24 @@ namespace kagome::parachain::statement_distribution { router->getValidationProtocol()->write(statement_to_peers, message_v2); } + void StatementDistribution::printStoragesLoad() { + SL_TRACE(logger, + "[Statement Distribution storages statistics]:" + "\n\t-> candidates.candidates={}" + "\n\t-> candidates.by_parent={}" + "\n\t-> per_relay_parent={}" + "\n\t-> peers={}", + candidates.candidates.size(), + candidates.by_parent.size(), + per_relay_parent.size(), + peers.size()); + + implicit_view.sharedAccess([](const auto &iv) { + iv.printStoragesLoad(); + }); + peer_view->printStoragesLoad(); + } + void StatementDistribution::share_local_statement( const primitives::BlockHash &relay_parent, const SignedFullStatementWithPVD &statement) { diff --git a/core/parachain/validator/statement_distribution/statement_distribution.hpp b/core/parachain/validator/statement_distribution/statement_distribution.hpp index 29d3e442d3..200e7973c2 100644 --- a/core/parachain/validator/statement_distribution/statement_distribution.hpp +++ b/core/parachain/validator/statement_distribution/statement_distribution.hpp @@ -129,6 +129,8 @@ namespace kagome::parachain::statement_distribution { void share_local_statement(const primitives::BlockHash &relay_parent, const SignedFullStatementWithPVD &statement); + void printStoragesLoad(); + private: struct ManifestImportSuccess { bool acknowledge; From 29e406a93f00645af77ca0bab3d3ba48754f9915 Mon Sep 17 00:00:00 2001 From: iceseer Date: Thu, 30 Jan 2025 11:47:17 +0300 Subject: [PATCH 2/3] formatting Signed-off-by: iceseer --- core/network/impl/peer_view.cpp | 5 ++--- core/network/peer_view.hpp | 3 +-- core/parachain/validator/impl/parachain_processor.cpp | 3 +-- .../statement_distribution/statement_distribution.cpp | 4 +--- 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/core/network/impl/peer_view.cpp b/core/network/impl/peer_view.cpp index c888885e21..79e47fd3c7 100644 --- a/core/network/impl/peer_view.cpp +++ b/core/network/impl/peer_view.cpp @@ -110,9 +110,8 @@ namespace kagome::network { } void PeerView::printStoragesLoad() const { - const size_t remote_veiw_size = remote_view_.sharedAccess([](const auto &rv) { - return rv.size(); - }); + const size_t remote_veiw_size = + remote_view_.sharedAccess([](const auto &rv) { return rv.size(); }); SL_TRACE(logger, "[Peer View storages statistics]:" diff --git a/core/network/peer_view.hpp b/core/network/peer_view.hpp index 877f948bf6..5b4ec853b2 100644 --- a/core/network/peer_view.hpp +++ b/core/network/peer_view.hpp @@ -103,8 +103,7 @@ namespace kagome::network { View my_view_stripped_; SafeObject> remote_view_; - log::Logger logger = - log::createLogger("PeerView", "parachain"); + log::Logger logger = log::createLogger("PeerView", "parachain"); }; } // namespace kagome::network diff --git a/core/parachain/validator/impl/parachain_processor.cpp b/core/parachain/validator/impl/parachain_processor.cpp index 268d91359e..7574d91786 100644 --- a/core/parachain/validator/impl/parachain_processor.cpp +++ b/core/parachain/validator/impl/parachain_processor.cpp @@ -403,8 +403,7 @@ namespace kagome::parachain { } void ParachainProcessorImpl::onDeactivateBlocks( - const primitives::events::RemoveAfterFinalizationParams &event) { - } + const primitives::events::RemoveAfterFinalizationParams &event) {} outcome::result> ParachainProcessorImpl::isParachainValidator( diff --git a/core/parachain/validator/statement_distribution/statement_distribution.cpp b/core/parachain/validator/statement_distribution/statement_distribution.cpp index c9f8ab131d..d8510b014e 100644 --- a/core/parachain/validator/statement_distribution/statement_distribution.cpp +++ b/core/parachain/validator/statement_distribution/statement_distribution.cpp @@ -2434,9 +2434,7 @@ namespace kagome::parachain::statement_distribution { per_relay_parent.size(), peers.size()); - implicit_view.sharedAccess([](const auto &iv) { - iv.printStoragesLoad(); - }); + implicit_view.sharedAccess([](const auto &iv) { iv.printStoragesLoad(); }); peer_view->printStoragesLoad(); } From 821c8b54be49d9fc2c4388aa25094d7633bde8a5 Mon Sep 17 00:00:00 2001 From: iceseer Date: Thu, 30 Jan 2025 12:27:12 +0300 Subject: [PATCH 3/3] formatting Signed-off-by: iceseer --- core/network/peer_view.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/core/network/peer_view.hpp b/core/network/peer_view.hpp index 5b4ec853b2..788ff8292d 100644 --- a/core/network/peer_view.hpp +++ b/core/network/peer_view.hpp @@ -14,6 +14,7 @@ #include "blockchain/block_tree.hpp" #include "crypto/type_hasher.hpp" #include "injector/lazy.hpp" +#include "log/logger.hpp" #include "network/types/collator_messages.hpp" #include "outcome/outcome.hpp" #include "primitives/event_types.hpp"