2011-10-13 4 views
3

Je suis un utilisateur récent de Cassandra. Je suis allé à travers les bases, la mise en place de mes schémas et le branchement d'une application Java à une base de données. N'a pas rencontré de problème majeur en mettant en place un exemple d'application. Maintenant, j'ai commencé à jouer avec des nœuds bas et je suis coincé sur la liste du contenu d'une famille de colonnes.Liste une famille de colonnes complète utilisant le quorum de cohérence

J'ai 5 nœuds, 127.0.0.1, 127.0.0.2, 127.0.0.3, 127.0.0.4, 127.0.0.5, et le schéma datastax.com "demo", sauf que j'ai utilisé un replication_factor de 3 au lieu d'un (J'ai gardé la SimpleStrategy). J'ai 3 lignes dans la famille de colonnes "users" (clé "jsmith", "yomama" et "bobbyjo").

Maintenant, je Abattez un noeud, soit 2, 3 ou 5 (je ne l'ai pas touché 1 encore, car il est ma seule graine), et je me connecte à 4, le traitement de la requête CQL suivante:

select Key, full_name, email, state, gender, birth_year from users; 

Comme prévu, il me donne mes 3 lignes même avec 1 noeud manquant. L'étape suivante consiste donc à demander un résultat cohérent.

select Key, full_name, email, state, gender, birth_year from users USING CONSISTENCY QUORUM ; 

Échec. Je ne pouvais pas comprendre. Ayant un facteur de réplication de 3, je suis censé partir avec un noeud abattu. Maintenant, juste pour le plaisir, j'ai ajouté une condition générique comme suit

select Key, full_name, email, state, gender, birth_year from users USING CONSISTENCY QUORUM where KEY IN ('jsmith', 'bobbyjo', 'yomama') ; 

Et maintenant, je reçois mes 3 lignes à l'aide du quorum de cohérence avec un nœud vers le bas. Est-il normal que je ne puisse pas parcourir une famille de colonnes complète en utilisant le quorum avec un nœud abattu, mais je peux quand même énumérer toutes les lignes si je donne à Cassandra leurs clés?

Répondre

1

Quelques questions:

  1. Avez-vous commencé avec 5 noeuds et un RF de 3 ou avez-vous grandi le cluster à 5?

  2. Avez-vous essayé d'émettre l'instruction select qui a initialement échoué après l'émission de celle qui a fonctionné? (Si cela fonctionne, vous venez de voir la lecture-réparation en action - vous n'avez peut-être pas effectué de «réparation nodetool» en fonction de votre réponse à # 1 ci-dessus).

  3. Quelle version d'Apache Cassandra, btw?

+0

1. Créer 5 noeuds frais, créer l'échantillon, puis éteindre un noeud. 2. Oui, essayé plusieurs fois dans un ordre différent. 3. 1,0 RC2. Le 1.0.0 n'a pas été mouillé la semaine dernière, il a été publié hier. – user327961

+0

Si cela se produit encore avec 1.0.1 (1.0.2 est en cours de vote et devrait être disponible dans les prochaines 24 heures), veuillez ouvrir un problème Jira avec les détails ci-dessus. https://issues.apache.org/jira/browse/CASSANDRA – zznate

+0

OK, je vais le tester à nouveau sur une vraie version dès que possible et le soumettre comme un problème via le canal approprié s'il bloque toujours. Je l'ai d'abord mis sur le débordement de pile d'abord parce que je n'étais pas sûr si c'était vraiment une sorte de bogue ou juste une caractéristique que je n'ai pas bien comprise. – user327961

Questions connexes