Cassandra: route coordinators to the configured datacenter
Los mantenedores suelen responder en 4 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
Línea de trabajo
Read crates/storage-cassandra/src/engine.rs and the session builder in crates/storage-cassandra/src/lib.rs, then check how datacenter is exposed in crates/storage-cassandra/src/config.rs. The issue points to cdrs-tokio 9.0.2's topology-aware load balancing and node distance evaluator; verify their API and how they use the configured datacenter. Done means coordinators route to that datacenter and the described local consistency operations no longer fail when remote peers are discovered.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
The Cassandra backend creates every keyspace with NetworkTopologyStrategy in the one datacenter named by datacenter, and since #591 (the fix for #560) runs every data-path statement at LOCAL_QUORUM or LOCAL_ONE. The session uses RoundRobinLoadBalancingStrategy with the driver's default node distance evaluator, which treats every node the driver discovers from system.peers_v2 as local. A coordinator in a datacenter that holds no replica of the keyspace evaluates LOCAL_QUORUM and LOCAL_ONE against its own datacenter, finds no replica, and answers unavailable; the driver retries once on the next node and then fails the request.
Expected
Statements are coordinated by nodes in datacenter. cdrs-tokio 9.0.2 has TopologyAwareLoadBalancingStrategy and TopologyAwareNodeDistanceEvaluator::new(local_dc), which route to the local datacenter and treat remote nodes as remote.
Today
The datacenter field doc, the differences table, the high availability design and the upgrade manual tell the operator to run ExtendDB against contact points whose peers are all in datacenter. Before #591 the LOCAL_QUORUM batches, the query_lwt paths and the quorum reads already failed from such a coordinator; the reads, the OCC lightweight transactions and the plain delete succeeded at ONE.
Where
crates/storage-cassandra/src/engine.rs(RoundRobinLoadBalancingStrategy::new())crates/storage-cassandra/src/lib.rs(the session builder)crates/storage-cassandra/src/config.rs(datacenter)
- Lenguaje dominante
- Rust
- Estrellas
- 517
- Forks
- 60
- Merge medio
- 4 d 22 h
- PR fusionados (30 d)
- 40
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de ExtendDB/extenddb
-
extenddb version prints the first build's commit after a rebuild in the same target directoryAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 4 días
-
Launch-prep: scope statement + backend tiers + version policyPosiblemente ocupada @navareamol la tomó hoy. Abierto
Dificultad 2/5 3-5 días Aptitud para principiantes 65/100
ExtendDB/extenddb#662 · 1 asignado ·
Los mantenedores suelen responder en 4 días
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
ExtendDB/extenddb#658 · 1 comentario ·
Los mantenedores suelen responder en 4 días
-
backend:postgresql bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 4 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 4 días
Todos los issues de ExtendDB/extenddb
Issues similares
-
good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
servo/rust-smallvec#827 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
nowledge-co/hawdb#1400 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
calcit-lang/caps#16 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
penso/herdr-gpui#934 ·
Los mantenedores suelen responder en 1 día
-
🎉 Add BossanovaAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
jaywcjlove/awesome-mac#4096 ·
Los mantenedores suelen responder en 1 día