coordinode 3.0.0__tar.gz → 4.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {coordinode-3.0.0 → coordinode-4.0.0}/.gitignore +0 -6
- {coordinode-3.0.0 → coordinode-4.0.0}/PKG-INFO +12 -1
- {coordinode-3.0.0 → coordinode-4.0.0}/README.md +11 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/__init__.py +2 -0
- coordinode-4.0.0/coordinode/_proto/coordinode/internode/handshake_pb2.py +38 -0
- coordinode-4.0.0/coordinode/_proto/coordinode/internode/handshake_pb2.pyi +11 -0
- coordinode-4.0.0/coordinode/_proto/coordinode/internode/handshake_pb2_grpc.py +132 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/admin/cluster_pb2_grpc.py +13 -12
- coordinode-4.0.0/coordinode/_proto/coordinode/v1/query/cypher_pb2.py +89 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/query/cypher_pb2.pyi +10 -4
- coordinode-4.0.0/coordinode/_proto/coordinode/v1/replication/cdc_pb2.py +62 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/replication/cdc_pb2.pyi +56 -2
- coordinode-4.0.0/coordinode/_proto/coordinode/v1/replication/cdc_pb2_grpc.py +243 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/replication/consistency_pb2.py +5 -3
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/replication/consistency_pb2.pyi +11 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/replication/raft_pb2.py +6 -6
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/replication/raft_pb2.pyi +4 -2
- coordinode-4.0.0/coordinode/_proto/coordinode/v1/session/session_pb2.py +91 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/session/session_pb2.pyi +90 -10
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/session/session_pb2_grpc.py +15 -9
- coordinode-4.0.0/coordinode/_proto/coordinode/v2/graph/__init__.py +0 -0
- coordinode-4.0.0/coordinode/_proto/coordinode/v2/graph/schema_pb2.py +104 -0
- coordinode-4.0.0/coordinode/_proto/coordinode/v2/graph/schema_pb2.pyi +296 -0
- coordinode-4.0.0/coordinode/_proto/coordinode/v2/graph/schema_pb2_grpc.py +400 -0
- coordinode-4.0.0/coordinode/_proto/google/__init__.py +0 -0
- coordinode-4.0.0/coordinode/_proto/google/api/__init__.py +0 -0
- coordinode-4.0.0/coordinode/_proto/google/rpc/__init__.py +0 -0
- coordinode-4.0.0/coordinode/_proto/google/rpc/status_pb2.py +38 -0
- coordinode-4.0.0/coordinode/_proto/google/rpc/status_pb2.pyi +18 -0
- coordinode-4.0.0/coordinode/_proto/google/rpc/status_pb2_grpc.py +24 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_version.py +2 -2
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/client.py +359 -117
- coordinode-3.0.0/coordinode/_proto/coordinode/v1/graph/schema_pb2.py +0 -75
- coordinode-3.0.0/coordinode/_proto/coordinode/v1/graph/schema_pb2.pyi +0 -181
- coordinode-3.0.0/coordinode/_proto/coordinode/v1/graph/schema_pb2_grpc.py +0 -233
- coordinode-3.0.0/coordinode/_proto/coordinode/v1/query/cypher_pb2.py +0 -89
- coordinode-3.0.0/coordinode/_proto/coordinode/v1/replication/cdc_pb2.py +0 -48
- coordinode-3.0.0/coordinode/_proto/coordinode/v1/replication/cdc_pb2_grpc.py +0 -127
- coordinode-3.0.0/coordinode/_proto/coordinode/v1/session/session_pb2.py +0 -75
- {coordinode-3.0.0 → coordinode-4.0.0}/LICENSE +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/NOTICE +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/__init__.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/__init__.py +0 -0
- {coordinode-3.0.0/coordinode/_proto/coordinode/v1 → coordinode-4.0.0/coordinode/_proto/coordinode/internode}/__init__.py +0 -0
- {coordinode-3.0.0/coordinode/_proto/coordinode/v1/admin → coordinode-4.0.0/coordinode/_proto/coordinode/v1}/__init__.py +0 -0
- {coordinode-3.0.0/coordinode/_proto/coordinode/v1/common → coordinode-4.0.0/coordinode/_proto/coordinode/v1/admin}/__init__.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/admin/cluster_pb2.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/admin/cluster_pb2.pyi +0 -0
- {coordinode-3.0.0/coordinode/_proto/coordinode/v1/graph → coordinode-4.0.0/coordinode/_proto/coordinode/v1/common}/__init__.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/common/pagination_pb2.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/common/pagination_pb2.pyi +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/common/pagination_pb2_grpc.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/common/types_pb2.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/common/types_pb2.pyi +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/common/types_pb2_grpc.py +0 -0
- {coordinode-3.0.0/coordinode/_proto/coordinode/v1/health → coordinode-4.0.0/coordinode/_proto/coordinode/v1/graph}/__init__.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/graph/blob_pb2.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/graph/blob_pb2.pyi +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/graph/blob_pb2_grpc.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/graph/graph_pb2.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/graph/graph_pb2.pyi +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/graph/graph_pb2_grpc.py +0 -0
- {coordinode-3.0.0/coordinode/_proto/coordinode/v1/query → coordinode-4.0.0/coordinode/_proto/coordinode/v1/health}/__init__.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/health/health_pb2.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/health/health_pb2.pyi +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/health/health_pb2_grpc.py +0 -0
- {coordinode-3.0.0/coordinode/_proto/coordinode/v1/replication → coordinode-4.0.0/coordinode/_proto/coordinode/v1/query}/__init__.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/query/cypher_pb2_grpc.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/query/text_pb2.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/query/text_pb2.pyi +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/query/text_pb2_grpc.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/query/vector_pb2.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/query/vector_pb2.pyi +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/query/vector_pb2_grpc.py +0 -0
- {coordinode-3.0.0/coordinode/_proto/coordinode/v1/session → coordinode-4.0.0/coordinode/_proto/coordinode/v1/replication}/__init__.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/replication/consistency_pb2_grpc.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/replication/raft_pb2_grpc.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/replication/transfer_pb2.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/replication/transfer_pb2.pyi +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/replication/transfer_pb2_grpc.py +0 -0
- {coordinode-3.0.0/coordinode/_proto/google → coordinode-4.0.0/coordinode/_proto/coordinode/v1/session}/__init__.py +0 -0
- {coordinode-3.0.0/coordinode/_proto/google/api → coordinode-4.0.0/coordinode/_proto/coordinode/v2}/__init__.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/google/api/annotations_pb2.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/google/api/annotations_pb2.pyi +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/google/api/annotations_pb2_grpc.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/google/api/http_pb2.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/google/api/http_pb2.pyi +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/google/api/http_pb2_grpc.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_source.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_types.py +0 -0
- {coordinode-3.0.0 → coordinode-4.0.0}/pyproject.toml +0 -0
|
@@ -22,10 +22,4 @@ coordinode/coordinode/_version.py
|
|
|
22
22
|
langchain-coordinode/langchain_coordinode/_version.py
|
|
23
23
|
llama-index-coordinode/llama_index/graph_stores/coordinode/_version.py
|
|
24
24
|
|
|
25
|
-
# Local dev / arch docs — not part of the SDK
|
|
26
|
-
GAPS.md
|
|
27
|
-
CLAUDE.md
|
|
28
|
-
DEVLOG*.md
|
|
29
|
-
|
|
30
25
|
**/.ipynb_checkpoints/
|
|
31
|
-
.claude/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: coordinode
|
|
3
|
-
Version:
|
|
3
|
+
Version: 4.0.0
|
|
4
4
|
Summary: Python client for CoordiNode — graph + vector + full-text database
|
|
5
5
|
Project-URL: Homepage, https://github.com/structured-world/coordinode
|
|
6
6
|
Project-URL: Repository, https://github.com/structured-world/coordinode-python
|
|
@@ -231,6 +231,17 @@ Accepted values:
|
|
|
231
231
|
- ``read_concern``: ``local`` (default) · ``majority`` · ``linearizable`` · ``snapshot``. Causal reads (``after_index`` > 0) require ``majority`` here.
|
|
232
232
|
- ``write_concern``: ``"majority"`` (default) · a member count (``1`` leader only, ``0`` fire-and-forget) · ``WriteConcern(w, journal, timeout_ms)`` with ``journal`` one of ``journal`` (default) · ``cache`` · ``memory``. The volatile ``cache`` and ``memory`` states are accepted only with ``w`` of 0 or 1.
|
|
233
233
|
- ``read_preference``: ``primary`` (default) · ``primary_preferred`` · ``secondary`` · ``secondary_preferred`` · ``nearest``
|
|
234
|
+
- ``vector_consistency``: ``current`` (the index as it is: fastest, may include writes newer than the read) · ``snapshot`` (index candidates filtered at the read's snapshot) · ``exact`` (every vector of the label, without the index). Omitted, the mode the read concern implies. A ``vector_consistency`` hint in the query wins.
|
|
235
|
+
- ``vector_build_wait_ms``: how long a vector search waits for an index still being built; ``0`` refuses a building index at once. Omitted, the server's default.
|
|
236
|
+
|
|
237
|
+
```python
|
|
238
|
+
db.cypher(
|
|
239
|
+
"MATCH (d:Doc) RETURN d.title AS title ORDER BY vector_distance(d.embedding, $q) LIMIT 5",
|
|
240
|
+
params={"q": query_vector},
|
|
241
|
+
vector_consistency="exact",
|
|
242
|
+
vector_build_wait_ms=0,
|
|
243
|
+
)
|
|
244
|
+
```
|
|
234
245
|
|
|
235
246
|
## Related Packages
|
|
236
247
|
|
|
@@ -199,6 +199,17 @@ Accepted values:
|
|
|
199
199
|
- ``read_concern``: ``local`` (default) · ``majority`` · ``linearizable`` · ``snapshot``. Causal reads (``after_index`` > 0) require ``majority`` here.
|
|
200
200
|
- ``write_concern``: ``"majority"`` (default) · a member count (``1`` leader only, ``0`` fire-and-forget) · ``WriteConcern(w, journal, timeout_ms)`` with ``journal`` one of ``journal`` (default) · ``cache`` · ``memory``. The volatile ``cache`` and ``memory`` states are accepted only with ``w`` of 0 or 1.
|
|
201
201
|
- ``read_preference``: ``primary`` (default) · ``primary_preferred`` · ``secondary`` · ``secondary_preferred`` · ``nearest``
|
|
202
|
+
- ``vector_consistency``: ``current`` (the index as it is: fastest, may include writes newer than the read) · ``snapshot`` (index candidates filtered at the read's snapshot) · ``exact`` (every vector of the label, without the index). Omitted, the mode the read concern implies. A ``vector_consistency`` hint in the query wins.
|
|
203
|
+
- ``vector_build_wait_ms``: how long a vector search waits for an index still being built; ``0`` refuses a building index at once. Omitted, the server's default.
|
|
204
|
+
|
|
205
|
+
```python
|
|
206
|
+
db.cypher(
|
|
207
|
+
"MATCH (d:Doc) RETURN d.title AS title ORDER BY vector_distance(d.embedding, $q) LIMIT 5",
|
|
208
|
+
params={"q": query_vector},
|
|
209
|
+
vector_consistency="exact",
|
|
210
|
+
vector_build_wait_ms=0,
|
|
211
|
+
)
|
|
212
|
+
```
|
|
202
213
|
|
|
203
214
|
## Related Packages
|
|
204
215
|
|
|
@@ -22,6 +22,7 @@ from coordinode._types import MultiVector, Path
|
|
|
22
22
|
from coordinode.client import (
|
|
23
23
|
AsyncCoordinodeClient,
|
|
24
24
|
AsyncTransaction,
|
|
25
|
+
ConstraintInfo,
|
|
25
26
|
CoordinodeClient,
|
|
26
27
|
EdgeResult,
|
|
27
28
|
EdgeTypeInfo,
|
|
@@ -62,6 +63,7 @@ __all__ = [
|
|
|
62
63
|
"LabelInfo",
|
|
63
64
|
"EdgeTypeInfo",
|
|
64
65
|
"PropertyDefinitionInfo",
|
|
66
|
+
"ConstraintInfo",
|
|
65
67
|
"TextIndexInfo",
|
|
66
68
|
"TraverseResult",
|
|
67
69
|
]
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: coordinode/internode/handshake.proto
|
|
5
|
+
# Protobuf Python Version: 7.35.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
7,
|
|
15
|
+
35,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'coordinode/internode/handshake.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$coordinode/internode/handshake.proto\x12\x14\x63oordinode.internode\"!\n\x0fHandshakeRecord\x12\x0e\n\x06record\x18\x01 \x01(\x0c\x32l\n\x10VersionHandshake\x12X\n\x08\x45xchange\x12%.coordinode.internode.HandshakeRecord\x1a%.coordinode.internode.HandshakeRecordb\x06proto3')
|
|
28
|
+
|
|
29
|
+
_globals = globals()
|
|
30
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'coordinode.internode.handshake_pb2', _globals)
|
|
32
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
|
+
DESCRIPTOR._loaded_options = None
|
|
34
|
+
_globals['_HANDSHAKERECORD']._serialized_start=62
|
|
35
|
+
_globals['_HANDSHAKERECORD']._serialized_end=95
|
|
36
|
+
_globals['_VERSIONHANDSHAKE']._serialized_start=97
|
|
37
|
+
_globals['_VERSIONHANDSHAKE']._serialized_end=205
|
|
38
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from google.protobuf import descriptor as _descriptor
|
|
2
|
+
from google.protobuf import message as _message
|
|
3
|
+
from typing import ClassVar as _ClassVar, Optional as _Optional
|
|
4
|
+
|
|
5
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
6
|
+
|
|
7
|
+
class HandshakeRecord(_message.Message):
|
|
8
|
+
__slots__ = ("record",)
|
|
9
|
+
RECORD_FIELD_NUMBER: _ClassVar[int]
|
|
10
|
+
record: bytes
|
|
11
|
+
def __init__(self, record: _Optional[bytes] = ...) -> None: ...
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
|
2
|
+
"""Client and server classes corresponding to protobuf-defined services."""
|
|
3
|
+
import grpc
|
|
4
|
+
import warnings
|
|
5
|
+
|
|
6
|
+
from coordinode.internode import handshake_pb2 as coordinode_dot_internode_dot_handshake__pb2
|
|
7
|
+
|
|
8
|
+
GRPC_GENERATED_VERSION = '1.83.1'
|
|
9
|
+
GRPC_VERSION = grpc.__version__
|
|
10
|
+
_version_not_supported = False
|
|
11
|
+
|
|
12
|
+
try:
|
|
13
|
+
from grpc._utilities import first_version_is_lower
|
|
14
|
+
_version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
|
|
15
|
+
except ImportError:
|
|
16
|
+
_version_not_supported = True
|
|
17
|
+
|
|
18
|
+
if _version_not_supported:
|
|
19
|
+
raise RuntimeError(
|
|
20
|
+
f'The grpc package installed is at version {GRPC_VERSION},'
|
|
21
|
+
+ ' but the generated code in coordinode/internode/handshake_pb2_grpc.py depends on'
|
|
22
|
+
+ f' grpcio>={GRPC_GENERATED_VERSION}.'
|
|
23
|
+
+ f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
|
|
24
|
+
+ f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class VersionHandshakeStub:
|
|
29
|
+
"""The version handshake between two members of a consensus group.
|
|
30
|
+
|
|
31
|
+
This file is frozen for the life of the product: its package, service,
|
|
32
|
+
method and messages never change, so that members of any two releases can
|
|
33
|
+
tell each other which version they run. Members whose versions differ
|
|
34
|
+
exchange nothing but this.
|
|
35
|
+
|
|
36
|
+
The same record also travels in the `cn-version-handshake-bin` request
|
|
37
|
+
and response metadata of every other inter-node call; a call whose record
|
|
38
|
+
does not match the receiver's version is refused before its payload is
|
|
39
|
+
read.
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
def __init__(self, channel):
|
|
43
|
+
"""Constructor.
|
|
44
|
+
|
|
45
|
+
Args:
|
|
46
|
+
channel: A grpc.Channel.
|
|
47
|
+
"""
|
|
48
|
+
self.Exchange = channel.unary_unary(
|
|
49
|
+
'/coordinode.internode.VersionHandshake/Exchange',
|
|
50
|
+
request_serializer=coordinode_dot_internode_dot_handshake__pb2.HandshakeRecord.SerializeToString,
|
|
51
|
+
response_deserializer=coordinode_dot_internode_dot_handshake__pb2.HandshakeRecord.FromString,
|
|
52
|
+
_registered_method=True)
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class VersionHandshakeServicer:
|
|
56
|
+
"""The version handshake between two members of a consensus group.
|
|
57
|
+
|
|
58
|
+
This file is frozen for the life of the product: its package, service,
|
|
59
|
+
method and messages never change, so that members of any two releases can
|
|
60
|
+
tell each other which version they run. Members whose versions differ
|
|
61
|
+
exchange nothing but this.
|
|
62
|
+
|
|
63
|
+
The same record also travels in the `cn-version-handshake-bin` request
|
|
64
|
+
and response metadata of every other inter-node call; a call whose record
|
|
65
|
+
does not match the receiver's version is refused before its payload is
|
|
66
|
+
read.
|
|
67
|
+
"""
|
|
68
|
+
|
|
69
|
+
def Exchange(self, request, context):
|
|
70
|
+
"""Exchange version records. Answered whether or not the two members
|
|
71
|
+
match; the caller compares the records itself.
|
|
72
|
+
"""
|
|
73
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
74
|
+
context.set_details('Method not implemented!')
|
|
75
|
+
raise NotImplementedError('Method not implemented!')
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def add_VersionHandshakeServicer_to_server(servicer, server):
|
|
79
|
+
rpc_method_handlers = {
|
|
80
|
+
'Exchange': grpc.unary_unary_rpc_method_handler(
|
|
81
|
+
servicer.Exchange,
|
|
82
|
+
request_deserializer=coordinode_dot_internode_dot_handshake__pb2.HandshakeRecord.FromString,
|
|
83
|
+
response_serializer=coordinode_dot_internode_dot_handshake__pb2.HandshakeRecord.SerializeToString,
|
|
84
|
+
),
|
|
85
|
+
}
|
|
86
|
+
generic_handler = grpc.method_handlers_generic_handler(
|
|
87
|
+
'coordinode.internode.VersionHandshake', rpc_method_handlers)
|
|
88
|
+
server.add_generic_rpc_handlers((generic_handler,))
|
|
89
|
+
server.add_registered_method_handlers('coordinode.internode.VersionHandshake', rpc_method_handlers)
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
# This class is part of an EXPERIMENTAL API.
|
|
93
|
+
class VersionHandshake:
|
|
94
|
+
"""The version handshake between two members of a consensus group.
|
|
95
|
+
|
|
96
|
+
This file is frozen for the life of the product: its package, service,
|
|
97
|
+
method and messages never change, so that members of any two releases can
|
|
98
|
+
tell each other which version they run. Members whose versions differ
|
|
99
|
+
exchange nothing but this.
|
|
100
|
+
|
|
101
|
+
The same record also travels in the `cn-version-handshake-bin` request
|
|
102
|
+
and response metadata of every other inter-node call; a call whose record
|
|
103
|
+
does not match the receiver's version is refused before its payload is
|
|
104
|
+
read.
|
|
105
|
+
"""
|
|
106
|
+
|
|
107
|
+
@staticmethod
|
|
108
|
+
def Exchange(request,
|
|
109
|
+
target,
|
|
110
|
+
options=(),
|
|
111
|
+
channel_credentials=None,
|
|
112
|
+
call_credentials=None,
|
|
113
|
+
insecure=False,
|
|
114
|
+
compression=None,
|
|
115
|
+
wait_for_ready=None,
|
|
116
|
+
timeout=None,
|
|
117
|
+
metadata=None):
|
|
118
|
+
return grpc.experimental.unary_unary(
|
|
119
|
+
request,
|
|
120
|
+
target,
|
|
121
|
+
'/coordinode.internode.VersionHandshake/Exchange',
|
|
122
|
+
coordinode_dot_internode_dot_handshake__pb2.HandshakeRecord.SerializeToString,
|
|
123
|
+
coordinode_dot_internode_dot_handshake__pb2.HandshakeRecord.FromString,
|
|
124
|
+
options,
|
|
125
|
+
channel_credentials,
|
|
126
|
+
insecure,
|
|
127
|
+
call_credentials,
|
|
128
|
+
compression,
|
|
129
|
+
wait_for_ready,
|
|
130
|
+
timeout,
|
|
131
|
+
metadata,
|
|
132
|
+
_registered_method=True)
|
{coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/admin/cluster_pb2_grpc.py
RENAMED
|
@@ -126,18 +126,19 @@ class ClusterServiceServicer:
|
|
|
126
126
|
def DecommissionNode(self, request, context):
|
|
127
127
|
"""Gracefully decommission a node from the cluster.
|
|
128
128
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
leadership
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
129
|
+
First the quorum gate: removing node_id must still leave at least 2
|
|
130
|
+
voters, otherwise the call aborts with FAILED_PRECONDITION.
|
|
131
|
+
|
|
132
|
+
Then the leadership transfer: if node_id is the current Raft leader,
|
|
133
|
+
leadership moves to a peer before removal. For self-decommission (the
|
|
134
|
+
leader removing itself) the request is forwarded to the new leader after
|
|
135
|
+
the transfer.
|
|
136
|
+
|
|
137
|
+
Last the membership remove, change_membership(remove: node_id): the node
|
|
138
|
+
stops receiving log replication and leaves the quorum.
|
|
139
|
+
|
|
140
|
+
CE behaviour: single Raft group, all nodes hold full data. Pruning is
|
|
141
|
+
advisory: the operator deletes data on the decommissioned node manually.
|
|
141
142
|
|
|
142
143
|
Must be called on the current Raft leader, or on the node being decommissioned
|
|
143
144
|
when that node is the leader (self-decommission path).
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: coordinode/v1/query/cypher.proto
|
|
5
|
+
# Protobuf Python Version: 7.35.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
7,
|
|
15
|
+
35,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'coordinode/v1/query/cypher.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
from coordinode._proto.coordinode.v1.common import types_pb2 as coordinode_dot_v1_dot_common_dot_types__pb2
|
|
26
|
+
from coordinode._proto.coordinode.v1.replication import consistency_pb2 as coordinode_dot_v1_dot_replication_dot_consistency__pb2
|
|
27
|
+
from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n coordinode/v1/query/cypher.proto\x12\x13\x63oordinode.v1.query\x1a coordinode/v1/common/types.proto\x1a+coordinode/v1/replication/consistency.proto\x1a\x1cgoogle/api/annotations.proto\"\xac\x04\n\x14\x45xecuteCypherRequest\x12\r\n\x05query\x18\x01 \x01(\t\x12M\n\nparameters\x18\x02 \x03(\x0b\x32\x39.coordinode.v1.query.ExecuteCypherRequest.ParametersEntry\x12\x42\n\x0fread_preference\x18\x03 \x01(\x0e\x32).coordinode.v1.replication.ReadPreference\x12<\n\x0cread_concern\x18\x04 \x01(\x0b\x32&.coordinode.v1.replication.ReadConcern\x12>\n\rwrite_concern\x18\x05 \x01(\x0b\x32\'.coordinode.v1.replication.WriteConcern\x12\x16\n\x0etransaction_id\x18\x06 \x01(\x04\x12H\n\x12vector_consistency\x18\x07 \x01(\x0e\x32,.coordinode.v1.replication.VectorConsistency\x12!\n\x14vector_build_wait_ms\x18\x08 \x01(\rH\x00\x88\x01\x01\x1aV\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x32\n\x05value\x18\x02 \x01(\x0b\x32#.coordinode.v1.common.PropertyValue:\x02\x38\x01\x42\x17\n\x15_vector_build_wait_ms\"\x80\x01\n\x15\x45xecuteCypherResponse\x12\x0f\n\x07\x63olumns\x18\x01 \x03(\t\x12&\n\x04rows\x18\x02 \x03(\x0b\x32\x18.coordinode.v1.query.Row\x12.\n\x05stats\x18\x03 \x01(\x0b\x32\x1f.coordinode.v1.query.QueryStats\":\n\x03Row\x12\x33\n\x06values\x18\x01 \x03(\x0b\x32#.coordinode.v1.common.PropertyValue\"\xf6\x01\n\nQueryStats\x12\x15\n\rnodes_created\x18\x01 \x01(\x03\x12\x15\n\rnodes_deleted\x18\x02 \x01(\x03\x12\x15\n\redges_created\x18\x03 \x01(\x03\x12\x15\n\redges_deleted\x18\x04 \x01(\x03\x12\x16\n\x0eproperties_set\x18\x05 \x01(\x03\x12\x19\n\x11\x65xecution_time_ms\x18\x06 \x01(\x03\x12\x15\n\rapplied_index\x18\x07 \x01(\x04\x12\x18\n\x10served_by_leader\x18\x08 \x01(\x08\x12\x11\n\tcommit_ts\x18\t \x01(\x04\x12\x15\n\rread_as_of_ts\x18\n \x01(\x04\"\xcc\x01\n\x14\x45xplainCypherRequest\x12\r\n\x05query\x18\x01 \x01(\t\x12M\n\nparameters\x18\x02 \x03(\x0b\x32\x39.coordinode.v1.query.ExplainCypherRequest.ParametersEntry\x1aV\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x32\n\x05value\x18\x02 \x01(\x0b\x32#.coordinode.v1.common.PropertyValue:\x02\x38\x01\"E\n\x15\x45xplainCypherResponse\x12,\n\x04plan\x18\x01 \x01(\x0b\x32\x1e.coordinode.v1.query.QueryPlan\"\xd5\x01\n\tQueryPlan\x12\x10\n\x08operator\x18\x01 \x01(\t\x12<\n\x07\x64\x65tails\x18\x02 \x03(\x0b\x32+.coordinode.v1.query.QueryPlan.DetailsEntry\x12\x30\n\x08\x63hildren\x18\x03 \x03(\x0b\x32\x1e.coordinode.v1.query.QueryPlan\x12\x16\n\x0e\x65stimated_rows\x18\x04 \x01(\x01\x1a.\n\x0c\x44\x65tailsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x19\n\x17\x42\x65ginTransactionRequest\"2\n\x18\x42\x65ginTransactionResponse\x12\x16\n\x0etransaction_id\x18\x01 \x01(\x04\"l\n\x18\x43ommitTransactionRequest\x12\x16\n\x0etransaction_id\x18\x01 \x01(\x04\x12\x38\n\x06\x65xpect\x18\x02 \x03(\x0b\x32(.coordinode.v1.query.ExpectedNodeVersion\"H\n\x13\x45xpectedNodeVersion\x12\x0f\n\x07node_id\x18\x01 \x01(\x04\x12\x14\n\x07version\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\n\n\x08_version\"E\n\x19\x43ommitTransactionResponse\x12\x15\n\rapplied_index\x18\x01 \x01(\x04\x12\x11\n\tcommit_ts\x18\x02 \x01(\x04\"4\n\x1aRollbackTransactionRequest\x12\x16\n\x0etransaction_id\x18\x01 \x01(\x04\"\x1d\n\x1bRollbackTransactionResponse2\x81\x06\n\rCypherService\x12\x83\x01\n\rExecuteCypher\x12).coordinode.v1.query.ExecuteCypherRequest\x1a*.coordinode.v1.query.ExecuteCypherResponse\"\x1b\x82\xd3\xe4\x93\x02\x15\"\x10/v1/query/cypher:\x01*\x12\x8b\x01\n\rExplainCypher\x12).coordinode.v1.query.ExplainCypherRequest\x1a*.coordinode.v1.query.ExplainCypherResponse\"#\x82\xd3\xe4\x93\x02\x1d\"\x18/v1/query/cypher/explain:\x01*\x12\x97\x01\n\x10\x42\x65ginTransaction\x12,.coordinode.v1.query.BeginTransactionRequest\x1a-.coordinode.v1.query.BeginTransactionResponse\"&\x82\xd3\xe4\x93\x02 \"\x1b/v1/query/transaction/begin:\x01*\x12\x9b\x01\n\x11\x43ommitTransaction\x12-.coordinode.v1.query.CommitTransactionRequest\x1a..coordinode.v1.query.CommitTransactionResponse\"\'\x82\xd3\xe4\x93\x02!\"\x1c/v1/query/transaction/commit:\x01*\x12\xa3\x01\n\x13RollbackTransaction\x12/.coordinode.v1.query.RollbackTransactionRequest\x1a\x30.coordinode.v1.query.RollbackTransactionResponse\")\x82\xd3\xe4\x93\x02#\"\x1e/v1/query/transaction/rollback:\x01*b\x06proto3')
|
|
31
|
+
|
|
32
|
+
_globals = globals()
|
|
33
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
34
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'coordinode.v1.query.cypher_pb2', _globals)
|
|
35
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
36
|
+
DESCRIPTOR._loaded_options = None
|
|
37
|
+
_globals['_EXECUTECYPHERREQUEST_PARAMETERSENTRY']._loaded_options = None
|
|
38
|
+
_globals['_EXECUTECYPHERREQUEST_PARAMETERSENTRY']._serialized_options = b'8\001'
|
|
39
|
+
_globals['_EXPLAINCYPHERREQUEST_PARAMETERSENTRY']._loaded_options = None
|
|
40
|
+
_globals['_EXPLAINCYPHERREQUEST_PARAMETERSENTRY']._serialized_options = b'8\001'
|
|
41
|
+
_globals['_QUERYPLAN_DETAILSENTRY']._loaded_options = None
|
|
42
|
+
_globals['_QUERYPLAN_DETAILSENTRY']._serialized_options = b'8\001'
|
|
43
|
+
_globals['_CYPHERSERVICE'].methods_by_name['ExecuteCypher']._loaded_options = None
|
|
44
|
+
_globals['_CYPHERSERVICE'].methods_by_name['ExecuteCypher']._serialized_options = b'\202\323\344\223\002\025\"\020/v1/query/cypher:\001*'
|
|
45
|
+
_globals['_CYPHERSERVICE'].methods_by_name['ExplainCypher']._loaded_options = None
|
|
46
|
+
_globals['_CYPHERSERVICE'].methods_by_name['ExplainCypher']._serialized_options = b'\202\323\344\223\002\035\"\030/v1/query/cypher/explain:\001*'
|
|
47
|
+
_globals['_CYPHERSERVICE'].methods_by_name['BeginTransaction']._loaded_options = None
|
|
48
|
+
_globals['_CYPHERSERVICE'].methods_by_name['BeginTransaction']._serialized_options = b'\202\323\344\223\002 \"\033/v1/query/transaction/begin:\001*'
|
|
49
|
+
_globals['_CYPHERSERVICE'].methods_by_name['CommitTransaction']._loaded_options = None
|
|
50
|
+
_globals['_CYPHERSERVICE'].methods_by_name['CommitTransaction']._serialized_options = b'\202\323\344\223\002!\"\034/v1/query/transaction/commit:\001*'
|
|
51
|
+
_globals['_CYPHERSERVICE'].methods_by_name['RollbackTransaction']._loaded_options = None
|
|
52
|
+
_globals['_CYPHERSERVICE'].methods_by_name['RollbackTransaction']._serialized_options = b'\202\323\344\223\002#\"\036/v1/query/transaction/rollback:\001*'
|
|
53
|
+
_globals['_EXECUTECYPHERREQUEST']._serialized_start=167
|
|
54
|
+
_globals['_EXECUTECYPHERREQUEST']._serialized_end=723
|
|
55
|
+
_globals['_EXECUTECYPHERREQUEST_PARAMETERSENTRY']._serialized_start=612
|
|
56
|
+
_globals['_EXECUTECYPHERREQUEST_PARAMETERSENTRY']._serialized_end=698
|
|
57
|
+
_globals['_EXECUTECYPHERRESPONSE']._serialized_start=726
|
|
58
|
+
_globals['_EXECUTECYPHERRESPONSE']._serialized_end=854
|
|
59
|
+
_globals['_ROW']._serialized_start=856
|
|
60
|
+
_globals['_ROW']._serialized_end=914
|
|
61
|
+
_globals['_QUERYSTATS']._serialized_start=917
|
|
62
|
+
_globals['_QUERYSTATS']._serialized_end=1163
|
|
63
|
+
_globals['_EXPLAINCYPHERREQUEST']._serialized_start=1166
|
|
64
|
+
_globals['_EXPLAINCYPHERREQUEST']._serialized_end=1370
|
|
65
|
+
_globals['_EXPLAINCYPHERREQUEST_PARAMETERSENTRY']._serialized_start=612
|
|
66
|
+
_globals['_EXPLAINCYPHERREQUEST_PARAMETERSENTRY']._serialized_end=698
|
|
67
|
+
_globals['_EXPLAINCYPHERRESPONSE']._serialized_start=1372
|
|
68
|
+
_globals['_EXPLAINCYPHERRESPONSE']._serialized_end=1441
|
|
69
|
+
_globals['_QUERYPLAN']._serialized_start=1444
|
|
70
|
+
_globals['_QUERYPLAN']._serialized_end=1657
|
|
71
|
+
_globals['_QUERYPLAN_DETAILSENTRY']._serialized_start=1611
|
|
72
|
+
_globals['_QUERYPLAN_DETAILSENTRY']._serialized_end=1657
|
|
73
|
+
_globals['_BEGINTRANSACTIONREQUEST']._serialized_start=1659
|
|
74
|
+
_globals['_BEGINTRANSACTIONREQUEST']._serialized_end=1684
|
|
75
|
+
_globals['_BEGINTRANSACTIONRESPONSE']._serialized_start=1686
|
|
76
|
+
_globals['_BEGINTRANSACTIONRESPONSE']._serialized_end=1736
|
|
77
|
+
_globals['_COMMITTRANSACTIONREQUEST']._serialized_start=1738
|
|
78
|
+
_globals['_COMMITTRANSACTIONREQUEST']._serialized_end=1846
|
|
79
|
+
_globals['_EXPECTEDNODEVERSION']._serialized_start=1848
|
|
80
|
+
_globals['_EXPECTEDNODEVERSION']._serialized_end=1920
|
|
81
|
+
_globals['_COMMITTRANSACTIONRESPONSE']._serialized_start=1922
|
|
82
|
+
_globals['_COMMITTRANSACTIONRESPONSE']._serialized_end=1991
|
|
83
|
+
_globals['_ROLLBACKTRANSACTIONREQUEST']._serialized_start=1993
|
|
84
|
+
_globals['_ROLLBACKTRANSACTIONREQUEST']._serialized_end=2045
|
|
85
|
+
_globals['_ROLLBACKTRANSACTIONRESPONSE']._serialized_start=2047
|
|
86
|
+
_globals['_ROLLBACKTRANSACTIONRESPONSE']._serialized_end=2076
|
|
87
|
+
_globals['_CYPHERSERVICE']._serialized_start=2079
|
|
88
|
+
_globals['_CYPHERSERVICE']._serialized_end=2848
|
|
89
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -10,7 +10,7 @@ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
|
|
|
10
10
|
DESCRIPTOR: _descriptor.FileDescriptor
|
|
11
11
|
|
|
12
12
|
class ExecuteCypherRequest(_message.Message):
|
|
13
|
-
__slots__ = ("query", "parameters", "read_preference", "read_concern", "write_concern", "transaction_id")
|
|
13
|
+
__slots__ = ("query", "parameters", "read_preference", "read_concern", "write_concern", "transaction_id", "vector_consistency", "vector_build_wait_ms")
|
|
14
14
|
class ParametersEntry(_message.Message):
|
|
15
15
|
__slots__ = ("key", "value")
|
|
16
16
|
KEY_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -24,13 +24,17 @@ class ExecuteCypherRequest(_message.Message):
|
|
|
24
24
|
READ_CONCERN_FIELD_NUMBER: _ClassVar[int]
|
|
25
25
|
WRITE_CONCERN_FIELD_NUMBER: _ClassVar[int]
|
|
26
26
|
TRANSACTION_ID_FIELD_NUMBER: _ClassVar[int]
|
|
27
|
+
VECTOR_CONSISTENCY_FIELD_NUMBER: _ClassVar[int]
|
|
28
|
+
VECTOR_BUILD_WAIT_MS_FIELD_NUMBER: _ClassVar[int]
|
|
27
29
|
query: str
|
|
28
30
|
parameters: _containers.MessageMap[str, _types_pb2.PropertyValue]
|
|
29
31
|
read_preference: _consistency_pb2.ReadPreference
|
|
30
32
|
read_concern: _consistency_pb2.ReadConcern
|
|
31
33
|
write_concern: _consistency_pb2.WriteConcern
|
|
32
34
|
transaction_id: int
|
|
33
|
-
|
|
35
|
+
vector_consistency: _consistency_pb2.VectorConsistency
|
|
36
|
+
vector_build_wait_ms: int
|
|
37
|
+
def __init__(self, query: _Optional[str] = ..., parameters: _Optional[_Mapping[str, _types_pb2.PropertyValue]] = ..., read_preference: _Optional[_Union[_consistency_pb2.ReadPreference, str]] = ..., read_concern: _Optional[_Union[_consistency_pb2.ReadConcern, _Mapping]] = ..., write_concern: _Optional[_Union[_consistency_pb2.WriteConcern, _Mapping]] = ..., transaction_id: _Optional[int] = ..., vector_consistency: _Optional[_Union[_consistency_pb2.VectorConsistency, str]] = ..., vector_build_wait_ms: _Optional[int] = ...) -> None: ...
|
|
34
38
|
|
|
35
39
|
class ExecuteCypherResponse(_message.Message):
|
|
36
40
|
__slots__ = ("columns", "rows", "stats")
|
|
@@ -49,7 +53,7 @@ class Row(_message.Message):
|
|
|
49
53
|
def __init__(self, values: _Optional[_Iterable[_Union[_types_pb2.PropertyValue, _Mapping]]] = ...) -> None: ...
|
|
50
54
|
|
|
51
55
|
class QueryStats(_message.Message):
|
|
52
|
-
__slots__ = ("nodes_created", "nodes_deleted", "edges_created", "edges_deleted", "properties_set", "execution_time_ms", "applied_index", "served_by_leader", "commit_ts")
|
|
56
|
+
__slots__ = ("nodes_created", "nodes_deleted", "edges_created", "edges_deleted", "properties_set", "execution_time_ms", "applied_index", "served_by_leader", "commit_ts", "read_as_of_ts")
|
|
53
57
|
NODES_CREATED_FIELD_NUMBER: _ClassVar[int]
|
|
54
58
|
NODES_DELETED_FIELD_NUMBER: _ClassVar[int]
|
|
55
59
|
EDGES_CREATED_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -59,6 +63,7 @@ class QueryStats(_message.Message):
|
|
|
59
63
|
APPLIED_INDEX_FIELD_NUMBER: _ClassVar[int]
|
|
60
64
|
SERVED_BY_LEADER_FIELD_NUMBER: _ClassVar[int]
|
|
61
65
|
COMMIT_TS_FIELD_NUMBER: _ClassVar[int]
|
|
66
|
+
READ_AS_OF_TS_FIELD_NUMBER: _ClassVar[int]
|
|
62
67
|
nodes_created: int
|
|
63
68
|
nodes_deleted: int
|
|
64
69
|
edges_created: int
|
|
@@ -68,7 +73,8 @@ class QueryStats(_message.Message):
|
|
|
68
73
|
applied_index: int
|
|
69
74
|
served_by_leader: bool
|
|
70
75
|
commit_ts: int
|
|
71
|
-
|
|
76
|
+
read_as_of_ts: int
|
|
77
|
+
def __init__(self, nodes_created: _Optional[int] = ..., nodes_deleted: _Optional[int] = ..., edges_created: _Optional[int] = ..., edges_deleted: _Optional[int] = ..., properties_set: _Optional[int] = ..., execution_time_ms: _Optional[int] = ..., applied_index: _Optional[int] = ..., served_by_leader: _Optional[bool] = ..., commit_ts: _Optional[int] = ..., read_as_of_ts: _Optional[int] = ...) -> None: ...
|
|
72
78
|
|
|
73
79
|
class ExplainCypherRequest(_message.Message):
|
|
74
80
|
__slots__ = ("query", "parameters")
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: coordinode/v1/replication/cdc.proto
|
|
5
|
+
# Protobuf Python Version: 7.35.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
7,
|
|
15
|
+
35,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'coordinode/v1/replication/cdc.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#coordinode/v1/replication/cdc.proto\x12\x19\x63oordinode.v1.replication\"\x9b\x01\n\x11\x43onsumerRetention\x12<\n\x06strict\x18\x01 \x01(\x0b\x32*.coordinode.v1.replication.StrictRetentionH\x00\x12>\n\x07\x62ounded\x18\x02 \x01(\x0b\x32+.coordinode.v1.replication.BoundedRetentionH\x00\x42\x08\n\x06policy\"\x11\n\x0fStrictRetention\"\x85\x01\n\x10\x42oundedRetention\x12\x1b\n\x13max_progress_lag_ms\x18\x01 \x01(\x04\x12\x1a\n\x12max_retained_bytes\x18\x02 \x01(\x04\x12 \n\x13liveness_timeout_ms\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x16\n\x14_liveness_timeout_ms\"E\n\x19\x43\x61ncelSubscriptionRequest\x12\x13\n\x0b\x63onsumer_id\x18\x01 \x01(\t\x12\x13\n\x0bincarnation\x18\x02 \x01(\x04\"\x1c\n\x1a\x43\x61ncelSubscriptionResponse\"\x84\x01\n\x1e\x41\x63knowledgeSubscriptionRequest\x12\x13\n\x0b\x63onsumer_id\x18\x01 \x01(\t\x12\x13\n\x0bincarnation\x18\x02 \x01(\x04\x12\x38\n\x08position\x18\x03 \x01(\x0b\x32&.coordinode.v1.replication.ResumeToken\"!\n\x1f\x41\x63knowledgeSubscriptionResponse\"I\n\x0bResumeToken\x12\x10\n\x08shard_id\x18\x01 \x01(\r\x12\x12\n\nsegment_id\x18\x02 \x01(\x04\x12\x14\n\x0c\x65ntry_offset\x18\x03 \x01(\x04\"L\n\nCdcFilters\x12\x12\n\nedge_types\x18\x01 \x03(\t\x12\x19\n\x0cis_migration\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x0f\n\r_is_migration\"\xf3\x01\n\x10SubscribeRequest\x12<\n\x0cresume_token\x18\x01 \x01(\x0b\x32&.coordinode.v1.replication.ResumeToken\x12\x36\n\x07\x66ilters\x18\x02 \x01(\x0b\x32%.coordinode.v1.replication.CdcFilters\x12\x13\n\x0b\x63onsumer_id\x18\x03 \x01(\t\x12\x13\n\x0bincarnation\x18\x04 \x01(\x04\x12?\n\tretention\x18\x05 \x01(\x0b\x32,.coordinode.v1.replication.ConsumerRetention\"\xce\x01\n\x0b\x43hangeEvent\x12\n\n\x02ts\x18\x01 \x01(\x04\x12\x0c\n\x04term\x18\x02 \x01(\x04\x12\x11\n\tlog_index\x18\x03 \x01(\x04\x12\x10\n\x08shard_id\x18\x04 \x01(\r\x12\x14\n\x0cis_migration\x18\x05 \x01(\x08\x12\x30\n\x03ops\x18\x06 \x03(\x0b\x32#.coordinode.v1.replication.ChangeOp\x12\x38\n\x08position\x18\x07 \x01(\x0b\x32&.coordinode.v1.replication.ResumeToken\"p\n\x08\x43hangeOp\x12\x35\n\x04type\x18\x01 \x01(\x0e\x32\'.coordinode.v1.replication.ChangeOpType\x12\x11\n\tpartition\x18\x02 \x01(\r\x12\x0b\n\x03key\x18\x03 \x01(\x0c\x12\r\n\x05value\x18\x04 \x01(\x0c*\x92\x01\n\x0c\x43hangeOpType\x12\x1e\n\x1a\x43HANGE_OP_TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06INSERT\x10\x01\x12\n\n\x06\x44\x45LETE\x10\x02\x12\t\n\x05MERGE\x10\x03\x12\x08\n\x04NOOP\x10\x04\x12\x0e\n\nRAFT_ENTRY\x10\x05\x12\x13\n\x0fRAFT_TRUNCATION\x10\x06\x12\x10\n\x0cREMOVE_RANGE\x10\x07\x32\x90\x03\n\x13\x43hangeStreamService\x12\x62\n\tSubscribe\x12+.coordinode.v1.replication.SubscribeRequest\x1a&.coordinode.v1.replication.ChangeEvent0\x01\x12\x90\x01\n\x17\x41\x63knowledgeSubscription\x12\x39.coordinode.v1.replication.AcknowledgeSubscriptionRequest\x1a:.coordinode.v1.replication.AcknowledgeSubscriptionResponse\x12\x81\x01\n\x12\x43\x61ncelSubscription\x12\x34.coordinode.v1.replication.CancelSubscriptionRequest\x1a\x35.coordinode.v1.replication.CancelSubscriptionResponseb\x06proto3')
|
|
28
|
+
|
|
29
|
+
_globals = globals()
|
|
30
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'coordinode.v1.replication.cdc_pb2', _globals)
|
|
32
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
|
+
DESCRIPTOR._loaded_options = None
|
|
34
|
+
_globals['_CHANGEOPTYPE']._serialized_start=1373
|
|
35
|
+
_globals['_CHANGEOPTYPE']._serialized_end=1519
|
|
36
|
+
_globals['_CONSUMERRETENTION']._serialized_start=67
|
|
37
|
+
_globals['_CONSUMERRETENTION']._serialized_end=222
|
|
38
|
+
_globals['_STRICTRETENTION']._serialized_start=224
|
|
39
|
+
_globals['_STRICTRETENTION']._serialized_end=241
|
|
40
|
+
_globals['_BOUNDEDRETENTION']._serialized_start=244
|
|
41
|
+
_globals['_BOUNDEDRETENTION']._serialized_end=377
|
|
42
|
+
_globals['_CANCELSUBSCRIPTIONREQUEST']._serialized_start=379
|
|
43
|
+
_globals['_CANCELSUBSCRIPTIONREQUEST']._serialized_end=448
|
|
44
|
+
_globals['_CANCELSUBSCRIPTIONRESPONSE']._serialized_start=450
|
|
45
|
+
_globals['_CANCELSUBSCRIPTIONRESPONSE']._serialized_end=478
|
|
46
|
+
_globals['_ACKNOWLEDGESUBSCRIPTIONREQUEST']._serialized_start=481
|
|
47
|
+
_globals['_ACKNOWLEDGESUBSCRIPTIONREQUEST']._serialized_end=613
|
|
48
|
+
_globals['_ACKNOWLEDGESUBSCRIPTIONRESPONSE']._serialized_start=615
|
|
49
|
+
_globals['_ACKNOWLEDGESUBSCRIPTIONRESPONSE']._serialized_end=648
|
|
50
|
+
_globals['_RESUMETOKEN']._serialized_start=650
|
|
51
|
+
_globals['_RESUMETOKEN']._serialized_end=723
|
|
52
|
+
_globals['_CDCFILTERS']._serialized_start=725
|
|
53
|
+
_globals['_CDCFILTERS']._serialized_end=801
|
|
54
|
+
_globals['_SUBSCRIBEREQUEST']._serialized_start=804
|
|
55
|
+
_globals['_SUBSCRIBEREQUEST']._serialized_end=1047
|
|
56
|
+
_globals['_CHANGEEVENT']._serialized_start=1050
|
|
57
|
+
_globals['_CHANGEEVENT']._serialized_end=1256
|
|
58
|
+
_globals['_CHANGEOP']._serialized_start=1258
|
|
59
|
+
_globals['_CHANGEOP']._serialized_end=1370
|
|
60
|
+
_globals['_CHANGESTREAMSERVICE']._serialized_start=1522
|
|
61
|
+
_globals['_CHANGESTREAMSERVICE']._serialized_end=1922
|
|
62
|
+
# @@protoc_insertion_point(module_scope)
|
{coordinode-3.0.0 → coordinode-4.0.0}/coordinode/_proto/coordinode/v1/replication/cdc_pb2.pyi
RENAMED
|
@@ -26,6 +26,54 @@ RAFT_ENTRY: ChangeOpType
|
|
|
26
26
|
RAFT_TRUNCATION: ChangeOpType
|
|
27
27
|
REMOVE_RANGE: ChangeOpType
|
|
28
28
|
|
|
29
|
+
class ConsumerRetention(_message.Message):
|
|
30
|
+
__slots__ = ("strict", "bounded")
|
|
31
|
+
STRICT_FIELD_NUMBER: _ClassVar[int]
|
|
32
|
+
BOUNDED_FIELD_NUMBER: _ClassVar[int]
|
|
33
|
+
strict: StrictRetention
|
|
34
|
+
bounded: BoundedRetention
|
|
35
|
+
def __init__(self, strict: _Optional[_Union[StrictRetention, _Mapping]] = ..., bounded: _Optional[_Union[BoundedRetention, _Mapping]] = ...) -> None: ...
|
|
36
|
+
|
|
37
|
+
class StrictRetention(_message.Message):
|
|
38
|
+
__slots__ = ()
|
|
39
|
+
def __init__(self) -> None: ...
|
|
40
|
+
|
|
41
|
+
class BoundedRetention(_message.Message):
|
|
42
|
+
__slots__ = ("max_progress_lag_ms", "max_retained_bytes", "liveness_timeout_ms")
|
|
43
|
+
MAX_PROGRESS_LAG_MS_FIELD_NUMBER: _ClassVar[int]
|
|
44
|
+
MAX_RETAINED_BYTES_FIELD_NUMBER: _ClassVar[int]
|
|
45
|
+
LIVENESS_TIMEOUT_MS_FIELD_NUMBER: _ClassVar[int]
|
|
46
|
+
max_progress_lag_ms: int
|
|
47
|
+
max_retained_bytes: int
|
|
48
|
+
liveness_timeout_ms: int
|
|
49
|
+
def __init__(self, max_progress_lag_ms: _Optional[int] = ..., max_retained_bytes: _Optional[int] = ..., liveness_timeout_ms: _Optional[int] = ...) -> None: ...
|
|
50
|
+
|
|
51
|
+
class CancelSubscriptionRequest(_message.Message):
|
|
52
|
+
__slots__ = ("consumer_id", "incarnation")
|
|
53
|
+
CONSUMER_ID_FIELD_NUMBER: _ClassVar[int]
|
|
54
|
+
INCARNATION_FIELD_NUMBER: _ClassVar[int]
|
|
55
|
+
consumer_id: str
|
|
56
|
+
incarnation: int
|
|
57
|
+
def __init__(self, consumer_id: _Optional[str] = ..., incarnation: _Optional[int] = ...) -> None: ...
|
|
58
|
+
|
|
59
|
+
class CancelSubscriptionResponse(_message.Message):
|
|
60
|
+
__slots__ = ()
|
|
61
|
+
def __init__(self) -> None: ...
|
|
62
|
+
|
|
63
|
+
class AcknowledgeSubscriptionRequest(_message.Message):
|
|
64
|
+
__slots__ = ("consumer_id", "incarnation", "position")
|
|
65
|
+
CONSUMER_ID_FIELD_NUMBER: _ClassVar[int]
|
|
66
|
+
INCARNATION_FIELD_NUMBER: _ClassVar[int]
|
|
67
|
+
POSITION_FIELD_NUMBER: _ClassVar[int]
|
|
68
|
+
consumer_id: str
|
|
69
|
+
incarnation: int
|
|
70
|
+
position: ResumeToken
|
|
71
|
+
def __init__(self, consumer_id: _Optional[str] = ..., incarnation: _Optional[int] = ..., position: _Optional[_Union[ResumeToken, _Mapping]] = ...) -> None: ...
|
|
72
|
+
|
|
73
|
+
class AcknowledgeSubscriptionResponse(_message.Message):
|
|
74
|
+
__slots__ = ()
|
|
75
|
+
def __init__(self) -> None: ...
|
|
76
|
+
|
|
29
77
|
class ResumeToken(_message.Message):
|
|
30
78
|
__slots__ = ("shard_id", "segment_id", "entry_offset")
|
|
31
79
|
SHARD_ID_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -45,12 +93,18 @@ class CdcFilters(_message.Message):
|
|
|
45
93
|
def __init__(self, edge_types: _Optional[_Iterable[str]] = ..., is_migration: _Optional[bool] = ...) -> None: ...
|
|
46
94
|
|
|
47
95
|
class SubscribeRequest(_message.Message):
|
|
48
|
-
__slots__ = ("resume_token", "filters")
|
|
96
|
+
__slots__ = ("resume_token", "filters", "consumer_id", "incarnation", "retention")
|
|
49
97
|
RESUME_TOKEN_FIELD_NUMBER: _ClassVar[int]
|
|
50
98
|
FILTERS_FIELD_NUMBER: _ClassVar[int]
|
|
99
|
+
CONSUMER_ID_FIELD_NUMBER: _ClassVar[int]
|
|
100
|
+
INCARNATION_FIELD_NUMBER: _ClassVar[int]
|
|
101
|
+
RETENTION_FIELD_NUMBER: _ClassVar[int]
|
|
51
102
|
resume_token: ResumeToken
|
|
52
103
|
filters: CdcFilters
|
|
53
|
-
|
|
104
|
+
consumer_id: str
|
|
105
|
+
incarnation: int
|
|
106
|
+
retention: ConsumerRetention
|
|
107
|
+
def __init__(self, resume_token: _Optional[_Union[ResumeToken, _Mapping]] = ..., filters: _Optional[_Union[CdcFilters, _Mapping]] = ..., consumer_id: _Optional[str] = ..., incarnation: _Optional[int] = ..., retention: _Optional[_Union[ConsumerRetention, _Mapping]] = ...) -> None: ...
|
|
54
108
|
|
|
55
109
|
class ChangeEvent(_message.Message):
|
|
56
110
|
__slots__ = ("ts", "term", "log_index", "shard_id", "is_migration", "ops", "position")
|