From 0dc39ce84baea997ef5cca821e5abff97a365f12 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Tue, 1 Mar 2016 17:21:41 -0300 Subject: [PATCH] . --- app/controllers/addresses.js | 3 ++- app/models/Address.js | 17 +++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/app/controllers/addresses.js b/app/controllers/addresses.js index e348470..90618dd 100644 --- a/app/controllers/addresses.js +++ b/app/controllers/addresses.js @@ -11,6 +11,7 @@ var async = require('async'); var MAX_BATCH_SIZE = 100; var RPC_CONCURRENCY = 5; +var SIZE_TO_ENABLE_DEAD_CACHE=100; var tDb = require('../../lib/TransactionDb').default(); @@ -47,7 +48,7 @@ var getAddrs = function(req, res, next) { var addrStrs = req.param('addrs'); var s = addrStrs.split(','); if (s.length === 0) return as; - var enableDeadAddresses = s.length > 100; + var enableDeadAddresses = s.length > SIZE_TO_ENABLE_DEAD_CACHE; for (var i = 0; i < s.length; i++) { var a = new Address(s[i], enableDeadAddresses); as.push(a); diff --git a/app/models/Address.js b/app/models/Address.js index 0e15163..98d10a8 100644 --- a/app/models/Address.js +++ b/app/models/Address.js @@ -13,7 +13,9 @@ var TransactionDb = imports.TransactionDb || require('../../lib/TransactionDb'). var BlockDb = imports.BlockDb || require('../../lib/BlockDb').default(); var config = require('../../config/config'); var CONCURRENCY = 5; -var DAYS_TO_DEAD = 40; +//var DAYS_TO_DEAD = 40; +var DAYS_TO_DEAD = 1; +var MAX_CACHE_KEYS = 100; var deadCache = {}; @@ -100,7 +102,18 @@ Address.prototype.setCache = function() { this.cached = true; deadCache[this.addrStr] = this; - console.log('%%%%%%%% cache size:', _.keys(deadCache).length); //TODO + var size = _.keys(deadCache).length; + + console.log('%%%%%%%% cache size:', size); //TODO + if (size > MAX_CACHE_KEYS) { + console.log('%%%%%%%% deleting ~ 20% of the entries...'); + + for (var prop in deadCache) + if (Math.random() < 0.2) + delete deadCache[prop]; + + console.log('%%%%%%%% cache size:', size); //TODO + } // TODO expire it... };