Casa Finanza personale Applicando i metodi di coerenza in NoSQL - dummies

Applicando i metodi di coerenza in NoSQL - dummies

Sommario:

Video: Tecniche di Vendita - Frank Merenda e il Corso Venditore Vincente 2025

Video: Tecniche di Vendita - Frank Merenda e il Corso Venditore Vincente 2025
Anonim

La proprietà consistenza di un database significa che una volta che i dati sono stati scritti correttamente in un database, le query che seguono sono in grado di accedere ai dati e ottenere una visualizzazione coerente dei dati. In pratica, ciò significa che se si scrive un record in un database e si richiede immediatamente quel record, si è sicuri di vederlo. È particolarmente utile per cose come ordini Amazon e bonifici bancari.

La coerenza è una scala scorrevole, tuttavia, e un argomento troppo profondo per essere coperto qui. Tuttavia, nel mondo NoSQL, la coerenza generalmente rientra in uno dei due campi:

  • Consistenza ACID (ACID sta per Atomicità, Consistenza, Isolamento, Durabilità): ACID significa che una volta scritti i dati, si ha piena coerenza in legge.

  • Eventuale coerenza (BASE): BASE significa che una volta scritti i dati, alla fine verrà visualizzato per la lettura.

Si è scatenata una battaglia tra persone che credono che una consistenza forte in un database non sia richiesta e coloro che credono che sia assolutamente necessario (tradurre persone in Aziende NoSQL "dipartimenti di marketing! ).

La realtà è una via di mezzo. È importante che il post di Facebook di una persona non venga visto da tutti i suoi amici per cinque minuti? No, probabilmente no. Cambia "Post di Facebook" in "transazioni finanziarie da un miliardo di dollari", però, e il tuo atteggiamento cambia rapidamente! Quale approccio di coerenza scegli dipende dalla situazione. Nella mia esperienza, tuttavia, una forte coerenza è sempre la scelta in situazioni di sistema aziendale mission-critical.

ACID

ACID è un insieme generale di principi per i sistemi transazionali, non qualcosa legato esclusivamente ai sistemi relazionali, o anche solo ai database, quindi vale la pena di saperlo. ACID significa fondamentalmente " Questo database ha le funzionalità per impedire di danneggiare o perdere dati, " che non è un dato per tutti i database. In effetti, la stragrande maggioranza dei database NoSQL non fornisce garanzie ACID.

Foundation DB, MarkLogic e Neo4j sono eccezioni notevoli. Alcuni database NoSQL forniscono una garanzia di livello inferiore denominata Verifica e imposta che verifica se qualcun altro ha modificato un documento prima di consentire il completamento di una transazione. Questo comportamento è solitamente limitato perché tende ad essere implementato su base record singola.

MongoDB è un database notevole che fornisce funzionalità di verifica e impostazione. Con MongoDB, un intero valore dei dati può essere bloccato durante un aggiornamento, impedendo in tal modo tutte le operazioni di lettura e tutte le operazioni di scrittura fino al completamento dell'operazione.L'azienda sta lavorando per rimuovere questa limitazione, però.

BASE

BASE significa che invece di fare garanzie ACID, il database ha un bilanciamento sintonizzabile di consistenza e disponibilità dei dati. Questo è in genere il caso in cui i nodi in un determinato cluster di database fungono da gestori primari di una parte del database e altri nodi contengono repliche di sola lettura.

Per garantire che tutti i client visualizzino tutti gli aggiornamenti (ovvero abbiano una visione coerente dei dati), una scrittura sul nodo primario che tiene i dati deve essere bloccata fino a quando tutte le repliche di lettura sono aggiornate. Questo è chiamato due - commit di fase - la modifica viene eseguita localmente ma applicata e confermata al client solo quando tutti gli altri nodi vengono aggiornati.

BASE rilassa questo requisito, richiedendo solo un sottoinsieme dei nodi che mantengono gli stessi dati da aggiornare affinché la transazione abbia successo. Qualche tempo dopo il commit della transazione, la replica di sola lettura viene aggiornata.

Il vantaggio di questo approccio è che le transazioni sono impegnate più velocemente. Avere repliche live leggibili significa anche che puoi diffondere il carico di lettura dei dati, rendendo la lettura più veloce.

Lo svantaggio è che i client che si connettono ad alcune delle repliche di lettura potrebbero visualizzare informazioni non aggiornate per un periodo di tempo non specificato. In alcuni scenari, questo stato va bene. Se pubblichi un nuovo messaggio su Facebook e alcuni dei tuoi amici non lo vedono per un paio di minuti, non è una perdita enorme. Se si invia un ordine di pagamento alla propria banca, tuttavia, è possibile che si desideri una transazione immediata.

Un approccio alternativo alle repliche di sola lettura consiste nell'avere un condiviso - niente cluster in cui solo un nodo su un cluster serve sempre una determinata parte del database.

Condiviso-nulla non significa che si perde la replica, però. I database che utilizzano questo metodo tipicamente replicano i propri dati in un'area secondaria su un altro nodo o nodi primari, ma solo un nodo è il master per le letture e le scritture in qualsiasi momento.

I cluster shared-nothing hanno il vantaggio di un modello di consistenza più semplice ma richiedono un commit a due fasi per le repliche. Questo fatto indica che la transazione si blocca mentre tutte le repliche vengono aggiornate. (Un blocco interno più blocco per altri nodi ti dà due fasi.)

Questo di solito ha meno impatto dei cluster di dati condivisi con repliche di sola lettura, tuttavia, poiché le aree di dati della replica shared-nothing non ricevono richieste di lettura per questo parte del database. Pertanto, i commit a due fasi sono più veloci su un cluster shared-nothing rispetto a un cluster con repliche leggibili.

Scegliere ACID o BASE?

Come ci si potrebbe aspettare, gran parte dell'argomento è perché i fornitori NoSQL possono differenziarsi rispetto ai loro concorrenti rivendicando un approccio diverso e unico. È interessante notare, tuttavia, il numero di venditori NoSQL con conformità ACID sulla loro roadmap.

Alcuni database NoSQL hanno la conformità ACID sulla loro tabella di marcia, anche se sono proponenti di BASE, che mostra quanto le garanzie ACID siano rilevanti per sistemi aziendali, di missione - critici .

Molte aziende usano prodotti di consistenza BASE quando testano le idee perché sono libere, ma poi migrano verso un database a pagamento compatibile con ACID quando vogliono andare in diretta su un sistema mission-critical.

Il modo più semplice per decidere se è necessario ACID è considerare le interazioni tra persone e altri sistemi con i dati. Ad esempio, se aggiungi o aggiorni dati, è importante che la prossima query sia in grado di vedere la modifica? In altre parole, le decisioni importanti dipendono dallo stato attuale del database? Vedendo dati leggermente obsoleti significa che quelle decisioni potrebbero essere fatalmente viziate?

Nei servizi finanziari, la necessità di coerenza è ovvia. Pensa ai commercianti che acquistano azioni. Hanno bisogno di controllare il saldo di cassa prima di fare trading per assicurarsi che abbiano i soldi per coprire il commercio. Se non vedono il giusto equilibrio, decidono di spendere soldi per un'altra transazione. Se il database che stanno interrogando è solo alla fine coerente, potrebbero non vedere una mancanza di fondi sufficienti, esponendo così la loro organizzazione al rischio finanziario.

Casi simili possono essere costruiti per ACID su BASE in sanità, difesa, intelligence e altri settori. Tutto si riduce ai dati, tuttavia, e all'importanza sia della tempestività che della sicurezza dei dati.

Applicando i metodi di coerenza in NoSQL - dummies

Scelta dell'editore

Visio 2007 For Dummies Cheat Sheet - dummies

Visio 2007 For Dummies Cheat Sheet - dummies

Utilizzando i tasti di scelta rapida in Microsoft Visio 2007 per lavorare con le forme, eseguire azioni comuni i comandi e le finestre di dialogo aperte, insieme alle barre degli strumenti di Visio, ti aiuteranno a creare diagrammi efficaci in modo rapido e semplice.

Che combina documenti in WordPerfect 12 - dummies

Che combina documenti in WordPerfect 12 - dummies

Ogni documento di WordPerfect vive nel proprio piccolo file accogliente sul disco rigido. Ma a volte vuoi abbattere i muri tra i tuoi documenti e metterli insieme, organizzare una piccola festa o qualsiasi altra cosa. Supponiamo che uno dei tuoi documenti contenga una descrizione standard del prodotto che vendi - future sul cioccolato. Quindi ...

Correzione degli errori con WordPerfect Office 2002 - dummies

Correzione degli errori con WordPerfect Office 2002 - dummies

La funzione QuickCorrect di wordPerfect, attivata per impostazione predefinita, fornisce correzione degli errori as-you-type. Digitare una parola in modo errato e WordPerfect lo corregge non appena si colpisce la barra spaziatrice. Ad esempio, se si digita teh, WordPerfect presuppone che l'utente intendesse veramente scrivere il testo, quindi il programma cambia automaticamente in. Non ti infastidisce nemmeno ...

Scelta dell'editore

Flash CS5 Pubblica impostazioni per file HTML - dummies

Flash CS5 Pubblica impostazioni per file HTML - dummies

Per presentare filmati Adobe Flash Creative Suite 5 sul Web, dovrai pubblicare un file HTML che contenga il tuo file SWF Flash. Questo file HTML non solo visualizza il filmato ma include anche tutto il codice necessario per controllare le dimensioni, l'aspetto e le opzioni di runtime (come ad esempio la ripetizione del filmato). Il file HTML ...

Come aggiungere il codice di stop con il pannello operativo in Adobe Flash CS6 - dummies

Come aggiungere il codice di stop con il pannello operativo in Adobe Flash CS6 - dummies

Scoprirai che la codifica tramite la finestra dell'Editor di codice del pannello Azioni in Adobe Flash CS6 offre una notevole flessibilità per alcune attività come l'aggiunta di un'azione di arresto nel video Flash. L'istruzione stop () fa esattamente quello che sembra: blocca la timeline su qualunque frame su cui è posizionata. Un uso comune di ...

Flash CS5 Pubblica impostazioni per file SWF - dummies

Flash CS5 Pubblica impostazioni per file SWF - dummies

Adobe Flash Creative Suite 5 I file SWF sono filmati compressi utilizzati da il Flash Player per la visualizzazione sul Web o direttamente sul computer dell'utente. Quando si sceglie di pubblicare un file SWF, è possibile specificare le impostazioni che determinano la versione, la sicurezza e la qualità. Le impostazioni SWF sono disponibili nella scheda Flash ...

Scelta dell'editore

Crea volantini e annunci con Photoshop Elements 10 - manichini

Crea volantini e annunci con Photoshop Elements 10 - manichini

Se vendi cuccioli o pubblichi uno spazio aperto casa, aggiungere una foto a un annuncio o un volantino aiuta davvero a riportare a casa il messaggio. Con Photoshop Elements 10, è facile massimizzare le opportunità di vendita. Ecco i passaggi abbreviati per creare rapidamente un annuncio o un volantino: Nella modalità Modifica foto completa, scegli Archivio → Nuovo → File vuoto. ...

Crea il tipo di paragrafo in Photoshop Elements 10 - dummies

Crea il tipo di paragrafo in Photoshop Elements 10 - dummies

Se hai pezzi di testo più grandi, di solito è più pratico per inserire il testo in Photoshop Elements 10 come tipo di paragrafo. L'inserimento del tipo di paragrafo è simile all'inserimento di testo in un programma di elaborazione testi o di impaginazione, tranne per il fatto che il testo è contenuto all'interno di un rettangolo di selezione. Quando si digita e si arriva alla fine di ...

Crea una presentazione da Photoshop Elements 10 - dummies

Crea una presentazione da Photoshop Elements 10 - dummies

Crei un file di progetto nell'Editor di diapositive in Photoshop Elements 10 e quindi esportarlo per un numero di usi diversi. Un progetto Photoshop Elements ha un vantaggio rispetto a un documento PDF in relazione alla revisione del contenuto. È possibile semplicemente aprire il progetto, apportare revisioni e produrre la presentazione - ...