2017-04-06 1 views
1

J'essaie d'expliquer cela à moi-même ..Pourquoi R + W> RF signifie une cohérence immédiate?

Voilà comment je comprends:

Supposons que j'ai 4 noeuds, RF = 3 et CL = QUORUM pour les deux lu & écriture.

Dans ma table (id, titre) j'écris des données {id = 1, title = 'mytext'} alors l'écriture retournera le succès si 2 noeuds écrivent ceci avec succès. Disons que c'est réussi, nous avons maintenant (au moins) 2 noeuds avec {id = 1, title = 'mytext'} et potentiellement un noeud avec (id = 1, title = 'olddata')

Puis toute lecture ultérieure (où id = 1) doit trouver 2 noeuds (QUORUM) avec les mêmes données afin de retourner avec succès qui ne se produira jamais avec les anciennes données. car il reste au maximum 1 noeud contenant les anciennes données.

Est-ce exact?

Répondre

0

Le nombre de nœuds n'est pas si important, plus important est le RF, c'est-à-dire le nombre de nœuds ayant la copie des données. Ainsi, signifie CL Quorum:

2 nœuds confirmer sur écriture 2 noeuds doivent confirmer le lire

Sous le capot de la demande ne va pas en fait à tous les nœuds. Basé sur certaines statistiques, et le composant snitch le coordinateur choisira l'un des nœuds qui ont les données et les autres nœuds seront simplement demandé un hachage, pas toutes les données. Si les données reçues correspondent à un hachage, elles sont renvoyées au client. Si ce n'est pas le cas, le coordinateur demandera les données complètes aux autres nœuds et résoudra le conflit en utilisant la dernière stratégie de gains en écriture.

Pour pouvoir faire cela, les horloges doivent être synchronisées. Habituellement par le ntp ... mais certains vont même jusqu'à installer des récepteurs GPS sur des hôtes pour garder l'horloge très serrée.

En bref, votre raisonnement est totalement o.k.

Et si vous voulez en apprendre un peu plus sur toute la combinaison, il ne fait pas de mal à regarder le lien suivant: https://www.ecyrd.com/cassandracalculator/

+0

Merci beaucoup pour votre temps! Tout est très clair! – jfpicard

+0

pas de problème, je suis heureux d'aider;) –