v6: ConsistencyLevel QUORUM and ALL are sent over gRPC as CONSISTENCY_LEVEL_ONE

Offen Anfängerfreundlich
#628 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
78/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
java

Rechercherichtung

Lies src/main/java/io/weaviate/client6/v1/api/collections/query/ConsistencyLevel.java, wo der Issue die drei Enum-Zuordnungen und die appendTo-Überladungen benennt, die sie verwenden. Vergleiche die gRPC-Konsistenzwerte mit den erwarteten Zuordnungen QUORUM und ALL und überprüfe dann, ob Such- und Schreibanfragen diese Werte mitführen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Summary

ConsistencyLevel.QUORUM and ConsistencyLevel.ALL are sent over gRPC as CONSISTENCY_LEVEL_ONE. All three enum constants carry the same proto value:

https://github.com/weaviate/java-client/blob/ff57caed14df5778ef715132d618383da559c1cc/src/main/java/io/weaviate/client6/v1/api/collections/query/ConsistencyLevel.java#L13-L24

ONE(WeaviateProtoBase.ConsistencyLevel.CONSISTENCY_LEVEL_ONE, "ONE"),
QUORUM(WeaviateProtoBase.ConsistencyLevel.CONSISTENCY_LEVEL_ONE, "QUORUM"),
ALL(WeaviateProtoBase.ConsistencyLevel.CONSISTENCY_LEVEL_ONE, "ALL");

The REST query parameter (the second argument) is right; only the gRPC value is wrong. The appendTo overloads use it for search, batch delete, batch objects and batch stream, so reads and writes that ask for QUORUM or ALL silently run at ONE. Nothing fails, so callers have no way to notice.

Reproduction (client 6.3.2, server 1.39.13)

A ClientInterceptor installed through Config.grpcChannelOptions(b -> b.intercept(...)) that logs each outgoing message shows:

collection.withConsistencyLevel(ConsistencyLevel.QUORUM).query.fetchObjects(q -> q.limit(1));
// sent: consistency_level: CONSISTENCY_LEVEL_ONE
collection.withConsistencyLevel(ConsistencyLevel.ALL).query.fetchObjects(q -> q.limit(1));
// sent: consistency_level: CONSISTENCY_LEVEL_ONE

Expected

QUORUM → CONSISTENCY_LEVEL_QUORUM, ALL → CONSISTENCY_LEVEL_ALL. Present on main at ff57cae.

Vorherrschende Sprache
Java
Sterne
34
Forks
29
Ø Merge
2 T. 10 Std.
Gemergte PRs (30 T.)
2

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus weaviate/java-client

Alle Issues in weaviate/java-client

Ähnliche Issues

Weitere Issues zu Java

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.