OrientDB - Caching

Cachingè un concetto che creerà una copia della struttura della tabella del database fornendo un ambiente confortevole per le applicazioni utente. OrientDB ha diversi meccanismi di memorizzazione nella cache a diversi livelli.

La figura seguente fornisce un'idea di cosa sia la memorizzazione nella cache.

Nell'illustrazione sopra DB1, DB2, DB3 sono le tre diverse istanze di database utilizzate in un'applicazione.

Level-1 cache è un file Local cacheche memorizza tutte le entità conosciute da una specifica sessione. Se hai tre transazioni in questa sessione, conterrà tutte le entità utilizzate da tutte e tre le transazioni. Questa cache viene cancellata quando chiudi la sessione o quando esegui il metodo "cancella". Riduce il carico delle operazioni di I / O tra l'applicazione e il database e, a sua volta, aumenta le prestazioni.

Level-2 cache è un file Real cacheche funziona utilizzando provider di terze parti. Puoi avere il pieno controllo del contenuto della cache, cioè sarai in grado di specificare quali voci devono essere rimosse, quali devono essere conservate più a lungo e così via. È una cache condivisa completa tra più thread.

Storage model non è altro che un dispositivo di archiviazione che è disco, memoria o server remoto.

Come funziona la cache in OrientDB?

La memorizzazione nella cache di OrientDB fornisce metodologie diverse in ambienti diversi. La memorizzazione nella cache viene utilizzata principalmente per transazioni di database più veloci, riducendo il tempo di elaborazione di una transazione e aumentando le prestazioni. I seguenti diagrammi di flusso mostrano come funziona la memorizzazione nella cache in modalità locale e in modalità client-server.

Modalità locale (database incorporato)

Il diagramma di flusso seguente indica come il record si trova tra l'archiviazione e l'applicazione utilizzata in modalità locale, ovvero quando il server del database si trova nell'host locale.

Quando l'applicazione client richiede un record, OrientDB verifica quanto segue:

  • Se una transazione è iniziata, cerca all'interno della transazione i record modificati e li restituisce se trovati.

  • Se la cache locale è abilitata e contiene il record richiesto, lo restituisce.

  • Se a questo punto il record non è in cache, lo richiede allo Storage (disco, memoria).

Modalità server client (database remoto)

Il diagramma di flusso seguente indica come il record si trova tra l'archiviazione e l'applicazione utilizzata in modalità client-server, ovvero quando il server del database si trova in una posizione remota.

Quando l'applicazione client richiede un record, OrientDB verifica quanto segue:

  • Se una transazione è iniziata, cerca all'interno della transazione i record modificati e li restituisce se trovati.

  • Se la cache locale è abilitata e contiene il record richiesto, lo restituisce.

  • A questo punto, se il record non è in cache, lo richiede al Server tramite una chiamata TCP / IP.

  • Nel server, se la cache locale è abilitata e contiene il record richiesto, lo restituisce.

  • A questo punto, ancora il record non viene memorizzato nella cache del server, quindi lo richiede allo Storage (disco, memoria).