2010-05-05 10 views
7

Un colega mencionó que se enteró de una colección liviana que se abriría automáticamente en el disco cuando sus contenidos se llenaran demasiado, pero no recordaba el nombre. Me imagino que es como la siguiente:¿Colección de Java que pagina al disco cuando se llena?

PagingCollection<Serializable> pagingCollection = new PagingArrayList<>(); 
pagingCollection.setMaxSizeInMemory(500); 
for (int x = 0; x < 1000; x++) { pagingcollection.add("x="+x); } 

que luego empujar x = 0 ax = 500 en el disco. La clave sería poder iterar sobre ella sin tener que cargar todo el asunto en la memoria ..

Esto es para un cliente pesado con bajas cantidades de memoria.

¿Alguien sabe de ella (o algo similar)?

+1

se parece mucho a la memoria virtual .... – Tom

+0

¿Por qué no se puede utilizar un poco de caché en lugar de esto? ¿Cuáles son las ventajas de tal API? –

+0

En pocas palabras, es liviano. Aunque una solución de caché completa puede ser nuestra única opción, pero no necesitamos la mayoría de ella. Gracias por los pensamientos. –

Respuesta

6

Bueno, las únicas herramientas que conozco que tienen este tipo de características son los sistemas de prevalencia: prevayler y space4j. Aunque su interfaz le parecerá extraña al principio, sin embargo, son bastante simples de usar y ofrecen un conjunto de características conveniente.

+0

Gracias, parece que uno de ellos debería hacer el trabajo. –

+2

space4j también proporciona clústeres e indexaciones transparentes. – TraderJoeChicago

4

MapDB (mapdb.org) es una biblioteca que soporta colecciones basadas en disco: Conjuntos, las colas y los mapas.

Se puede elegir usted mismo cuando persista que haga disco o simplemente persistir en cada actualización.

También es compatible con el almacenamiento en caché de modo que todos sus artículos estarán en el disco, pero algunos en caché en la memoria.

+0

Como veo la versión de mapdb más reciente (3.0.5) no admite colas, solo conjuntos y mapas http://www.mapdb.org/javadoc/latest/mapdb/ o no encontré la manera de inicializar la cola estructura... – MeetJoeBlack

Cuestiones relacionadas