0
votes

Trop de pierres tombales à Cassandra

J'ai une table nommée ' titulaire ' qui a la partition unique dans laquelle pour chaque heure, nous aurons 60k entrées,

J'ai une autre table nommée ' titulaire de lahistoire "qui a la date" "comme partitionné, donc chaque jour record de la table" titulaire "sera copié au" titulaire " '

Il y aura un travail en cours d'exécution dans l'application
i) qui recueille toutes les entrées plus anciennes dans la table des titulaires et copie à la table de détenteur de la table ii) Supprimer les anciennes entrées de la table de titulaire

Le problème est-il - il y aura trop de pierres tombales créées dans la table du titulaire.

Comme défaut, les pierres tombales seront effacées après 10 jours (864000 secondes) gc_grace_seconds

Mais je ne veux pas garder la pierre tombale pendant plus de 3 heures,

1) Il est donc bon de définir la gc_grace_seconds à 3 heures?
2) ou il est bon de définir la par défaut_time_to_live à 3 heures?

Quelle est la meilleure solution pour supprimer la pierre tombale?

Aussi quelles sont les conséquences sur la réduction de la gc_grace_secondes de 10 jours à 3 heures? Où nous aurons un impact?

Anyhelp est apprécié.


0 commentaires

3 Réponses :


0
votes

Si vous réduisez le paramètre GCGracesConds trop bas et le temps de récupération de tout noeud plus long que les GCGronseconds, dans ce cas, une fois que l'un de ces nœuds est revenu en ligne, il penserait à tort que tous les nœuds qui avaient reçu la suppression avait effectivement raté une écriture et cela commencerait à réparer tous les autres nœuds. Je recommanderais d'utiliser efault_time_to_live et essayer d'essayer.


0 commentaires

0
votes

Pour répondre à votre cas particulier: Comme la table ' titulaire ' contient une seule partition, vous pouvez supprimer toute la partition avec une seule "Supprimer par la clé de partition", créant efficacement une seule pierre tombale.

Si vous supprimez la partition une fois par jour, vous vous retrouverez avec une pierre tombale par jour ... c'est tout à fait acceptable.

1) avec gc_grace_seconds est égal à 3 heures et si RF> 1, vous ne serez pas garanti de récupérer de manière cohérente à partir d'une défaillance de nœuds de plus de 3 heures

2) avec par défaut_time_to_live est égal à 3 heures, chaque enregistrement sera supprimé en créant une pierre tombale 3 heures après l'insertion

Vous pouvez donc garder par défaut GC_GRACE_SECONDS défini sur 10 jours et prendre soin de supprimer vos enregistrements quotidiens avec quelque chose comme Supprimer de la table où partitionkey = x


EDIT: Répondre à votre commentaire sur le transfert de la transmission ...

Disons rf = 3 , gc_grace_second = 3h et un nœud descend. Les 2 autres réplicas continuent de recevoir des mutations (insertion, mise à jour, suppression), mais elles ne peuvent pas les reproduire au nœud hors connexion. Dans ce cas, les astuces seront stockées temporairement sur le disque, à envoyer ultérieurement si le nœud mort revient.

mais un indice expire après gc_grace_seconds , après ce qu'il n'a jamais été envoyé.

Maintenant, si vous supprimez une ligne, il générera une pierre tombale dans les SSTABLES des 2 réplicas et un indice dans le nœud de coordonnateur. Après 3 heures, les pierres tombales sont supprimées des nœuds en ligne par le gestionnaire de compactage et l'indice expire.

Plus tard lorsque votre nœud mort revient, il a toujours la ligne, et il ne peut pas savoir que cette ligne a été supprimée car aucune indication et plus de pierre tombale n'existe pas sur des répliques ... Ainsi, c'est une rangée de zombie.


4 commentaires

Je ne peux pas supprimer la partition complète, je ne peux supprimer que peu d'entrées à la fois de la table. Il y aura donc de nombreuses pierres tombales si j'utilise 'gc_grace_secondes' et défini comme 3 heures, la transmission apparentée sera également stockée pendant 3 heures. Je peux donc coller à 3 heures de gc_grace_secondes?


Oui Les pierres tombales seront supprimées par Compactage après 3 heures. Si rf = 1, alors tu vas bien. Si c'est plus élevé, vous aurez des enregistrements de zombies chaque fois qu'un nœud tombe pendant plus de 3 heures et que le travail de suppression fonctionne pendant ce temps. Peut-être que vous pourriez diviser votre partition en plusieurs compartiments en fonction de votre politique de rétention.


J'ai eu votre point, mais pourriez-vous expliquer ce qui se passe lorsque nous avons un facteur de réplication comme 3 et le nœud revient dans les 3 heures? Comment fonctionne la transmission dans ce cas?


thelastpickle.com/blog/2018/03/ 21 / ... Nice Article sur des transparents et GC Grace



0
votes

0 commentaires