From 5d9bb0a050df0e58ed1073ef92f45676380ac26e Mon Sep 17 00:00:00 2001
From: Felix Lange <fjl@twurst.com>
Date: Wed, 19 Oct 2016 16:07:19 +0200
Subject: [PATCH] trie: add metric to track cache unloading (#3175)

---
 trie/hasher.go | 1 +
 trie/trie.go   | 5 ++++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/trie/hasher.go b/trie/hasher.go
index b6223bf32..e6261819c 100644
--- a/trie/hasher.go
+++ b/trie/hasher.go
@@ -60,6 +60,7 @@ func (h *hasher) hash(n node, db DatabaseWriter, force bool) (node, node, error)
 		if n.canUnload(h.cachegen, h.cachelimit) {
 			// Unload the node from cache. All of its subnodes will have a lower or equal
 			// cache generation number.
+			cacheUnloadCounter.Inc(1)
 			return hash, hash, nil
 		}
 		if !dirty {
diff --git a/trie/trie.go b/trie/trie.go
index 632060543..2a7bc16e4 100644
--- a/trie/trie.go
+++ b/trie/trie.go
@@ -35,7 +35,10 @@ var (
 	emptyState common.Hash
 )
 
-var cacheMissCounter = metrics.NewRegisteredCounter("trie/cachemiss", nil)
+var (
+	cacheMissCounter   = metrics.NewRegisteredCounter("trie/cachemiss", nil)
+	cacheUnloadCounter = metrics.NewRegisteredCounter("trie/cacheunload", nil)
+)
 
 // CacheMisses retrieves a global counter measuring the number of cache misses
 // the trie did since process startup. This isn't useful for anything apart from
-- 
GitLab