hashmap baseado em disco java

Estou trabalhando em um rastreador da Web (não sugira um já existente, não é uma opção). Eu tenho isso funcionando da maneira que é esperado. Meu único problema é que, atualmente, estou usando um tipo de modelo de servidor / cliente em que, pelo servidor, faz o rastreamento e processa os dados, eles são colocados em um local central.

Esta localização é um objeto criado a partir de uma classe que escrevi. Internamente, a classe mantém um hashmap definido comoHashMap<String, HashMap<String, String>>

Eu armazeno dados no mapa, tornando o URL a chave (eu os mantenho únicos) e o valor hasmap armazena os campos de dados correspondentes para esse URL, como título, valor, etc.

Ocasionalmente, serializo os objetos internos usados, mas a aranha é multiencadeada e, assim que digo 5 encadeamentos, os requisitos de memória aumentam exponencialmente.

Até agora, o desempenho tem sido excelente com o hashmap, rastreando 15K urls em 2.r minutos com cerca de 30 segundos de tempo de CPU, então eu realmente não preciso ser apontado na direção de uma aranha existente, como a maioria dos usuários do fórum sugeriu.

Alguém pode sugerir uma solução rápida baseada em disco que provavelmente oferecerá suporte à leitura e gravação simultâneas? A estrutura de dados não precisa ser a mesma, apenas precisa armazenar valores de metatags relacionados etc.

desde já, obrigado

questionAnswers(5)

yourAnswerToTheQuestion