hashmap basado en disco java

Estoy trabajando en un rastreador web (no sugiera uno existente, no es una opción). Lo tengo funcionando como se espera. Mi único problema es que actualmente estoy usando una especie de modelo de servidor / cliente donde el servidor rastrea y procesa los datos, luego los coloca en una ubicación central.

Esta ubicación es un objeto creado a partir de una clase que escribí. Internamente, la clase mantiene un hashmap definido comoHashMap<String, HashMap<String, String>>

Almaceno datos en el mapa haciendo que la url sea la clave (los mantengo únicos) y el valor de hasmap almacena los campos de datos correspondientes para esa url, como título, valor, etc.

Ocasionalmente serializo los objetos internos utilizados, pero la araña tiene varios subprocesos y tan pronto como tengo 5 hilos que rastrean, los requisitos de memoria aumentan exponencialmente.

Hasta ahora, el rendimiento ha sido excelente con el hashmap, rastreando 15K urls en 2.r minutos con aproximadamente 30 segundos de tiempo de CPU, por lo que realmente no necesito apuntar en la dirección de una araña existente como la mayoría de los usuarios del foro han sugerido.

¿Alguien puede sugerir una solución rápida basada en disco que probablemente sea compatible con la lectura y escritura simultánea? La estructura de datos no tiene que ser la misma, solo debe ser capaz de almacenar valores de metaetiquetas relacionados, etc.

gracias por adelantado

Respuestas a la pregunta(5)

Su respuesta a la pregunta