From 17180ceceea188280322a9e941561dae68472304 Mon Sep 17 00:00:00 2001 From: ssd04 Date: Wed, 21 Jan 2026 18:08:12 +0200 Subject: [PATCH] tmp pools logs --- .../dataPool/proofsCache/proofsCache.go | 7 ++++ .../dataPool/proofsCache/proofsPool.go | 12 +++++++ dataRetriever/interface.go | 1 + process/block/baseProcess.go | 35 +++++++++++++++++++ testscommon/dataRetriever/proofsPoolMock.go | 4 +++ 5 files changed, 59 insertions(+) diff --git a/dataRetriever/dataPool/proofsCache/proofsCache.go b/dataRetriever/dataPool/proofsCache/proofsCache.go index d885ffe8a41..49051c87d1b 100644 --- a/dataRetriever/dataPool/proofsCache/proofsCache.go +++ b/dataRetriever/dataPool/proofsCache/proofsCache.go @@ -108,3 +108,10 @@ func (pc *proofsCache) cleanupProofsInBucket(bucket *proofNonceBucket) { delete(pc.proofsByHash, headerHash) } } + +func (pc *proofsCache) getNumProofsByHash() int { + pc.mutProofsCache.RLock() + defer pc.mutProofsCache.RUnlock() + + return len(pc.proofsByHash) +} diff --git a/dataRetriever/dataPool/proofsCache/proofsPool.go b/dataRetriever/dataPool/proofsCache/proofsPool.go index d5c4c4a7629..b9f9d2f69ee 100644 --- a/dataRetriever/dataPool/proofsCache/proofsPool.go +++ b/dataRetriever/dataPool/proofsCache/proofsPool.go @@ -224,6 +224,18 @@ func (pp *proofsPool) RegisterHandler(handler func(headerProof data.HeaderProofH pp.mutAddedProofSubscribers.Unlock() } +func (pp *proofsPool) Len() int { + pp.mutCache.RLock() + defer pp.mutCache.RUnlock() + + numProofsByHash := 0 + for _, proofsPerShard := range pp.cache { + numProofsByHash += proofsPerShard.getNumProofsByHash() + } + + return numProofsByHash +} + // IsInterfaceNil returns true if there is no value under the interface func (pp *proofsPool) IsInterfaceNil() bool { return pp == nil diff --git a/dataRetriever/interface.go b/dataRetriever/interface.go index 9ca5fe6d28e..490a62b37ce 100644 --- a/dataRetriever/interface.go +++ b/dataRetriever/interface.go @@ -386,5 +386,6 @@ type ProofsPool interface { GetProofByNonce(headerNonce uint64, shardID uint32) (data.HeaderProofHandler, error) HasProof(shardID uint32, headerHash []byte) bool IsProofInPoolEqualTo(headerProof data.HeaderProofHandler) bool + Len() int IsInterfaceNil() bool } diff --git a/process/block/baseProcess.go b/process/block/baseProcess.go index e86e796d036..14efa9ede05 100644 --- a/process/block/baseProcess.go +++ b/process/block/baseProcess.go @@ -1246,6 +1246,41 @@ func (bp *baseProcessor) cleanupPools(headerHandler data.HeaderHandler) { // cleanup all log events bp.dataPool.PostProcessTransactions().Remove(common.PrepareLogEventsKey(executionResultHeaderHash)) } + + if headerHandler.GetRound()%50 == 0 { + go bp.logPoolsSize() + } +} + +func (bp *baseProcessor) logPoolsSize() { + dp := bp.dataPool + + log.Debug("logPoolsSize", + "postProcessTxs", "len", dp.PostProcessTransactions().Len(), "size", dp.PostProcessTransactions().SizeInBytesContained(), + "executedMiniBlocksCache", "len", dp.ExecutedMiniBlocks().Len(), "size", dp.ExecutedMiniBlocks().SizeInBytesContained(), + "miniblocks", "len", dp.MiniBlocks().Len(), "size", dp.MiniBlocks().SizeInBytesContained(), + "proofs", "len", dp.Proofs().Len(), + ) + + log.Debug("logPoolsSize headers", + "headers", "len", dp.Headers().Len(), + ) + for i := uint32(0); i < bp.shardCoordinator.NumberOfShards(); i++ { + log.Debug("per shard", + "shardID", i, "numHeaders", dp.Headers().GetNumHeaders(i), + ) + } + log.Debug("per shard", + "shardID", core.MetachainShardId, "numHeaders", dp.Headers().GetNumHeaders(core.MetachainShardId), + ) + + txPoolCounts := dp.Transactions().GetCounts() + + log.Debug("logPoolsSize txPool", + "numTrackedBlocks", dp.Transactions().GetNumTrackedBlocks(), + "numTrackedAccounts", dp.Transactions().GetNumTrackedAccounts(), + "id", txPoolCounts.String(), "total", txPoolCounts.GetTotal(), "total size", txPoolCounts.GetTotalSize(), + ) } func (bp *baseProcessor) cleanupPoolsForCrossShard( diff --git a/testscommon/dataRetriever/proofsPoolMock.go b/testscommon/dataRetriever/proofsPoolMock.go index c7450a411fb..364d45d0340 100644 --- a/testscommon/dataRetriever/proofsPoolMock.go +++ b/testscommon/dataRetriever/proofsPoolMock.go @@ -87,6 +87,10 @@ func (p *ProofsPoolMock) RegisterHandler(handler func(headerProof data.HeaderPro } } +func (p *ProofsPoolMock) Len() int { + return 0 +} + // IsInterfaceNil - func (p *ProofsPoolMock) IsInterfaceNil() bool { return p == nil