Nous exécutons un serveur Titan Graph DB soutenu par Cassandra comme un magasin persistant et rencontrons un problème avec l'atteinte de la limite sur les seuils tombstone Cassandra qui provoque nos requêtes d'échec/timeout périodiquement les données s'accumulent. Il semble que le compactage soit incapable de suivre le nombre de pierres tombales ajoutées.Cassandra Tombstoning seuils d'avertissement et de défaillance enfreints
Notre cas d'utilisation prend en charge:
- rendements élevés en lecture/écriture.
- Haute sensibilité aux lectures.
- Mises à jour fréquentes des valeurs de noeud dans Titan. la mise à jour des lignes à Cassandra.
Compte tenu des cas d'utilisation ci-dessus, nous optimisons déjà Cassandra à faire agressivement ce qui suit:
- compactage agressif en utilisant les stratégies de compactage nivelé
- Utilisation tombstone_compaction_interval 60 secondes.
- En utilisant tombstone_threshold à 0,01
- Réglage gc_grace_seconds pour être 1800
Malgré les optimisations suivantes, nous voyons toujours des avertissements dans la Cassandra se connecte similaires à: [WARN] (ReadStage: 7510) org .apache.cassandra.db.filter.SliceQueryFilter: Lit 0 live et 10350 cellules désactivées dans .graphindex (voir tombstone_warn_threshold). il a été demandé colonnes 8001, tranches = [00-ff], delInfo = {deletedAt = -9223372036854775808, localDeletion = 2147483647}
De temps en temps que le temps passe, nous voyons aussi le seuil d'échec violé et provoque des erreurs.
Notre fichier cassandra.yaml a le tombstone_warn_threshold à 10000, et le tombstone_failure_threshold à beaucoup plus élevé que recommandé à 250000, sans avantages notables.
Toute aide pouvant nous orienter vers les configurations correctes serait grandement appréciée s'il y a de la place pour d'autres optimisations. Merci d'avance pour votre temps et votre aide.
Etes-vous fréquemment en train de supprimer des données? Je crois comprendre que les pierres tombales ne sont créées que si les données sont explicitement supprimées ou expirent. –
Notre conviction est que Titan GraphDb qui gère toutes nos interactions avec Cassandra en interne pourrait faire des suppressions et de nouvelles créations pour chaque mise à jour, ce qui ajoute au nombre de suppressions. – Rohit
Ce serait bien de confirmer si c'était le cas. Pourriez-vous activer le suivi probabiliste (http://www.datastax.com/documentation/cassandra/2.0/cassandra/tools/toolsSetTraceProbability.html) sur l'un de vos noeuds Cassandra pour voir les suppressions? Une autre possibilité est que les colonnes sont expirées (avec un TTL), pensez-vous que cela pourrait se produire ici aussi? –