Conosci il concetto di coppia chiave / valore? Presumendo che tu abbia familiarità con Java o C # questo è nella lingua come una mappa / hash / datatable / KeyValuePair (l'ultimo è nel caso di C #)
Il modo in cui funziona è dimostrato in questo piccolo diagramma di esempio:
Color Red
Age 18
Size Large
Name Smith
Title The Brown Dog
Dove hai una chiave (a sinistra) e un valore (a destra) ... nota che può essere una stringa, int o simili. La maggior parte degli oggetti KVP ti consente di memorizzare qualsiasi oggetto sulla destra, perché è solo un valore.
Poiché avrai sempre una chiave univoca per un particolare oggetto che desideri restituire, puoi semplicemente eseguire una query nel database per quella chiave univoca e ottenere i risultati da qualunque nodo abbia l'oggetto (ecco perché è buono per i sistemi distribuiti, dal momento che ci sono altre cose coinvolte come il polling per i primi n nodi che restituiscono un valore che corrisponde ad altri ritorni dei nodi).
Ora il mio esempio sopra è molto semplice, quindi ecco una versione leggermente migliore di KVP
user1923_color Red
user1923_age 18
user3371_color Blue
user4344_color Brackish
user1923_height 6' 0"
user3371_age 34
Come puoi vedere, la semplice generazione di chiavi consiste nel mettere "user" il numero univoco, un carattere di sottolineatura e l'oggetto. Ancora una volta, questa è una semplice variazione, ma penso che iniziamo a capire che fino a quando possiamo definire la parte a sinistra e averla formattata in modo coerente, possiamo estrarne il valore.
Si noti che non ci sono restrizioni sul valore della chiave (ok, ci possono essere alcune limitazioni, come solo il testo) o sulla proprietà del valore (potrebbe esserci una limitazione della dimensione) ma finora non ho avuto sistemi davvero complessi. Proviamo ad andare un po 'oltre:
app_setting_width 450
user1923_color Red
user1923_age 18
user3371_color Blue
user4344_color Brackish
user1923_height 6' 0"
user3371_age 34
error_msg_457 There is no file %1 here
error_message_1 There is no user with %1 name
1923_name Jim
user1923_name Jim Smith
user1923_lname Smith
Application_Installed true
log_errors 1
install_path C:\Windows\System32\Restricted
ServerName localhost
test test
test1 test
test123 Brackish
devonly
wonderwoman
value key
Ti viene l'idea ... tutti quelli sarebbero archiviati in un'unica "tabella" sui nodi distribuiti (c'è la matematica dietro tutto) e chiederesti semplicemente al sistema distribuito il valore di cui hai bisogno per nome.
Per lo meno, questa è la mia comprensione di come funziona tutto. Potrei avere alcune cose sbagliate, ma queste sono le basi.
link wikipedia obbligatorio http://en.wikipedia.org/wiki/Associative_array