2010-05-05 5 views
7

Ein Kollege erwähnte, dass er von einer leichten Sammlung gehört habe, die automatisch auf die Festplatte ausgelagert wird, wenn der Inhalt zu voll ist - aber er konnte sich nicht an den Namen erinnern. Ich könnte mir vorstellen, dass es in etwa so aussieht:Java-Sammlung, die auf die Festplatte packt, wenn sie voll ist?

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

Welches würde dann drücken x = 0 bis x = 500 auf die Festplatte. Der Schlüssel wäre in der Lage, darüber zu iterieren, ohne das Ganze in den Speicher zu laden.

Dies ist für einen dicken Client mit wenig Speicher.

Kennt jemand davon (oder etwas ähnliches)?

+1

Klingt sehr nach virtuellem Speicher .... – Tom

+0

Warum können Sie stattdessen keinen Cache verwenden? Was sind Vorteile einer solchen API? –

+0

Ganz einfach, es ist leicht. Eine vollständige Caching-Lösung mag zwar unsere einzige Option sein, aber wir brauchen die Mehrheit nicht. Danke für die Gedanken. –

Antwort

6

Nun, die einzigen Tools, die ich kenne, die diese Art von Funktionen hat, sind die Prävalenzsysteme: prevayler und space4j. Obwohl ihr Interface Ihnen zunächst komisch vorkommt, sind sie doch recht einfach zu bedienen und bieten ein praktisches Feature-Set.

+0

Danke, sieht aus wie einer von denen sollte die Arbeit machen. –

+2

space4j bietet auch transparente Cluster und Indexierung. – TraderJoeChicago

4

MapDB (mapdb.org) ist eine Bibliothek, die festplattenbasierte Sammlungen unterstützt: Sets, Warteschlangen und Karten.

Sie können selbst entscheiden, wann Sie eine Festplatte behalten oder nur bei jedem Update bestehen bleiben.

Es unterstützt auch Caching, so dass alle Ihre Elemente auf der Festplatte, aber einige im Speicher zwischengespeichert werden.

+0

Wie ich sehe (3.0.5) Mapdb Version unterstützt keine Warteschlangen, nur Sätze und Karten http://www.mapdb.org/javadoc/latest/mapdb/ oder ich habe nicht gefunden, wie man die Warteschlange initialisieren Struktur... – MeetJoeBlack

Verwandte Themen