2017-09-07 4 views
-1

Merci pour votre réponse Nikita. En outre, une clarification plus. Supposons que j'utilise LOCAL_QUORUM pour la cohérence de lecture dans mon cluster multi-DC avec trois DC - DC1, DC2, DC3 avec trois noeuds dans chaque DC avec un facteur de réplication de 3. Pendant la lecture, supposons que la requête atterrit sur un noeud dans DC1. Ce noeud a échoué et, par conséquent, le deuxième noeud dans DC1 est contacté et ainsi de suite et suppose que tous les noeuds dans le DC1 ont échoué. Ensuite, le cluster se connectera à DC2 ou DC3 pour satisfaire le LOCAL_QUORUM, c'est-à-dire recherchera l'accusé de réception à partir de deux lectures cohérentes de l'un ou l'autre des DC (DC2 ou DC3). Je ne m'attends pas à lire un DC2 et un autre de DC3. Ce que je veux demander, c'est que si le cluster revient sur DC2 après l'échec de tous les nœuds DC1, commencera-t-il à évaluer le facteur LOCAL_QUORUM dans la perspective de DC2 et si oui, le cluster l'appellera-t-il read read?Lire cohérence implication LOCAL_QUORUM dans cassandra

+0

est-ce censé être un commentaire à une réponse antérieure? – pinkpanther

Répondre

0

La requête CQL ne touchera pas d'autres centres de données au cas où LOCAL_QUORUM ne peut pas aboutir dans un centre de données local. Cependant les pilotes implémentent une telle fonctionnalité en utilisant DCAwareRoundRobinPolicy comme vous l'avez mentionné, mais il semble que ce soit not recommended. Aussi this article peut être utile pour choisir le niveau de cohérence approprié.