Casa Finanza personale Gestione delle partizioni in NoSQL - dummies

Gestione delle partizioni in NoSQL - dummies

Sommario:

Video: Common design patterns with Azure Cosmos DB | Azure Friday 2024

Video: Common design patterns with Azure Cosmos DB | Azure Friday 2024
Anonim

La partizione parola viene utilizzata per due concetti diversi in NoSQL land. Una partizione di dati è un meccanismo per garantire che i dati siano equamente distribuiti su un cluster. D'altra parte, una partizione di rete si verifica quando due parti dello stesso cluster di database non possono comunicare.

Su sistemi cluster molto grandi, è sempre più probabile che si verifichi un guasto di un singolo componente. Se un cambio di rete tra server in un cluster fallisce, si verifica un fenomeno denominato (nel gergo del computer) cervello diviso . In questo caso, i singoli server continuano a ricevere richieste, ma non possono comunicare tra loro.

Questo scenario può portare a un'incoerenza dei dati o semplicemente a una ridotta capacità nell'archiviazione dei dati, poiché la partizione di rete con il minor numero di server viene rimossa dal cluster (o "votata" nella modalità Big Brother reale).).

Tolleranza delle partizioni

Sono disponibili due opzioni quando si verifica una partizione di rete:

  • Continuare, a un certo livello, per eseguire operazioni di lettura e scrittura.

  • "Vota fuori" una parte della partizione e decidi di correggere i dati più tardi quando entrambe le parti possono comunicare. Questo di solito implica che il cluster vota una replica di lettura come nuovo master per ciascun nodo partizione master mancante.

Riak consente di determinare quante volte i dati vengono replicati (tre copie, per impostazione predefinita, ovvero n = 3) e quanti server devono essere interrogati affinché una lettura abbia esito positivo. Ciò significa che, se il master principale di una chiave si trova sul lato sbagliato di una partizione di rete, le operazioni di lettura possono ancora riuscire se gli altri due server sono disponibili (ovvero, r = 2 disponibilità di lettura).

Riak gestisce le scritture quando il server della partizione primaria si interrompe utilizzando un sistema chiamato handoff . Quando i dati vengono inizialmente replicati, viene scritto il primo nodo per una particolare partizione chiave, insieme a (di default) due dei seguenti nodi vicini.

Se non è possibile scrivere sul primario, viene scritto il nodo successivo nell'anello. Queste scritture vengono effettivamente passate al nodo successivo. Quando il server primario viene ripristinato, le scritture vengono rieseguite su quel nodo prima che riprenda nuovamente le operazioni di scrittura primarie.

In entrambe queste operazioni, le incoerenze delle versioni possono verificarsi perché repliche diverse possono trovarsi in stati di versione diversi, anche se solo per pochi millisecondi.

Riak impiega ancora un altro sistema chiamato attivo anti - entropia per alleviare questo problema. Questo sistema naviga attraverso i valori aggiornati e assicura che le repliche vengano aggiornate ad un certo punto, preferibilmente il più presto possibile.Ciò aiuta a evitare conflitti sulla lettura mantenendo una velocità di importazione elevata, evitando così un commit a due fasi utilizzato da altri database NoSQL con supporto per il clustering slave master-shared-nothing.

Se si verifica un conflitto di lettura, Riak utilizza legge la riparazione per tentare di restituire solo i dati più recenti. Alla fine, tuttavia, e in base alle impostazioni di coerenza e disponibilità utilizzate, l'applicazione client può essere presentata con più versioni e viene chiesto di decidere autonomamente.

In alcune situazioni, questo compromesso è auspicabile e molte applicazioni possono intuitivamente sapere, in base ai dati presentati, quale versione utilizzare e quale versione scartare.

Indicizzazione secondaria

Gli indici secondari sono indici su dati specifici all'interno di un valore. La maggior parte dei negozi con valore chiave lascia questa indicizzazione all'applicazione. Tuttavia, Riak è diverso, utilizzando uno schema chiamato documento - basato sul partizionamento che consente l'indicizzazione secondaria.

Il partizionamento basato su documenti presuppone che si stiano scrivendo le strutture JSON nel database Riak. È quindi possibile impostare indici su particolari proprietà denominate all'interno di questa struttura JSON, come illustrato:

