Comportamento topologico per le operazioni di cache
NCache fornisce varie topologie di memorizzazione nella cache che si comportano in modo diverso durante l'esecuzione di operazioni di cache su di esse. Sono riportati di seguito NCache topologie e loro comportamenti.
- Specchio cache (solo edizione Enterprise)
- Cache replicata
- Cache partizionata
- Cache di replica partizionata (solo edizione Enterprise)
- Cache cliente (solo edizione Enterprise)
Topologia speculare
Note:
Questa funzione è disponibile solo in NCache Enterprise Edizione.
In specchio topologia, il client comunica solo con il nodo attivo, mentre il nodo passivo è la replica del nodo attivo e viene utilizzato per il backup.
Le operazioni in blocco vengono eseguite sul nodo attivo, in cui l'applicazione attende che le operazioni vengano replicate sul nodo passivo.
Le operazioni asincrone vengono eseguite anche sul nodo attivo, ma il controllo viene restituito immediatamente all'applicazione in modo che non attenda che l'operazione venga eseguita su entrambi i nodi. Se la richiamata è registrata, verrà attivata in caso di esito positivo o negativo dell'operazione.
Topologia replicata
In replicato topologia, il client è connesso a un nodo alla volta. Pertanto, le operazioni bulk/async vengono inviate al nodo specifico a cui è connesso il client. Queste operazioni vengono quindi replicate tra i nodi in modo sincrono, garantendo la coerenza dei dati.
In caso di operazioni di massa, le operazioni vengono inviate al nodo specifico a cui è connesso il client. Il controllo viene restituito all'utente dopo che si è verificata la replica su tutti i nodi del cluster.
Per le operazioni asincrone, il controllo viene restituito immediatamente all'applicazione, senza attendere che avvenga la replica. Tuttavia, una volta eseguita la replica, il callback viene attivato e restituito al client.
Topologia partizionata
In partizionato or replica partizionata topologia, viene mantenuta una mappa di distribuzione responsabile della distribuzione dei dati nel cluster. Prima di entrare nel dettaglio delle operazioni eseguite, è importante capire cos'è una mappa di distribuzione. Una mappa di distribuzione è una struttura di coppia chiave-valore, in cui le chiavi rappresentano l'identità del nodo e il valore contiene informazioni sui bucket (di dati) che risiedono su quel nodo. In questo modo viene generata un'intera mappa per la cache e mantenuta lato server. NCache consente al nodo coordinatore di decidere la distribuzione dei dati in base alla mappa.
Note:
La mappa di distribuzione distribuisce tutti i dati in caso di un cluster completamente connesso (tutti i nodi del cluster sono connessi). Nel caso in cui un nodo venga disconnesso dal cluster, NCache non divide ulteriormente i dati in base alla mappa di distribuzione e invia i dati al successivo nodo connesso.
Dopo aver ottenuto l'indirizzo del nodo in cui risiede il bucket dalla mappa di distribuzione, l'operazione viene inviata al nodo di destinazione. NCache mantiene la mappa distribuita sul lato client così all'esecuzione dell'operazione successiva sulla chiave, l'operazione verrà inviata direttamente al nodo in cui risiedono i dati. Ciò migliora le prestazioni poiché l'operazione viene inviata direttamente al nodo in cui risiedono i dati.
Supponendo che gli elementi di dati 1-500 siano su N1 e 501-1000 su N2 (tuttavia, i dati non sono divisi in un ordine e vengono mescolati casualmente) secondo la mappa di distribuzione. Su qualsiasi operazione eseguita su articoli in blocco, l'operazione verrà inviata al rispettivo nodo in un'unica chiamata. La maggiore facilità di avere la mappa di distribuzione sul lato client è la prestazione più veloce perché l'operazione verrà eseguita direttamente sul nodo residente dei dati. Il controllo verrà restituito all'utente (per ogni ulteriore operazione) una volta eseguita l'operazione nella sua interezza.
Per le operazioni asincrone, una volta eseguita qualsiasi operazione di scrittura, la chiamata viene immediatamente restituita mentre l'operazione continua a essere eseguita in background. NCache mantiene una coda in background che (non influisce sulle operazioni del client) tiene traccia delle operazioni rispetto ai dati. Offre un grande comfort con ampi set di dati in cui le operazioni richiedono molto tempo per essere eseguite.
Topologia della replica partizionata
Note:
Questa funzione è disponibile solo in NCache Enterprise Edizione.
In replica partizionata topologia, l'operazione client viene eseguita inizialmente sul nodo assegnato e quindi replicata nella relativa replica in modo sincrono o asincrono, come specificato dall'utente.
In caso di operazioni alla rinfusa, se in sync modalità, le operazioni vengono eseguite sul nodo assegnato e l'applicazione attende fino a quando non si verifica la replica sulla replica della partizione. Se dentro async modalità, il controllo viene restituito all'applicazione non appena l'operazione viene eseguita sul nodo di partizione e non attende la replica poiché è asincrono.
In caso di operazioni asincrone, l'operazione viene inviata al nodo di partizione assegnato e il controllo viene restituito all'utente immediatamente, indipendentemente dalla modalità di sincronizzazione specificata.
Cache cliente
Note:
Questa funzione è disponibile solo in NCache Enterprise Edizione.
A Cache cliente è una cache locale sincronizzata con una cache cluster remota. Questa sincronizzazione avviene tramite il polling: se una cache in cluster rileva una modifica per una qualsiasi delle sue cache client dopo l'intervallo di polling predefinito di 1 secondo, informa la cache del client di eseguire il polling dei dati modificati. In caso contrario, dopo l'intervallo predefinito di 10 secondi, la cache del client richiede alla cache in cluster di fornire i dati modificati, se presenti.
In caso di operazioni di scrittura, ogni operazione viene eseguita prima sulla cache del client, quindi successivamente eseguita sulla cache remota tramite un meccanismo interno di Write-Behind.
Per le operazioni in blocco, il controllo viene restituito all'applicazione dopo che l'operazione è stata eseguita sia nella cache del client che nella cache remota. In caso di operazioni asincrone, i callback vengono restituiti alla cache del client dalla cache remota dopo che l'operazione è stata eseguita sulla cache.
Tuttavia, per le operazioni di lettura, la chiave viene prima ricercata nella cache del client; se non viene trovata, la cache del client recupererà l'elemento chiave dalla cache remota e quindi lo restituirà al client. Ciò fornisce il massimo incremento delle prestazioni e della scalabilità dell'applicazione senza compromettere l'integrità dei dati.
Vedere anche
Aggiungi dati alla cache
Aggiorna i dati esistenti nella cache
Recupera i dati della cache esistenti
Rimuovere i dati dalla cache