Quando uma gravação no Cassandra usa LOCAL_QUORUM, o nó coordenador no controlador de domínio de origem é o único propagador para os controladores de domínio remotos ou outros nós/controladores de domínio podem compartilhar essa função se, digamos, algo acontecer ao coordenador ou à sua conectividade?
relate perguntas
-
Configuração multidatacenter Cassandra com 1 ip externo
-
Problemas de atualização/reparo do Cassandra na migração
-
Consultas do navegador Cassandra cqlsh possíveis apenas em bytes
-
Quais são as penalidades de usar muitos (milhares) de famílias de colunas ou keyspaces no Cassandra?
-
Criptografia Cassandra em repouso
Quando uma consulta de gravação é enviada ao Cassandra, independentemente do seu nível de consistência, o coordenador local que recebe a solicitação selecionará um coordenador remoto em cada um dos outros datacenters para encaminhar a gravação. Assim, cada datacenter tratará da replicação da mutação de forma independente após recebê-la do coordenador original.
Se o coordenador local ficar indisponível antes de encaminhar a solicitação para outros datacenters, o Cassandra não possui um mecanismo para substituí-lo, e esse tipo de falha geralmente é tratado pelos drivers por meio de novas tentativas de consulta. Se as gravações inter-DC falharem devido a problemas de conectividade, as mutações com falha serão armazenadas no coordenador na forma de dicas, para serem reproduzidas assim que os problemas de conectividade forem resolvidos.
Não testei especificamente para vários datacenters, mas o único cenário estranho em que acho que isso pode não ser verdade é ao usar lotes registrados. Quando um lote registrado é usado, 2 réplicas não coordenadoras armazenam uma cópia do log de lote para reprodução caso o coordenador falhe. De certa forma, essas réplicas atuam como coordenadores de failover e acredito que reproduzam o batchlog em réplicas em datacenters diferentes, mas ainda não o testaram.
De qualquer forma, quero deixar claro: esse não é um motivo suficientemente bom para usar lotes registrados. A sobrecarga nos coordenadores pode ser um empecilho, especialmente ao fazer upsert para múltiplas partições.