La memorizzazione nella cache dei dati utilizzati di frequente della tua applicazione è una mossa estremamente competente. Ma assicurarsi che i dati memorizzati nella cache rimangano sincronizzati con il database Oracle è il dilemma. Il trucco per superare questo problema consiste nell'utilizzare le scadenze dei dati in cui indovini il TTL (Time To Live) dell'elemento e quindi memorizzarlo nella cache.

Non importa quanto sia popolare questo schema, questa rimane una semplice supposizione plausibile su quanto tempo l'elemento rimarrà invariato nel database. E le ipotesi non sono sempre esatte. Se la tua applicazione è sensibile ai dati e il recupero e l'elaborazione di dati imprecisi ne confutano lo scopo, l'utilizzo della scadenza ti costerà molto.

Ciò che ti salva da questa situazione difficile è l'utilizzo di un meccanismo di sincronizzazione del database nella tua cache come NCache, che rimuove automaticamente i dati della cache corrispondenti se vengono aggiornati nel database Oracle.

NCache Dettagli                 Dipendenza della cache dal database               Tecniche di scadenza dei dati

 

utilizzando NCache per sincronizzare con Oracle Server

Oracle Dependency utilizza notifiche di eventi che notificano a tutti i client del database quando un set di dati cambia nel database. Informazioni di back-end: NCache utilizza questa funzione per registrarsi come client di Oracle Server. Ciò significa che ogni volta che i dati cambiano nel set di dati Oracle, NCache viene automaticamente notificato. Utilizzando queste informazioni, NCache mantiene una mappa di tutti gli elementi memorizzati nella cache con i relativi set di dati. Quindi, ogni volta NCache riceve una notifica di una modifica, invalida l'elemento della cache corrispondente dalla cache e recupera quello aggiornato la prossima volta che l'app client lo richiede.

sincronizzazionencache-oracolo

Figura: sincronizza NCache con Oracle Server

Sincronizziamo NCache con Oracle Server

Farò un semplice esempio di un'applicazione di e-commerce (.NET Core based) il cui intero successo risiede nella sua accuratezza. Migliaia di clienti accedono a questa applicazione per lo shopping online ogni minuto, quindi i dati di questa applicazione sono stati memorizzati nella cache.

Ora, prendiamo uno scenario molto comune in cui ClienteA ha acquistato l'ultima Xbox Series X che aveva il negozio. Il server dell'app rimuove la quantità di quell'elemento dal database ma la cache non è ancora a conoscenza di questa modifica. Questa incoerenza porta alla rabbia dei clienti quando ClienteB gli piace lo stesso prodotto, lo paga e viene avvisato con un messaggio di pagamento riuscito ma non riceve la sua ultima Xbox Series X.

Qui, per assicurarsi che l'applicazione non debba affrontare problemi di integrità dei dati ogni volta che i dati cambiano nel database Oracle principale, NCache fornisce supporto di Dipendenza da Oracle.

Per utilizzare questa funzione di dipendenza, NCache ti consente di parametrizzare la tua query Oracle con OracleCacheDependency metodo che accetta i valori dei parametri in fase di esecuzione. In questo modo si ridurrà il numero di volte in cui la query deve essere compilata su Oracle Server, migliorando di dieci volte le prestazioni dell'applicazione.

NCache Dettagli                 Dipendenza della cache da Oracle                     Configura l'ambiente Oracle

 

C'è molto di più che puoi fare con OracleCacheDependency. Ecco un elenco di alcune funzioni molto utili supportate con questa dipendenza Oracle.

Ricarica automaticamente l'elemento della cache tramite il provider di lettura passante

OracleCacheDependency è responsabile dell'invalidazione di un elemento della cache una volta modificato nell'origine dati. NCache fornisce Leggi attraverso il fornitore di fonti di supporto nel caso in cui desideri che la cache non solo invalidi, ma recuperi anche l'ultima versione dell'elemento modificato dal server Oracle. Insieme a Leggi tutto opzione abilitata, NCache chiama il Leggi attraverso provider per recuperare i dati aggiornati ogni volta che Oracle Server notifica una modifica alla cache.

Il codice seguente spiega come ottenere questa funzionalità:

NCache Dettagli                 Dipendenza della cache da Oracle                     Provider di lettura

 

Dipendenza Oracle basata su stored procedure

NCache supporta Dipendenza Oracle basata su stored procedure se la tua preferenza risiede nel mantenere tutte le tue query Oracle all'interno del database Oracle. Queste procedure memorizzate sono precompilate sul server Oracle e vengono eseguite molto più velocemente delle query Oracle dinamiche.

Per creare una stored procedure in Oracle, vedere questo esempio:

Chiamare questa stored procedure nella tua applicazione .NET è facile. Usa il seguente snippet come esempio.

 

NCache Dettagli                 Dipendenza della cache da Oracle                     Dipendenza Oracle tramite Stored Procedure

Perché sincronizzare NCache con Oracle Server?

Nessuno vuole che la propria applicazione su cui hanno lavorato così duramente fallisca solo perché sta elaborando dati obsoleti. Perdi entrambi gli affari e affronti in quel modo. Ma NCache, con grande facilità, ti fornisce Oracle Dependency che mantiene la tua cache sincronizzata con il tuo database Oracle per garantire che la cache che stai utilizzando a tuo vantaggio non ti deluderà.

NCache Dettagli                                Scaricare NCache                          Confronto edizione