2010-05-03 10 views
6

È una cache distribuita Terracotta?Terracotta è una cache distribuita?

+1

non ne ho mai sentito parlare prima, ma cercare su "cache di terracotta distribuita" mi ha dato questo: http://www.terracotta.org/confluence/display/labs/Distributed-Cache+Webcast –

+1

Sembra quasi una domanda per i compiti a casa alcuni CS elettivo. o.0 – Amber

+0

@Dav - il "perché o perché no" mi dà anche una pausa. –

risposta

9

Sebbene non si specifichi di quale prodotto si stia parlando, presumo che si intenda la piattaforma open source stessa. La risposta breve è no, ma può essere usata per scrivere una cache distribuita, ed è stata inserita in uno dei propri prodotti (Ehcache).

È possibile visualizzare una panoramica di ciò che il motore di base è di circa here (sembra che stanno nascondendo le informazioni sulla loro piattaforma open source dietro un muro di registrazione ora). È un motore di clustering che non utilizza la tecnologia J2EE e il suo scopo principale è quello di semplificare lo sviluppo del computing distribuito. Oltre al caching, i casi di utilizzo ovvi implicano esigenze di elevata disponibilità e scalabilità. Consideralo come un codice java relativamente semplice da eseguire "nel cloud" senza doversi preoccupare di molti dettagli che potrebbero implicare.

+0

Sì, intendevo la piattaforma Terracotta open source per Java. Aggiunto un link nella domanda al sito Web di Terracotta. –

2

La tua domanda non è chiara (Terracotta ha diversi prodotti) ma sì, lo Terracotta Platform offre una soluzione per la cache distribuita.

6

La terracotta non ha nulla a che vedere con il "caching", sebbene la maggior parte delle implementazioni lo utilizzi per scopi di memorizzazione nella cache. La terracotta riguarda il raggruppamento e la terracotta stessa viene implementata usando java (per quanto ne so).

Come terracotta raggiunge il clustering:

1) JVM1 esecuzione APP 2) JVM2 esecuzione APP (idem) 3) JVM3 esecuzione APP (idem)

Senza terracotta tutte le JVM stanno funzionando in modo indipendente con fuori sapendo gli uni degli altri l'esecuzione di alcune operazioni ridondanti e mantenere i loro cumuli indipendenti

Quando si attiva in terracotta (un server di terracotta in esecuzione) in questi 3 JVM (configurato per utilizzare server di terracotta)

Terracotta fornisce una vista logica di tutte e 3 le JVM come una singola JVM. Qualsiasi oggetto grafico che si designa per essere memorizzato su Server (Root) è disponibile per tutte e 3 le JVM come qualsiasi oggetto locale, ma ciascuna JVM può leggere/scrivere su quell'oggetto, le cui modifiche sono immediatamente (~) disponibili per le altre JVM.

Per questo motivo Terracotta viene utilizzato principalmente per il caching e il calcolo distribuito poiché le JVM inattive senza lavoro possono elaborare il lavoro della JVM in ritardo di caricamento se l'unità dell'oggetto di lavoro è designata come condivisibile.

1

La cache L2 è quella esterna a un processore (una JVM, nel nostro caso) e condivisa tra di loro. Servendo da cache L2 trasparente, Terracotta combina il tuo multicomputer in un multiporcessor. Quindi, è una cache distribuita. Ma sembra che tu non lo capisca perché sei un ragazzo SW che non ha mai immaginato che possa essere trasparente. Ci si aspetta che una cache sia una cosa che ha dei metodi get/set e un problema di coerenza che è necessario risolvere a livello di applicazione.

Leggi la "Guida definitiva alla terracotta". Gli autori affermano letteralmente che Terracotta è una cache distribuita. Penso che lo capiscano meglio di chiunque abbia detto "no" rispondendo qui.