Elaborazione del flusso nella cache
L'archiviazione di grandi quantità di dati (file multimediali o documenti PDF di grandi dimensioni) direttamente nella cache utilizzando l'API della cache è inefficiente. Dovrai prima caricare l'intero file nella memoria dell'applicazione e poi inserirlo nella cache come oggetto singolo. Alla fine il risultato è un maggiore consumo di memoria sul lato client. NCache fornisce l'elaborazione del flusso attraverso NCache API, che consente di leggere o scrivere dati binari di grandi dimensioni nella cache sotto forma di blocchi più piccoli. Inoltre, ti consente di aprire contemporaneamente più flussi paralleli nella cache.
Stream: elaborazione quando è utile
Supponiamo di avere un'applicazione ad alto traffico che contiene file multimediali di grandi dimensioni che possono essere visualizzati dagli utenti, mentre conservi i file multimediali visualizzati di frequente nella cache per un accesso rapido. Aggiungere e recuperare un file multimediale di grandi dimensioni nella cache può essere costoso se lo aggiungi o lo recuperi contemporaneamente, anche in modo asincrono. Nel frattempo, tali applicazioni richiedono prestazioni elevate e risposta in tempo reale. A questo proposito, l'elaborazione del flusso può ridurre efficacemente tempo e costi di memoria consentendo di scrivere e leggere oggetti di grandi dimensioni sotto forma di blocchi.
avvertimento
In NCache, serializzazione/deserializzazione, compressione/decompressione o crittografia/decrittografia non vengono applicate all'elaborazione del flusso.
Buffer di flusso
In generale, i flussi vengono recuperati direttamente o inseriti nello spazio di archiviazione specificato (qui nella cache). Puoi anche aggiungere un buffer tra archiviazione e flusso. Quindi il flusso viene prima aggiunto a quel buffer. Una volta che il buffer è pieno, viene scritto nella cache o caricato dove necessario. Per utilizzare un buffer in streaming, devi solo specificare la dimensione del buffer. Il buffering può fornire un significativo incremento delle prestazioni riducendo il tempo di risposta.
Note:
I dimensione predefinita di un buffer di flusso è 4K.
Modalità di streaming
NCache fornisce diverso modalità streaming che consentono l'accesso in lettura/scrittura durante il recupero/aggiornamento dei dati utilizzando i flussi nella cache. Ognuna di queste modalità deve essere specificata in base all'operazione desiderata.
Lettura in streaming
In Read
modalità, le operazioni di lettura possono essere eseguite simultaneamente su un flusso da più client ma in questa modalità non è consentita alcuna operazione di scrittura. Questa modalità può essere specificata quando si vuole garantire la coerenza dei dati in presenza di più applicazioni.
Leggi in streaming senza blocco
In ReadWithoutLock
modalità, le operazioni di scrittura possono essere eseguite in parallelo alle operazioni di lettura perché le operazioni di lettura non acquisiscono alcun blocco per interrompere la scrittura. È possibile leggere i dati specificando ReadWithoutLock
modalità quando è necessario elaborare i dati contemporaneamente.
Scrivi in streaming
In Write
modalità, è possibile eseguire una sola operazione di scrittura su un flusso. Nessuna operazione di lettura è consentita in questa modalità. Anche i thread con blocchi di scrittura non possono leggere quel flusso.
Note:
NCache Il flusso non supporta il file Seek
funzionamento.
Consigli
Dovresti chiudere correttamente un flusso aperto per rilasciare il blocco poiché altri thread potrebbero essere in attesa che quel flusso sia disponibile. Se un flusso non viene chiuso, tutti gli altri thread che tentano di acquisire blocchi riceveranno un'eccezione.
In questa sezione
Aggiungi/Aggiorna dati con Stream
Spiega come aggiungere dati a uno stream o aggiornare i dati aggiunti.
Recupera i dati dai flussi
Spiega come recuperare i dati da un flusso.