replaced old caching strategy control class with lightweight simplearc

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@6254 6c8d7289-2bf4-0310-a012-ef5d649a1542
pull/1/head
orbiter 16 years ago
parent 8e56c2ace6
commit d9744b1b5d

@ -49,9 +49,9 @@ import de.anomic.document.parser.html.ImageEntry;
import de.anomic.http.client.Client; import de.anomic.http.client.Client;
import de.anomic.http.client.Cache; import de.anomic.http.client.Cache;
import de.anomic.http.metadata.ResponseHeader; import de.anomic.http.metadata.ResponseHeader;
import de.anomic.kelondro.index.SimpleARC;
import de.anomic.kelondro.order.Base64Order; import de.anomic.kelondro.order.Base64Order;
import de.anomic.kelondro.text.metadataPrototype.URLMetadataRow; import de.anomic.kelondro.text.metadataPrototype.URLMetadataRow;
import de.anomic.kelondro.util.ScoreCluster;
import de.anomic.kelondro.util.SetTools; import de.anomic.kelondro.util.SetTools;
import de.anomic.yacy.yacySearch; import de.anomic.yacy.yacySearch;
import de.anomic.yacy.yacyURL; import de.anomic.yacy.yacyURL;
@ -73,9 +73,7 @@ public class SnippetCache {
public static final int ERROR_PARSER_NO_LINES = 15; public static final int ERROR_PARSER_NO_LINES = 15;
public static final int ERROR_NO_MATCH = 16; public static final int ERROR_NO_MATCH = 16;
private static int snippetsScoreCounter = 0; private static final SimpleARC<String, String> snippetsCache = new SimpleARC<String, String>(maxCache);
private static ScoreCluster<String> snippetsScore = null;
private static final HashMap<String, String> snippetsCache = new HashMap<String, String>();
/** /**
* a cache holding URLs to favicons specified by the page content, e.g. by using the html link-tag. e.g. * a cache holding URLs to favicons specified by the page content, e.g. by using the html link-tag. e.g.
@ -93,8 +91,6 @@ public class SnippetCache {
) { ) {
log = logx; log = logx;
sb = switchboard; sb = switchboard;
snippetsScoreCounter = 0;
snippetsScore = new ScoreCluster<String>();
snippetsCache.clear(); snippetsCache.clear();
faviconCache.clear(); faviconCache.clear();
} }
@ -508,7 +504,6 @@ public class SnippetCache {
return document; return document;
} }
public static void storeToCache(final String wordhashes, final String urlhash, final String snippet) { public static void storeToCache(final String wordhashes, final String urlhash, final String snippet) {
// generate key // generate key
String key = urlhash + wordhashes; String key = urlhash + wordhashes;
@ -517,22 +512,7 @@ public class SnippetCache {
if (snippetsCache.containsKey(key)) return; if (snippetsCache.containsKey(key)) return;
// learn new snippet // learn new snippet
snippetsScore.addScore(key, snippetsScoreCounter++);
snippetsCache.put(key, snippet); snippetsCache.put(key, snippet);
// care for counter
if (snippetsScoreCounter == java.lang.Integer.MAX_VALUE) {
snippetsScoreCounter = 0;
snippetsScore = new ScoreCluster<String>();
snippetsCache.clear();
}
// flush cache if cache is full
while (snippetsCache.size() > maxCache) {
key = snippetsScore.getMinObject();
snippetsScore.deleteScore(key);
snippetsCache.remove(key);
}
} }
private static String retrieveFromCache(final String wordhashes, final String urlhash) { private static String retrieveFromCache(final String wordhashes, final String urlhash) {

Loading…
Cancel
Save