Há casos em que os operadores veem o seguinte aviso nos logs do Cassandra:
WARN ... Replica filtering protection has cached over 2000 rows during query \
[SELECT ... FROM ... WHERE ...]. (See 'cached_replica_rows_warn_threshold' in cassandra.yaml.)
Ou, na pior das hipóteses, um erro:
ERROR ... Replica filtering protection has cached over 32000 rows during query \
[SELECT ... FROM ... WHERE ...]. (See 'cached_replica_rows_fail_threshold' in cassandra.yaml.)
O que essas entradas de log significam?
A proteção de filtragem de réplica é um mecanismo que garante resultados de réplicas obsoletas para níveis de consistência de leitura superiores
ONE
ouLOCAL_ONE
que não violem a consistência necessária. Isso se aplica a (a) consultas de índice secundário ou (b) consultas usandoALLOW FILTERING
.Você está recebendo o aviso porque seus nós estão fora de sincronia, provavelmente porque estão sobrecarregados e não podem acompanhar as gravações, portanto, há muitas mutações descartadas. Para obter detalhes, consulte CASSANDRA-8272 e CASSANDRA-15907 .
Você precisa reparar a tabela problemática para sincronizar as réplicas. Você também deve considerar aumentar a capacidade de seu cluster adicionando mais nós para não acabar com milhares de mutações descartadas.
Como observação lateral, você não deve usar
ALLOW FILTERING
sem restringir a consulta a uma única partição. Caso contrário, ele não terá um bom desempenho e seu comportamento pode ser imprevisível. Felicidades!Republicado da Comunidade DataStax .