2010-05-03 5 views
6

Ist Terracotta ein verteilter Cache?Ist Terracotta ein verteilter Cache?

+1

noch nie davon gehört, aber googeln für "Terrakotta verteilten Cache" gab mir das: http://www.terracotta.org/confluence/display/labs/Distributed-Cache+Webcast –

+1

Klingt fast wie eine Hausaufgabe für einige CS Wahlfächer. o.0 – Amber

+0

@Dav - das "warum oder warum nicht" gibt mir auch eine Pause. –

Antwort

9

Obwohl Sie nicht angeben, über welches Produkt Sie sprechen, gehe ich davon aus, dass Sie die Open Source-Plattform selbst meinen. Die kurze Antwort ist Nein, aber es kann verwendet werden, um einen verteilten Cache zu schreiben, und es wurde in einem seiner eigenen Produkte (Ehcache).

Sie können einen Überblick über die Kern-Engine über here (es scheint, dass sie die Informationen auf ihrer Open-Source-Plattform hinter einer Registrierungswand jetzt versteckt) sehen. Es handelt sich um eine Clustering-Engine, die keine J2EE-Technologie verwendet. Ihr Hauptzweck ist die Vereinfachung der verteilten Computerentwicklung. Zu den offensichtlichen Anwendungsfällen gehören neben dem Caching hohe Anforderungen an die Verfügbarkeit und Skalierbarkeit. Stellen Sie sich vor, dass relativ einfacher Java-Code "in der Cloud" ausgeführt werden kann, ohne sich um viele Details kümmern zu müssen.

+0

Ja, ich meinte die Open-Source-Terracotta-Plattform für Java. Der Terracotta-Website wurde ein Link in der Frage hinzugefügt. –

2

Ihre Frage ist unklar (Terracotta hat mehrere Produkte), aber ja, die Terracotta Platform bietet eine Lösung für Distributed Caching.

6

Terracotta hat nichts mit "Caching" zu tun, obwohl die meisten Implementierungen es zum Caching verwenden. Terracotta ist Clustering und die Terrakotta selbst ist mit Java (nach meinem Wissen) implementiert.

Wie Terracotta erreicht clustering:

1) JVM1 Lauf APP 2) JVM2 läuft APP (gleiche) 3) JVM3 Lauf APP (gleiche)

Without Terracotta alle JVMs unabhängig mit Jogging wissen umeinander einige redundante Aufgaben und Pflege ihrer unabhängigen Haufen Durchführung

Wenn Sie Terracotta (ein Terracotta-Server ausgeführt wird) über diese 3 JVMs (konfiguriert verwenden Terracotta-Server) ermöglichen

Terracotta bietet eine logische Sicht auf alle 3 JVMs als eine einzige JVM. Jedes Objektdiagramm, das Sie zum Speichern auf Server (Root) festlegen, ist für alle 3 JVMs wie jedes lokale Objekt verfügbar, aber jede JVM kann dieses Objekt lesen/schreiben, dessen Änderungen den anderen JVMs sofort (~) zur Verfügung stehen.

Aus diesem Grund wird Terracotta hauptsächlich für Caching und verteiltes Rechnen verwendet, da unbeleuchtete JVMs die Arbeit der stark belasteten JVM verzögern können, wenn die Einheit des Arbeitsobjekts als gemeinsam benutzbar definiert ist.

1

L2-Cache ist der, der extern zu einem Prozessor (in unserem Fall eine JVM) ist und unter ihnen geteilt wird. Terracotta dient als transparenter L2-Cache und kombiniert Ihren Multicomputer zu einem Multiprozessor. Somit ist es ein verteilter Cache. Aber Sie scheinen es nicht zu bekommen, weil Sie SW-Leute sind, die sich niemals vorgestellt haben, dass es transparent sein kann. Sie erwarten, dass es sich bei einem Cache um eine Methode handelt, die Methoden zum Abrufen/Festlegen und Kohärenzprobleme aufweist, die Sie auf Anwendungsebene beheben müssen.

Lesen Sie die "Definite Guide to Terracotta". Die Autoren sagen, dass Terracotta ein verteilter Cache ist. Ich denke, dass sie das besser verstehen als jeder, der hier "Nein" sagt.

Verwandte Themen