Changeset 87da4b7


Ignore:
Timestamp:
Feb 23, 2012 7:06:21 PM (8 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
eeb9ee0
Parents:
141ad67
Message:

add negative cache to BFNS

Location:
core/java/src/net/i2p/client/naming
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • core/java/src/net/i2p/client/naming/BlockfileNamingService.java

    r141ad67 r87da4b7  
    9393    private final List<String> _lists;
    9494    private final List<InvalidEntry> _invalid;
     95    private final Map<String, String> _negativeCache;
    9596    private volatile boolean _isClosed;
    9697    private final boolean _readOnly;
     
    119120    private static final String PROP_SOURCE = "s";
    120121   
     122    private static final String DUMMY = "";
     123    private static final int NEGATIVE_CACHE_SIZE = 32;
     124
    121125    /**
    122126     *  Opens the database at hostsdb.blockfile or creates a new
     
    133137        _lists = new ArrayList();
    134138        _invalid = new ArrayList();
     139        _negativeCache = new LHM(NEGATIVE_CACHE_SIZE);
    135140        BlockFile bf = null;
    136141        RAIFile raf = null;
     
    629634
    630635        String key = hostname.toLowerCase(Locale.US);
     636        synchronized(_negativeCache) {
     637            if (_negativeCache.get(key) != null)
     638                return null;
     639        }
    631640        synchronized(_bf) {
    632641            if (_isClosed)
     
    651660            deleteInvalid();
    652661        }
    653         if (d != null)
     662        if (d != null) {
    654663            putCache(hostname, d);
     664        } else {
     665            synchronized(_negativeCache) {
     666                _negativeCache.put(key, DUMMY);
     667            }
     668        }
    655669        return d;
    656670    }
     
    684698        }
    685699        String key = hostname.toLowerCase(Locale.US);
     700        synchronized(_negativeCache) {
     701            _negativeCache.remove(key);
     702        }
    686703        String listname = FALLBACK_LIST;
    687704        Properties props = new Properties();
     
    10321049            _isClosed = true;
    10331050        }
     1051        synchronized(_negativeCache) {
     1052            _negativeCache.clear();
     1053        }
    10341054        clearCache();
    10351055    }
  • core/java/src/net/i2p/client/naming/DummyNamingService.java

    r141ad67 r87da4b7  
    117117    }
    118118
    119     private static class LHM<K, V> extends LinkedHashMap<K, V> {
     119    protected static class LHM<K, V> extends LinkedHashMap<K, V> {
    120120        private final int _max;
    121121
Note: See TracChangeset for help on using the changeset viewer.