Stiamo eseguendo un server Titan Graph DB supportato da Cassandra come archivio persistente e si sta verificando un problema con il raggiungimento del limite delle soglie di separazione di Cassandra che causa le nostre query di errore/timeout periodico come i dati si accumulano. Sembra che la compattazione non sia in grado di tenere il passo con il numero di pietre tombali aggiunte.Cassandra Soglie di avvertimento e guasto di Tombstoning violate
nostro caso d'uso supporta: throughput
- alta di lettura/scrittura.
- Alta sensibilità alle letture.
- Frequenti aggiornamenti ai valori dei nodi in Titan. causando l'aggiornamento delle righe in Cassandra.
Dati i casi di utilizzo di cui sopra, si sono già ottimizzando Cassandra fare aggressivamente il seguente:
- compattazione aggressivo in base alle strategie di compattazione livellate
- Uso tombstone_compaction_interval 60 secondi.
- Utilizzando tombstone_threshold essere 0,01
- Impostazione gc_grace_seconds di essere 1800
Nonostante le seguenti ottimizzazioni, stiamo ancora assistendo le avvertenze nel Cassandra registra simile a: [WARN] (ReadStage: 7510) org .apache.cassandra.db.filter.SliceQueryFilter: Leggi 0 live e 10350 celle distaccate in .graphindex (vedi tombstone_warn_threshold). 8001 colonne è stato richiesto, fette = [00-FF], delInfo = {deletedAt = -9223372036854775808, localDeletion = 2147483647}
Di tanto in tanto il passare del tempo, vediamo anche la soglia di fallimento violato e causa errori.
Il nostro file cassandra.yaml ha il valore tombstone_warn_threshold da 10000 e tombstone_failure_threshold è molto più alto di quello raccomandato a 250000, senza reali vantaggi evidenti.
Qualsiasi aiuto che possa indicarci le configurazioni corrette sarebbe molto apprezzato se c'è spazio per ulteriori ottimizzazioni. Grazie in anticipo per il tuo tempo e aiuto.
Eliminate frequentemente i dati? Sono a conoscenza del fatto che le pietre tombali non vengono create a meno che i dati non vengano esplicitamente cancellati o scaduti. –
Crediamo che Titan GraphDb, che gestisce tutte le interazioni con Cassandra internamente, stia eseguendo eliminazioni e nuove creazioni per ogni aggiornamento, il che si aggiunge al numero di eliminazioni. – Rohit
Sarebbe bello confermare se fosse così. Potresti abilitare la traccia probabilistica (http://www.datastax.com/documentation/cassandra/2.0/cassandra/tools/toolsSetTraceProbability.html) su uno dei tuoi cassandra nodi per vedere quali sono le eliminazioni? Un'altra possibilità è che le colonne siano scadute (impostate con un TTL), pensi che potrebbe accadere anche qui? –