diff --git a/nodes/node_balancer/cmd/nodebalancer/balancer.go b/nodes/node_balancer/cmd/nodebalancer/balancer.go index 5ea2104e..a79f838c 100644 --- a/nodes/node_balancer/cmd/nodebalancer/balancer.go +++ b/nodes/node_balancer/cmd/nodebalancer/balancer.go @@ -108,7 +108,12 @@ func (node *Node) UpdateNodeState(currentBlock uint64, alive bool) (callCounter // IncreaseCallCounter increased to 1 each time node called func (node *Node) IncreaseCallCounter() { node.mux.Lock() - node.CallCounter++ + if node.CallCounter >= NB_MAX_COUNTER_NUMBER { + log.Printf("Number of calls for node %s reached %d limit, reset the counter.", node.Endpoint, NB_MAX_COUNTER_NUMBER) + node.CallCounter = uint64(0) + } else { + node.CallCounter++ + } node.mux.Unlock() } diff --git a/nodes/node_balancer/cmd/nodebalancer/configs.go b/nodes/node_balancer/cmd/nodebalancer/configs.go index 88b343e7..31a48114 100644 --- a/nodes/node_balancer/cmd/nodebalancer/configs.go +++ b/nodes/node_balancer/cmd/nodebalancer/configs.go @@ -30,6 +30,8 @@ var ( NB_CACHE_CLEANING_INTERVAL = time.Second * 10 NB_CACHE_ACCESS_ID_LIFETIME = int64(120) + NB_MAX_COUNTER_NUMBER = uint64(10000000) + // Client configuration NB_CLIENT_NODE_KEEP_ALIVE = int64(5) // How long to store node in hot list for client in seconds