Quale approccio tecnico utilizza i database NoSQL per l'accesso rapido ai valori-chiave

4

Ad esempio,

In NoSQL, technically replication and sharding approach is used for supporting large data.

Leggeva questo articolo sui casi d'uso NoSQL. Indica che NoSQL può essere utilizzato per accesso rapido ai valori-chiave :

This is probably the second most cited virtue of NoSQL in the general mind set. When latency is important it's hard to beat hashing on a key and reading the value directly from memory or in as little as one disk seek. Not every NoSQL product is about fast access, some are more about reliability, for example. but what people have wanted for a long time was a better memcached and many NoSQL systems offer that.

Quale approccio tecnico assume i database NoSQL a valori-chiave per fornire un accesso più rapido ai valori-chiave ?

replication and sharding è a large data

??? è a faster key-value access

    
posta student 01.12.2016 - 09:12
fonte

1 risposta

3

La prima grande differenza è che gli archivi a valori-chiave richiedono all'utente di avere l'intera chiave per la ricerca, e solo può essere cercato dalla chiave. Contrariamente a ciò con i database relazionali che in genere possono essere cercati da valori parziali di qualsiasi colonna. Ciò significa che un archivio di valori-chiave può creare un hash di quella chiave e utilizzare tale hash per determinare un nodo preciso e la posizione del disco in cui è archiviato il record. I database relazionali hanno un processo molto più coinvolto per individuare e recuperare un record, a causa della complessità extra intrinseca.

Questa singola chiave rende possibile anche un singolo ordine su disco. Gli archivi di valori-chiave in genere conservano una cache di memoria, un log di commit di sola append, quindi occasionalmente scrivono su disco una memoria permanente compattata e ordinata. I database relazionali non hanno un singolo ordinamento che abbia senso, quindi non possono trarre vantaggio da questa ottimizzazione.

La maggior parte degli archivi a valore-chiave offre anche la possibilità di regolare il livello di coerenza, quindi se si dispone di 3 repliche di ciascun record, è possibile accettare una scrittura completa dopo che solo 2 nodi sono stati riportati completi, ad esempio o anche 1, se ti piace vivere al limite e i dati non sono critici. Tutte e 3 le repliche verranno scritte alla fine, ma il client non lo aspetta. Questa è chiamata consistenza finale . La maggior parte dei database relazionali mantiene la coerenza assoluta in ogni momento, il che mantiene i tuoi dati in qualche modo più sicuri, ma anche la velocità dei costi.

Ultimo ma non meno importante, dal momento che i negozi di valore-chiave possono essere consultati solo con le loro chiavi, gli utenti finiscono per scambiare spazio di archiviazione per la velocità. Laddove gli utenti di database relazionali potrebbero eseguire un join che è relativamente lento da eseguire al momento della query, gli utenti con valori-chiave avranno scritto tabelle ridondanti in parallelo al momento della scrittura e possono eseguire query altrettanto velocemente di qualsiasi altra query a tabella singola. Ad esempio, un join relazionale di una tabella players e location finirebbe come una query utilizzando una tupla (player, location) per una chiave, con record completamente ridondanti in una tabella contenente solo la chiave player .

In sintesi, gli archivi a valori-chiave accettano limitazioni come richiedere chiavi complete per la ricerca, mancanza di join, coerenza finale e necessità di spazio di archiviazione aggiuntivo in cambio di una maggiore velocità.

    
risposta data 02.12.2016 - 19:50
fonte

Leggi altre domande sui tag