Skip to content

Commit

Permalink
[ENH] Propagate version through system
Browse files Browse the repository at this point in the history
  • Loading branch information
HammadB committed Sep 23, 2024
1 parent 9655191 commit 7df31ca
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 4 deletions.
19 changes: 19 additions & 0 deletions chromadb/proto/convert.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
LogRecord,
Metadata,
Operation,
RequestVersionContext,
ScalarEncoding,
Segment,
SegmentScope,
Expand Down Expand Up @@ -295,3 +296,21 @@ def from_proto_vector_query_result(
distance=vector_query_result.distance,
embedding=from_proto_vector(vector_query_result.vector)[0],
)


def from_proto_request_version_context(
request_version_context: proto.RequestVersionContext,
) -> RequestVersionContext:
return RequestVersionContext(
collection_version=request_version_context.collection_version,
log_position=request_version_context.log_position,
)


def to_proto_request_version_context(
request_version_context: RequestVersionContext,
) -> proto.RequestVersionContext:
return proto.RequestVersionContext(
collection_version=request_version_context["collection_version"],
log_position=request_version_context["log_position"],
)
10 changes: 8 additions & 2 deletions chromadb/segment/impl/metadata/grpc_segment.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from typing import Dict, List, Optional, Sequence
from chromadb.proto.convert import to_proto_request_version_context
from chromadb.proto.utils import RetryOnRpcErrorClientInterceptor
from chromadb.segment import MetadataReader
from chromadb.config import System
Expand Down Expand Up @@ -51,9 +52,12 @@ def count(self, request_version_context: RequestVersionContext) -> int:
request: pb.CountRecordsRequest = pb.CountRecordsRequest(
segment_id=self._segment["id"].hex,
collection_id=self._segment["collection"].hex,
version_context=to_proto_request_version_context(request_version_context),
)
response: pb.CountRecordsResponse = self._metadata_reader_stub.CountRecords(
request, timeout=self._request_timeout_seconds
request,
timeout=self._request_timeout_seconds,
version_context=to_proto_request_version_context(request_version_context),
)
return response.count

Expand Down Expand Up @@ -105,7 +109,9 @@ def get_metadata(
raise ValueError("Limit cannot be negative")

response: pb.QueryMetadataResponse = self._metadata_reader_stub.QueryMetadata(
request, timeout=self._request_timeout_seconds
request,
timeout=self._request_timeout_seconds,
version_context=to_proto_request_version_context(request_version_context),
)
results: List[MetadataEmbeddingRecord] = []
for record in response.records:
Expand Down
11 changes: 9 additions & 2 deletions chromadb/segment/impl/vector/grpc_segment.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from chromadb.proto.convert import (
from_proto_vector_embedding_record,
from_proto_vector_query_result,
to_proto_request_version_context,
to_proto_vector,
)
from chromadb.proto.utils import RetryOnRpcErrorClientInterceptor
Expand Down Expand Up @@ -66,7 +67,9 @@ def get_vectors(
collection_id=self._segment["collection"].hex,
)
response: GetVectorsResponse = self._vector_reader_stub.GetVectors(
request, timeout=self._request_timeout_seconds
request,
timeout=self._request_timeout_seconds,
version_context=to_proto_request_version_context(request_version_context),
)
results: List[VectorEmbeddingRecord] = []
for vector in response.records:
Expand All @@ -91,7 +94,11 @@ def query_vectors(
collection_id=self._segment["collection"].hex,
)
response: QueryVectorsResponse = self._vector_reader_stub.QueryVectors(
request, timeout=self._request_timeout_seconds
request,
timeout=self._request_timeout_seconds,
version_context=to_proto_request_version_context(
query["request_version_context"]
),
)
results: List[List[VectorQueryResult]] = []
for result in response.results:
Expand Down

0 comments on commit 7df31ca

Please sign in to comment.