Skip to content

Commit ff010ef

Browse files
committed
More session stats for collation/validation time
1 parent f416812 commit ff010ef

File tree

7 files changed

+175
-127
lines changed

7 files changed

+175
-127
lines changed

tl/generate/scheme/ton_api.tl

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -962,10 +962,6 @@ validatorStats.blockStats
962962
ext_msgs:validatorStats.blockStats.extMsgsStats transactions:int shard_configuration:(vector tonNode.blockIdExt)
963963
old_out_msg_queue_size:long new_out_msg_queue_size:long msg_queue_cleaned:int
964964
neighbors:(vector validatorStats.blockStats.neighborStats) = validatorStats.BlockStats;
965-
validatorStats.collateWorkTimeStats
966-
total:double optimistic_apply:double queue_cleanup:double prelim_storage_stat:double trx_tvm:double trx_storage_stat:double
967-
trx_other:double final_storage_stat:double create_block:double create_collated_data:double create_block_candidate:double
968-
= validatorStats.CollateWorkTimeStats;
969965
validatorStats.storageStatCacheStats
970966
small_cnt:long small_cells:long hit_cnt:long hit_cells:long miss_cnt:long miss_cells:long = validatorStats.StorageStatCacheStats;
971967

@@ -974,22 +970,20 @@ validatorStats.collatedBlock
974970
bytes:int collated_data_bytes:int attempt:int
975971
self:int256 is_validator:Bool
976972
total_time:double work_time:double cpu_work_time:double time_stats:string
977-
work_time_real_stats:validatorStats.collateWorkTimeStats
978-
work_time_cpu_stats:validatorStats.collateWorkTimeStats
973+
work_time_real_stats:string
974+
work_time_cpu_stats:string
979975
block_limits:validatorStats.blockLimitsStatus
980976
block_stats:validatorStats.blockStats
981977
storage_stat_cache:validatorStats.storageStatCacheStats = validatorSession.stats.CollatedBlock;
982978

983-
validatorStats.validateWorkTimeStats
984-
total:double trx_tvm:double trx_storage_stat:double trx_other:double = validatorStats.ValidateWorkTimeStats;
985979
validatorStats.validatedBlock
986980
block_id:tonNode.blockIdExt collated_data_hash:int256 validated_at:double
987981
self:int256
988982
valid:Bool comment:string
989983
bytes:int collated_data_bytes:int
990-
total_time:double work_time:double cpu_work_time:double
991-
work_time_real_stats:validatorStats.validateWorkTimeStats
992-
work_time_cpu_stats:validatorStats.validateWorkTimeStats
984+
total_time:double work_time:double cpu_work_time:double time_stats:string
985+
work_time_real_stats:string
986+
work_time_cpu_stats:string
993987
storage_stat_cache:validatorStats.storageStatCacheStats = validatorStats.ValidatedBlock;
994988

995989
validatorStats.newValidatorGroup.node id:int256 pubkey:PublicKey adnl_id:int256 weight:long = validatorStats.newValidatorGroup.Node;

tl/generate/scheme/ton_api.tlo

-848 Bytes
Binary file not shown.

validator/impl/collator-impl.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ class Collator final : public td::actor::Actor {
404404
bool create_collated_data();
405405

406406
bool create_block_candidate();
407-
void return_block_candidate(td::Result<td::Unit> saved);
407+
void return_block_candidate(td::Result<td::Unit> saved, td::PerfLogAction token);
408408
bool update_last_proc_int_msg(const std::pair<ton::LogicalTime, ton::Bits256>& new_lt_hash);
409409

410410
td::CancellationToken cancellation_token_;

validator/impl/collator.cpp

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -573,7 +573,7 @@ bool Collator::request_aux_mc_state(BlockSeqno seqno, Ref<MasterchainStateQ>& st
573573
CHECK(blkid.is_valid_ext() && blkid.is_masterchain());
574574
LOG(DEBUG) << "sending auxiliary wait_block_state() query for " << blkid.to_str() << " to Manager";
575575
++pending;
576-
auto token = perf_log_.start_action(PSTRING() << "auxiliary wait_block_state " << blkid.to_str());
576+
auto token = perf_log_.start_action(PSTRING() << "auxiliary wait_block_state " << blkid.seqno());
577577
td::actor::send_closure_later(
578578
manager, &ValidatorManager::wait_block_state_short, blkid, priority(), timeout, false,
579579
[self = get_self(), blkid, token = std::move(token)](td::Result<Ref<ShardState>> res) mutable {
@@ -6492,16 +6492,18 @@ bool Collator::create_block_candidate() {
64926492
}
64936493
// 4. save block candidate
64946494
if (skip_store_candidate_) {
6495-
td::actor::send_closure_later(actor_id(this), &Collator::return_block_candidate, td::Unit());
6495+
td::actor::send_closure_later(actor_id(this), &Collator::return_block_candidate, td::Unit(), td::PerfLogAction{});
64966496
} else {
64976497
LOG(INFO) << "saving new BlockCandidate";
6498-
td::actor::send_closure_later(
6499-
manager, &ValidatorManager::set_block_candidate, block_candidate->id, block_candidate->clone(),
6500-
validator_set_->get_catchain_seqno(), validator_set_->get_validator_set_hash(),
6501-
[self = get_self()](td::Result<td::Unit> saved) -> void {
6502-
LOG(DEBUG) << "got answer to set_block_candidate";
6503-
td::actor::send_closure_later(std::move(self), &Collator::return_block_candidate, std::move(saved));
6504-
});
6498+
auto token = perf_log_.start_action("set_block_candidate");
6499+
td::actor::send_closure_later(manager, &ValidatorManager::set_block_candidate, block_candidate->id,
6500+
block_candidate->clone(), validator_set_->get_catchain_seqno(),
6501+
validator_set_->get_validator_set_hash(),
6502+
[self = get_self(), token = std::move(token)](td::Result<td::Unit> saved) mutable {
6503+
LOG(DEBUG) << "got answer to set_block_candidate";
6504+
td::actor::send_closure_later(std::move(self), &Collator::return_block_candidate,
6505+
std::move(saved), std::move(token));
6506+
});
65056507
}
65066508
// 5. communicate about bad and delayed external messages
65076509
if (!bad_ext_msgs_.empty() || !delay_ext_msgs_.empty()) {
@@ -6521,8 +6523,9 @@ bool Collator::create_block_candidate() {
65216523
*
65226524
* @param saved The result of saving the block candidate to the disk.
65236525
*/
6524-
void Collator::return_block_candidate(td::Result<td::Unit> saved) {
6526+
void Collator::return_block_candidate(td::Result<td::Unit> saved, td::PerfLogAction token) {
65256527
// 6. return data to the original "caller"
6528+
token.finish(saved);
65266529
if (saved.is_error()) {
65276530
auto err = saved.move_as_error();
65286531
LOG(ERROR) << "cannot save block candidate: " << err.to_string();

0 commit comments

Comments
 (0)