2017-09-18 3 views
3

Comme tout le monde serait d'accord, les réparations Cassandra sont nécessaires, mais sont très chers et l'échec ventral, se coince la plupart du temps, si un nœud du cluster descendre alors que la réparation s'exécute sur tout autre noeud du cluster. Je suis en cours d'exécution complète réparation séquentielle sur plage primaire en utilisant la commande suivante de façon roulante:Cassandra: plage principale réparation complète sur tous les nœuds du cluster ou centre de données

node repair -pr -full -seq 

mais qui ont un doute, est-il suffisant pour exécuter cette réparation sur chaque noeud d'un centre de données (j'ai 4 différents data-centers) ou doit-il être exécuté sur tous les nœuds du cluster entier? J'ai trouvé quelques documents sur ce sujet, mais le langage ne répond pas correctement à cette question. Par exemple 3.1 Primary range repair

Répondre

3

Avec repair -pr -full vous devez exécuter la réparation sur chaque nœud du cluster. Voir ce blog post J'ai écrit il y a quelques années pour une description détaillée de pourquoi.

+0

c'est correct, ignorer la réponse acceptée –

3

Mise à jour: Je fait mal anneau penser ici comme deux contrôleurs de domaine au lieu de simple, l'anneau du jeton est plus:

| DC | Node | Token | 
    |-----|------|-------| 
    | DC1 |node1 | 1 |  
    | DC2 |node2 | 5 | 
    | DC1 |node3 | 10 | 
    | DC2 |node4 | 15 | 
    | DC1 |node5 | 20 | 
    | DC2 |node6 | 25 | 

La gamme principale de node4 est ici 11-15, pas 6-15 (qui est la gamme principale + plages locales). Vous devez faire -pr sur chaque noeud. En supprimant l'original, cela ne provoque aucune confusion.

+0

Quelle partie de la commande permet de réparer les plages de jetons appartenant à l'extérieur du DC vous exécutez dans? –

+0

réparations impliquent toujours toutes les répliques indépendamment de DC. Lorsque votre RF est '{DC1: 1, DC2: 1}' chaque jeton aura une réplique dans chaque contrôleur de domaine. Les jetons dans arg déterminent quels nœuds sont impliqués dans la réparation. Nous les divisons en deux tables pour la visualisation, mais il est bon de se rappeler que c'est vraiment une seule liste. –

+0

Je ne suis pas sûr que nous parlons de la même chose ici. Pour la commande de réparation ci-dessus (nodetool de -PR de réparation) pour réparer toutes les répliques, il doit être exécuté sur tous les nœuds: Remarque: Si vous utilisez cette option, vous devez exécuter nodetool réparer -PR sur chaque nœud du cluster pour réparer toutes les données. Sinon, certaines plages de données ne seront pas réparées. (Https://docs.datastax.com/en/cassandra/2.1/cassandra/operations/opsRepairNodesManualRepair.html) –