Question

Nous exécutons un cluster DSE 3.2.2 avec Cassandra et Solr activé, 3 nœuds et un facteur de réplication de 2 dans ce cluster particulier sur des machines virtuelles.

Les données sont écrites directement sur C * à l'aide du client A Java avec le niveau de consistance par défaut (récemment changé en quorum).

Le problème est que lorsqu'on interroge un index le nombre de documents trouvés varie beaucoup . Par conséquent, l'utilisation de la composante STATS sur certaines des valeurs numériques produit également des résultats incohérents.

C'est aussi le cas s'il n'y a actuellement aucune donnée écrite. Depuis, j'ai déclenché manuellement une réparation de NODETOOL sur cette famille de colonnes, qui a déclenché un ré-index des index secondaires (qui a pris environ 5 à 6 heures). Ensuite, les résultats restent incompatibles.

Dans notre cas d'utilisation, les données qui sont obsolètes pour certaines secondes ne sont pas un problème, donc La solution de contournement via Session Stickyness ne résoud pas pour moi. Le problème est que les données restent incompatibles pendant des jours après.

Suivant, un ré-index complet avec Essuyer les données est sur la liste, mais prendra du temps pour terminer.

Mise à jour: au lieu d'une lingette et d'une réindex, je passerai la mise à jour de la dernière version de C * et DSE, puis d'exécuter une réparation, puis d'exécuter un réindex et de rapporter dès que possible au moins) .

Toute suggestion ou expérience partagée avec les incohérences de requête est grandement appréciée!

Mise à jour # 1

Les résultats de la requête restent toujours incompatibles. Chaque nœud semble renvoyer un nombre différent de documents pour ma requête. Le cluster a été mis à niveau en 4.5.1, les SSTABLES ont été mis à niveau, les réparations exécutées et l'intégralité de l'indice SOLR a été reconstruit à l'aide de la gâchette complète Reindex de l'interface graphique SOLR.

La table source de données utilise toujours l'option de stockage compacte "ancienne".

Mise à jour # 2

Après les derniers commentaires, je n'étais pas sûr que d'autres insertions avaient été exécutées dans le même temps. Donc, je m'assurais de détenir des insertions, Ran Nodeool Repair, a fait une reconstruction complète de l'index.

Les requêtes semblent être ok! Cela semble impliquer que les incohérences déjà réapparaissaient après ma dernière tentative et résultent de certains inserts après la reconstruction des index. Je vais essayer de confirmer que cela commence à nouveau les inserts.

Mise à jour n ° 3 Donc, on dirait que les choses sont à nouveau stables! La mise à niveau semble avoir résolu les problèmes initialement, mais en raison de problèmes avec le Changement de transport par défaut de TCP vers http que nous avons trouvé dans les fichiers journaux, les incohérences sont restées. Retournez à HTTP, réparé et réindexé il y a deux jours. Tous les insertions depuis sans aucun problème. Merci pour l'aide! Je vais regarder dans le commutateur TCP <-> à une heure ultérieure.

Était-ce utile?

La solution

Index à long terme Les incohorgences sont principalement causées par des «mutations abandonnées» sur les nœuds de Cassandra: ceux-ci se produisent lorsqu'une écriture est correctement reconnue au client car le CL requis est satisfait, mais certains nœuds «hors du CL» n'ont pas réellementécrivez-le, ce qui signifie qu'ils ne l'ont pas indexé non plus.

Ce type d'incohérence est automatiquement résolu par Cassandra via la réparation de lecture et la transmission des affichages, mais peut également nécessiter une réparation de nœuds manuelle;Dans tous les cas, le réindexage ne vous aide pas, car l'incohérence est au niveau de la base de données d'abord.

Les versions DSE à partir de 3.2.5 doivent inclure une solution de bogue Cassandra qui réduit considérablement les mutations abandonnées: https://issues.apache.org/jira/browse/cassandra-6510

S'il vous plaît laissez-nous savoir votre version DSE, et si la mise à niveau aide.

Autres conseils

Les incohérences occasionnelles telles que ce qui est décrit a été corrigée dans la série 4.x de versions.Est-il possible de passer à la nouvelle version?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top