2009-06-10 17 views
2

Ich bin an einem Punkt, wo ich die Entscheidung treffen muss, was zu tun ist, wenn das Caching von Objekten den konfigurierten Schwellenwert erreicht.Java-Objekt-Caching, die schneller ist, Lesen von einer Datei oder von einem Remote-Computer?

Soll ich die Objekte in einer indizierten Datei (wie von JCS zur Verfügung gestellt) und aus der Datei (IO) lesen, wenn die in einem verteilten Cache (Netzwerk, Serialisierung, Deserialisierung)

gespeicherte Objekt erforderlich oder habe

Wir verwenden Solaris als Betriebssystem.

============================

einige weitere Informationen hinzufügen.

Ich habe diese Frage, um festzustellen, ob ich zum verteilten Caching wechseln kann. Der Remote-Server, der über einen Cache verfügt, verfügt über mehr Speicher und eine bessere Festplatte, und dieser Remote-Server wird nur zum Zwischenspeichern verwendet.

Eines der Probleme, die wir die lokal zwischengespeicherten Objekte nicht erhöhen können, ist, speichert es die zwischengespeicherten Objekte in JVM-Heapspeicher, der über begrenzten Speicher verfügt (unter Verwendung von 32-Bit-JVM).

============================================== ========================

Danke, wir haben uns letztendlich entschieden, Coherence als unser Cache-Produkt zu wählen. Dies bietet viele Cache-Konfigurationstopologien, in Prozess vs Remote vs. Festplatte .. etc.

Antwort

3

Es hängt von vielen Faktoren wie Festplattengeschwindigkeit, Netzwerklatenz und der Datenmenge ab, so dass einige Experimente der beste Weg sind, um eine Idee zu bekommen. Ich empfehle Ihnen, einen Blick auf http://ehcache.org/ werfen, könnte es nützlich sein.

0

Es ist fast sicher, dass Sie schneller die Daten in einer Datei zwischenspeichern als im Netzwerk.

-1

Ich bekomme die Frage nicht. Brauchen Sie einen verteilten Cache oder nicht? Beantworten Sie diese Frage, um herauszufinden, was Sie benötigen.

1

Erwarten Sie, dass die verteilten Knoten Ihre Daten im Speicher behalten? Ich würde nicht.

Wenn Sie nicht sicher sein können, dass die verteilten Knoten Ihre Daten im Speicher behalten, dauert das Ablegen von Daten im Netzwerk die Zeit, Daten von der Festplatte zu lesen und die Daten über das Netzwerk zu senden. Wenn Sie Daten lokal aufbewahren, dauert das Lesen von Daten von der Festplatte nur wenig Zeit.

Lokal ist schneller.

+1

Der entfernte Knoten könnte enormen Speicher und/oder ein viel schnelleres Plattensystem (vielleicht Solid State Disk) haben, während das lokale System ein Notizbuch mit einer 5400rpm Festplatte und unzureichendem Speicher sein könnte. –

+0

Ja, der Remote-Computer speichert die Daten im Cache. Wir werden mehrere Cache-Server haben. – Kumar225

2

Der einzige Weg, um wirklich zu wissen, ist es zu testen, aber mit guter Netzwerklatenz aus Ihrem Cache, könnte es durchaus schneller sein als lokaler Festplattenzugriff.

Sobald Sie mit einer ausreichend hohen Rate von Cache-Anforderungen fertig werden, wird ein serialisierter wahlfreier Zugriff auf die lokale Festplatte wahrscheinlich zu einem Problem.

0

Die Optionen schließen sich nicht gegenseitig aus, es gibt Produkte, die beide kombinieren. Oracle Coherence bietet beispielsweise ausgefeilte verteilte Cache-Dienste mit einer Option zum Überlaufen auf die Festplatte, wenn Schwellenwerte überschritten werden.

0

Auschecken memcached, ein verteilter In-Memory-Cache. Sie müssen Leistungsvergleiche für Ihre eigenen speziellen Verwendungen ausführen, aber ein verteilter Speicher-Cache kann häufig einen lokalen Festplatten-Cache übertreffen.