{"order-id": 5001, "id-cliente": 1429857, "order-date": "2014-09-24 "," Totale ": 134. 24}

Se si dispone di un'applicazione che mostra gli ordini di un cliente per il mese precedente, si desidera interrogare tutti i record, come mostrato, in cui l'ID cliente è un valore fisso (1429857) e la data dell'ordine è all'interno di un intervallo specifico (l'inizio e la fine del mese).

Nella maggior parte dei negozi a valore-chiave, si crea un altro bucket la cui chiave è il numero cliente e il mese combinati e il valore è un elenco di ID ordine. Tuttavia, in Riak, è sufficiente aggiungere un indice secondario sia su id cliente (intero) che su data ordine (data), che occupa spazio di archiviazione aggiuntivo ma presenta il vantaggio di essere trasparente per lo sviluppatore dell'applicazione.

Questi indici sono anche aggiornati dal vivo - il che significa che non vi è alcun ritardo tra l'aggiornamento di un valore del documento in Riak e gli indici aggiornati. Questo accesso dal vivo ai dati è più difficile da realizzare di quanto sembri. Dopo tutto, se gli indici sono incoerenti, non troverai mai i dati mantenuti in modo coerente!

Valutazione di Riak

Basho, l'entità commerciale dietro Riak, afferma che la sua prossima versione 2. 0 Il database NoSQL ha sempre una consistenza forte, un'affermazione che fanno altri venditori NoSQL. L'affermazione dei venditori NoSQL di avere sempre una consistenza forte è come pretendere di essere un vegetariano forte … tranne la domenica quando si mangia roast beef.

Riak non è un database compatibile con ACID. La sua configurazione non può essere modificata in modo che venga eseguita in modalità di conformità ACID. I client possono ottenere dati incoerenti durante le normali operazioni o durante le partizioni di rete. Riak scambia la coerenza assoluta per maggiore disponibilità e tolleranza delle partizioni.

L'esecuzione di Riak in modalità di consistenza forte significa che le sue repliche di lettura vengono aggiornate contemporaneamente al master principale. Ciò implica un commit a due fasi: in pratica, il nodo master scrive sugli altri nodi prima che confermi che la scrittura è completa.

Al momento della stesura di questo documento, la modalità di consistenza forte di Riak non supporta indici secondari o tipi di dati complessi (ad esempio, JSON). Spero che Basho risolverà questo problema nelle prossime versioni del database.

Riak Search (un motore di ricerca Apache Solr rimarchiato e integrato utilizza un modello di aggiornamento eventualmente coerente) può produrre falsi positivi quando si utilizza una consistenza forte. Questa situazione si verifica perché i dati possono essere scritti e quindi la transazione viene abbandonata, ma i dati vengono ancora utilizzati per l'indicizzazione, lasciando un risultato di ricerca "falso positivo": il risultato non è più valido per la query di ricerca.

Riak utilizza anche un processo sentinella separato per determinare quale nodo diventa un master in condizioni di failover. Questo processo, tuttavia, non è altamente disponibile, il che significa che per alcuni secondi è possibile che, mentre una nuova copia del processo sentinella sia portato online, non sia possibile aggiungere un nuovo nodo o un nuovo maestro eletto. È necessario essere consapevoli di questa possibilità in condizioni di failover ad alto stress.

Riak ha alcune caratteristiche interessanti per gli sviluppatori di applicazioni, come l'indicizzazione secondaria e il supporto del valore JSON integrato. La replica del database per il ripristino di emergenza verso altri data center è disponibile solo nella versione a pagamento, il cui prezzo può essere trovato sul loro sito Web (prezzi di noleggio mostrati, prezzi di licenza perpetui dati solo su richiesta).

Lo strumento di monitoraggio del cluster Riak Control non è molto apprezzato a causa del tempo di latenza durante il monitoraggio dei cluster. Riak ha molte promesse e se Basho aggiungerà più imprese - livello strutture di gestione dei cluster nelle versioni future, diventerà un prodotto best-in-class.

Gestione delle partizioni in NoSQL - dummies

Scelta dell'editore

Scattare foto digitali con uno zoom ottico - dummy

Scattare foto digitali con uno zoom ottico - dummy

La fotocamera digitale potrebbe avere uno zoom ottico, che è un Obiettivo zoom attuale vecchio stile (al contrario di uno zoom digitale). Per utilizzare lo zoom ottico della fotocamera digitale per scatti ravvicinati, segui questi passaggi di preparazione delle immagini prima di attivare il pulsante o lo switch di zoom:

La reflex digitale e la sensibilità alla luce - dummy

La reflex digitale e la sensibilità alla luce - dummy

La tua reflex digitale ha un'opzione per determinare la sensibilità del sensore della fotocamera è alla luce. Le fotocamere digitali sono le stesse delle fotocamere a pellicola in quanto la sensibilità alla luce è determinata dalla valutazione ISO. Il vantaggio di una fotocamera digitale è che non è necessario cambiare pellicola per modificare le valutazioni ISO. Quando aumenti ...

Scatti grandangolari con obiettivi standard - manichini

Scatti grandangolari con obiettivi standard - manichini

Fotografia grandangolare con un angolo di campo maggiore rispetto alla lunghezza focale normale o teleobiettivo. A volte si percepiscono le foto come molto espansive. Altre volte, a malapena lo si nota. Dipende tutto dal soggetto e da come si inquadra la scena. Questa figura mostra una scena di terreni agricoli che è stata scattata utilizzando un Sony APS-C ...

Scelta dell'editore

Come usare il meta tag DESCRIPTION - dummies

Come usare il meta tag DESCRIPTION - dummies

I meta tag sono tag HTML speciali che puoi utilizzare per trasportare informazioni, che i browser o altri programmi possono quindi leggere. Quando i motori di ricerca di Internet furono creati per la prima volta, i webmaster includevano i meta tag nelle loro pagine per rendere più facile per i motori di ricerca determinare le pagine. I motori di ricerca hanno utilizzato anche questi meta ...

Come scrivere un grande tag Title Web Marketing - dummies

Come scrivere un grande tag Title Web Marketing - dummies

Scrivere un tag title è fondamentale per il successo del web marketing e coinvolge più che mettere le parole chiave prima. I motori di ricerca mostrano il tag parola chiave nella parte superiore di ciascun elemento nelle pagine dei risultati dei motori di ricerca (SERP). Un tag del titolo ben scritto potrebbe aumentare le probabilità che un cliente in ricerca faccia clic sul tuo annuncio. Se ...

In che modo Yahoo! Cerca negli elenchi di Internet e dei ranghi - dummies

In che modo Yahoo! Cerca negli elenchi di Internet e dei ranghi - dummies

Quando le persone effettuano ricerche sul Web utilizzando Yahoo! , ottengono una combinazione di risultati organici e pagati. Se lavori per una società più grande, potresti provare Yahoo! La ricerca inoltra Pro per ottenere un vantaggio rispetto alla concorrenza e puoi persino registrare il tuo sito con Yahoo! Directory. Yahoo! I risultati di ricerca organica ...

Scelta dell'editore

Di Spotify su ShareMyPlaylists. it Funzionalità del sito - dummies

Di Spotify su ShareMyPlaylists. it Funzionalità del sito - dummies

ShareMyPlaylists (o SMP, in breve) è stato uno dei primi siti di condivisione di playlist Spotify e continua a innovare e offrire nuove funzionalità ai visitatori. Il mantra del sito è "Long Live the Mixtape", e qui troverai tantissime creazioni accuratamente compilate da migliaia di utenti. Dopo aver creato una playlist Spotify piena di ...

Spotify Unlimited - dummies

Spotify Unlimited - dummies

Spotify Unlimited è un modo brillante per ascoltare tutta la musica che vuoi senza limiti. È come una persona speciale che ti compra da mangiare e da bere tutta la sera per non doverti preoccupare del conto. È come essere in grado di dormire nel weekend senza preoccuparsi del lavoro o se ...

I generi di Spotify - dummies

I generi di Spotify - dummies

Che si tratti di hard rock, techno, pop, jazz, industrial, indie pop, folk , classico, heavy metal, valzer o qualsiasi altra cosa ti piaccia, Spotify ha il genere o il tipo di musica coperto. Puoi cercare i generi comuni da Spotify. Sebbene Spotify abbia pubblicato un elenco di quasi 1, 000 generi noti, non tutti saranno in grado di offrire ...