2016-05-07 6 views
0

Ich versuche, Ehcache mit einer Festplattenpersistenz zu konfigurieren, die nicht initialisiert den Festplattencache, bis der Heap voll ist. Ist das möglich?ehcache - Festplattenpersistenz konfigurieren

Im Moment, sobald ich meinen Cache initialisiere, sehe ich, dass der Disk-Cache auf dem Dateisystem erstellt wird. In den meisten Fällen ist mein Heap groß genug, um meine Daten zu enthalten. Daher möchte ich keinen Plattenspeicher erstellen, der nicht verwendet wird. Ich verwende ehcache auf einem Telefon, wo Speicherplatz ein Problem ist. Und ich könnte potentiell eine 1GB-Festplattenpersistenz benötigen und so erstellt es jetzt diese große Datei jedes Mal, wenn ich meinen Cache initialisiere.

+0

"* Ist das möglich? *" - Obwohl ich nicht sicher bin, würde meine Vermutung sehr "nein" sein. Es gibt keine Standard-Java-API, um zu prüfen, ob der Heap voll ist, und ich denke, dass jede Hotspot- oder Dalvik-spezifische API so fragil ist, dass niemand sie ernsthaft verwenden möchte. – Dolda2000

+0

Ich meine nicht, dass der gesamte Heap voll ist, ich meine nur den Teil auf dem Heap, den ich meinem Cache mit newResourcePoolsBuilder() zugewiesen habe. Heap (50, MemoryUnit.MB) – user1159819

Antwort

1

Während sich die spezifische Konfiguration auf alten Versionen so verhält, funktioniert seit Ehcache 2.6.x das Tiering-Modell nicht mehr mit Überlauf.

Wenn Sie eine Festplattenebene zuweisen, wird sie zur Autorität und sie enthält immer alle Zuordnungen, von der ersten in den Cache eingefügt.