Quale scrittura è giusta? Uno sguardo ai metodi di memorizzazione nella cache I / O

Autore: Laura McKinney
Data Della Creazione: 1 Aprile 2021
Data Di Aggiornamento: 25 Giugno 2024
Anonim
Quale scrittura è giusta? Uno sguardo ai metodi di memorizzazione nella cache I / O - Tecnologia
Quale scrittura è giusta? Uno sguardo ai metodi di memorizzazione nella cache I / O - Tecnologia

Contenuto


Fonte: Kgtoh / Dreamstime.com

Porta via:

La velocità delle applicazioni dipende in gran parte dalla velocità I / O della cache. Qui confrontiamo diversi metodi di I / O della cache.

Le prestazioni delle applicazioni sono radicate nella velocità: velocità nel completamento delle richieste di lettura e scrittura richieste dalle applicazioni dalla propria infrastruttura. L'archiviazione è responsabile della velocità di restituzione delle richieste I / O (input / output) e il metodo scelto per eseguire il commit delle scritture e consegnare le letture ha un profondo impatto sulle prestazioni dell'applicazione. Un metodo comune nel settore odierno è quello di utilizzare SSD per la memorizzazione nella cache su memoria disco rotante tradizionale, array ibridi o array all-flash. La maggior parte delle soluzioni di cache ha letture accelerate per le applicazioni, ma rimane la vera domanda: "Quale scrittura è giusta?"


Vediamo perché l'ottimizzazione della scrittura influisce in modo così drastico sulle prestazioni della tua applicazione. Scrivere I / O implica che si tratta di nuovi dati non scritti nella memoria sottostante. Nella memoria SAN tradizionale, ad esempio, le scritture vengono scritte direttamente sulla memoria sottostante e quindi restituite all'applicazione. Con le applicazioni che scrivono costantemente nuovi dati, principalmente applicazioni di database di grandi dimensioni (SQL, ecc.), I dischi di filatura tradizionali non riescono a tenere il passo. La memorizzazione nella cache degli SSD è diventata una soluzione che ha permesso di scrivere le scritture localmente e memorizzarle nella cache in base alla frequenza della domanda dell'applicazione; tuttavia, esistono diversi metodi per la relazione della cache di scrittura con l'archiviazione sottostante che causano un'enorme differenza nelle prestazioni.

Queste sono le 3 forme di scrittura I / O:


  1. Write-Around (intorno alla cache)
  2. Write-Through (attraverso la cache)
  3. Write-Back (dalla cache)

Tutte e tre le forme hanno diversi vantaggi che si basano principalmente sul tipo di dati che vengono scritti: sequenziale contro casuale. Gli I / O sequenziali sono i più ottimizzati dal disco sottostante (file o flussi video per esempio), mentre gli I / O casuali sono ottimizzati dalla cache. La maggior parte degli apparecchi di memorizzazione nella cache non dispone dell'intelligenza dinamica per modificare la forma della tecnologia di scrittura in base al tipo di dati. Comprendiamo la differenza tra le tre forme di scrittura I / O.

Write-Around

Il write-around, noto anche come modalità di memorizzazione nella cache di sola lettura, è utile solo per liberare spazio per le letture della cache. Gli I / O in arrivo non raggiungono mai la cache. Gli I / O vengono scritti direttamente nella memoria permanente senza memorizzare nella cache alcun dato.

Quale potrebbe essere il vantaggio della cache se non viene utilizzata? Contribuisce a ridurre la cache che viene inondata di I / O di scrittura che non verrà successivamente riletta, ma presenta lo svantaggio che una richiesta di lettura per i dati scritti di recente creerà un "mancato rilevamento della cache" e dovrà essere letta da una memoria di massa più lenta e esperienza di latenza più elevata. Se l'applicazione è transazionale, come la maggior parte delle applicazioni mission-critical, la velocità dell'applicazione rallenterà e le code I / O aumenteranno. Fondamentalmente il valore di questa modalità sarebbe per rari casi di utilizzo perché richiede tempo, è lento e non performante.

Scrivere attraverso

Questo metodo è oggi comunemente utilizzato nella memorizzazione nella cache e nelle soluzioni di archiviazione ibrida. Il write-through è noto come modalità di memorizzazione nella cache di lettura, il che significa che tutti i dati vengono scritti nella cache e nella memoria sottostante contemporaneamente. La scrittura è considerata SOLO completa una volta che è stata scritta nella memoria. Sembra abbastanza sicuro in realtà ... ma c'è un inconveniente di velocità.

Ecco il problema: ogni operazione di scrittura viene eseguita due volte, nella cache e quindi nella memoria permanente. Prima che le applicazioni possano procedere, l'archiviazione permanente deve riportare il commit I / O nella cache, quindi di nuovo nelle applicazioni. Questo metodo viene comunemente implementato per la resilienza ai guasti e per evitare l'implementazione di una strategia di failover o HA con cache poiché i dati risiedono in entrambe le posizioni. Tuttavia, Write-Through è soggetto a latenza poiché il commit I / O è determinato dalla velocità della memoria permanente, che non corrisponde alla velocità della CPU e della rete. Sei veloce quanto il componente più lento e Write-Through può criticare in modo critico la velocità dell'applicazione.

Nessun bug, nessuno stress: la tua guida passo passo alla creazione di software che ti cambia la vita senza distruggere la tua vita

Non puoi migliorare le tue capacità di programmazione quando a nessuno importa della qualità del software.

Rispondere

Write-Back migliora i risultati del sistema in termini di velocità, poiché il sistema non deve attendere che le scritture passino allo spazio di archiviazione sottostante.

Quando i dati arrivano per essere scritti, Write-Back inserirà i dati nella cache, un "tutto fatto", e manterrà i dati per la scrittura sul disco di archiviazione in seguito.

Questo risolve molti problemi di latenza, perché il sistema non deve attendere quelle scritture profonde.

Con il giusto supporto, Write-Back può essere il metodo migliore per la memorizzazione nella cache multi-stage. Aiuta quando la cache ha grandi quantità di memoria (cioè memoria misurata in terabyte, non gigabyte) al fine di gestire grandi volumi di attività. I sistemi sofisticati avranno anche bisogno di più di un'unità a stato solido, il che può aggiungere costi. È di fondamentale importanza considerare scenari come mancanza di corrente o altre situazioni in cui i dati critici possono essere persi. Ma con la giusta "protezione della cache", Write-Back può davvero velocizzare un'architettura con pochi lati negativi. Ad esempio, i sistemi di write-back possono utilizzare RAID o progetti ridondanti per proteggere i dati.

Sistemi ancora più elaborati aiuteranno la cache e la SAN o il disco di archiviazione sottostante a lavorare l'uno con l'altro come "base di necessità", delegando le scritture alla memoria profonda o alla cache a seconda del carico di lavoro del disco.

La filosofia di progettazione di Write-Back è quella che riflette la risoluzione dei problemi che i sistemi avanzati di gestione dei dati di oggi portano a grandi compiti. Creando un'architettura più complessa e utilizzando una cache in modo complesso, Write-Back elimina i problemi di latenza e, sebbene possa richiedere un maggior sovraccarico, consente una migliore crescita del sistema e meno problemi di crescita.