
ACID
“DynamoDB can be characterized as a zero-hop DHT, where each node routes a request to the appropiate node directly”

get(key) -> (object, context)put(key, context, object) -> ()Distribuir los datos de forma uniforme entre los nodos
H(k) = f(k) % n_nodos_sistema
H(k) = f(k) % m
m >> n_nodos_sistema

El coordinador replica a los N-1 siguientes nodos del anillo
Todos los nodos conocen las responsabilidades del resto
Los datos se distribuyen en nodos físicos, no virtuales
Consistencia eventual -> Si opero YA, genero una inconsistencia entre nodos
Cómo hago un merge de las distintas versiones?
Una versión? Un Vector Clock!
(nodo, contador)

k, el nodo deberá:
N de la lista de preferencia.R y W.R nodos deberán responder antes de darla por finalizada.W nodos deberán responder antes de darla por finalizada.N nodos saludables de la preference list.W-1 o R-1 nodos, si se trata de una escritura o lectura.W se reduce performance y availability, pero mejora durabilityR se reduce performance y availability, pero mejora consistency.