Wenn overFlowToDisk in EHCACHE aktiviert wird?

8

Ich habe einige Fragen zum Attribut "overflowToDisk" des Elements?

1) Ich habe in dieser URL gelesen, dass:

overflowToDisk legt fest, ob ein Element auf die Festplatte überlaufen kann, wenn der Speicher die maximale Grenze erreicht hat.

"Speicher" oben bezieht sich auf den JVM-Speicher, der für den Java-Prozess zugewiesen wurde, auf dem EHCACHE ausgeführt wird, oder gibt es einen Parameter zur Angabe der Cache-Speichergröße?

2) Wenn der Poces, auf dem EHCACHE läuft, aus irgendeinem Grund beendet wird, ob diese Platte gelöscht wird und alles im Cache verschwindet,

    
Vicky 05.09.2010, 05:42
quelle

2 Antworten

9

Elemente beginnen, auf die Festplatte zu überlaufen, wenn Sie mehr als maxElementsInMemory davon im Speicher haben. Im folgenden Beispiel wird ein Cache erstellt, der 1000 Elemente im Speicher und, wenn Sie mehr speichern müssen, bis zu 10000 auf dem Datenträger speichert:

%Vor%

Für die zweite Frage werfen Sie einen Blick auf den Parameter diskPersistent . Wenn es auf true gesetzt ist, speichert Ehcache Ihre Daten auf der Festplatte, wenn Sie die JVM stoppen. Das folgende Beispiel zeigt dies:

%Vor%     
candiru 15.10.2010, 11:43
quelle
3

Ab Ehcache 2.6 ist das Speichermodell nicht länger ein Überlauf, sondern ein mehrstufiges. Im Tiered Storage-Modell sind alle Daten immer in der niedrigsten Ebene enthalten. Elemente werden in den höheren Ebenen basierend auf ihrer Schärfe vorhanden sein.

Mögliche Stufen für Open-Source-Ehcache sind:

  • On-Heap auf dem JVM-Heap
  • Auf der Platte, die die niedrigste ist

Per Definition haben hohe Ebenen eine niedrigere Latenz, aber weniger Kapazität als niedrigere.

Bei einem Open-Source-Cache, der mit overflowToDisk konfiguriert ist, befinden sich alle Daten immer innerhalb der Festplattenebene. Es speichert den Schlüssel im Speicher und die Daten auf der Festplatte.

Antwort kopiert von diese andere Frage .

    
Louis Jacomet 29.04.2014 08:09
quelle