Prowadzimy serwer Titan Graph DB wspierany przez Cassandrę jako magazyn trwały i napotykamy problem z osiągnięciem limitu progów nagrobków Cassandra, który powoduje okresowe zawieszenie naszych zapytań/limitu czasu gromadzą się dane. Wygląda na to, że zagęszczanie nie jest w stanie nadążyć za liczbą dodanych nagrobków.Próby przekroczenia progu ostrzegania i awaryjnego Cassandra Tombstoning
Nasz przypadek użycia obsługuje: przepustowość
- Wysoka odczytu/zapisu.
- Wysoka wrażliwość na odczyty.
- Częste aktualizacje wartości węzłów w programie Titan. powodując aktualizację wierszy w Cassandrze.
Biorąc pod uwagę powyższe przypadki użycia, jesteśmy już optymalizację Cassandrę agresywnie wykonaj następujące czynności:
- Agresywny ubicie za pomocą wyrównał strategie zagęszczania
- Korzystanie tombstone_compaction_interval jak 60 sekund.
- Stosując tombstone_threshold do 0,01
- Ustawienie gc_grace_seconds się 1800
Pomimo następujących optymalizacji, wciąż widzenia ostrzeżenia w Cassandry rejestruje podobne do: [OSTRZEGAJ] (ReadStage: 7510) org .apache.cassandra.db.filter.SliceQueryFilter: Odczytuje 0 żywych i 10350 zniszczonych komórek w .graphindex (patrz tombstone_warn_threshold). 8001 Kolumny zażądano, kromki = [00-FF], delInfo = {deletedAt = -9223372036854775808, localDeletion = 2147483647}
Czasami wraz z upływem czasu, widzimy także próg awarii naruszone i powoduje błędy.
Nasz plik cassandra.yaml ma wartość tombstone_warn_threshold równą 10000, a tombstone_failure_threshold jest znacznie wyższa niż zalecana przy 250000, bez żadnych zauważalnych korzyści.
Każda pomoc, która może wskazać nam właściwą konfigurację, byłaby bardzo doceniana, jeśli istnieje możliwość dalszej optymalizacji. Z góry dziękuję za poświęcony czas i pomoc.
Czy często usuwasz dane? Rozumiem, że nagrobki nie są tworzone, chyba że dane zostaną jawnie usunięte lub wygasną. –
Jesteśmy przekonani, że Titan GraphDb, który obsługuje wszystkie nasze interakcje z Cassandrą wewnętrznie, może wykonywać usuwanie i tworzyć nowe dla każdej aktualizacji, co zwiększa liczbę usunięć. – Rohit
Byłoby dobrze, gdyby tak było. Czy możesz włączyć śledzenie probabilistyczne (http://www.datastax.com/documentation/cassandra/2.0/cassandra/tools/toolsSetTraceProbability.html) na jednym z twoich węzłów Kasandra, aby zobaczyć, jakie są te usunięcia? Inną możliwością jest to, że kolumny są wygasłe (zestaw z TTL), myślisz, że to może się dziać tutaj również? –