Skip to content

Commit fec013e

Browse files
Mats-SXFlorentinDDarthMax
committed
Use retries but disable routing by manipulating protocol
Co-authored-by: Florentin Dörre <florentin.dorre@neo4j.com> Co-authored-by: Max Kießling <max.kiessling@neotechnology.com>
1 parent dd338ad commit fec013e

File tree

7 files changed

+14
-12
lines changed

7 files changed

+14
-12
lines changed

graphdatascience/query_runner/arrow_query_runner.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,10 +225,10 @@ def close(self) -> None:
225225
self._fallback_query_runner.close()
226226
self._gds_arrow_client.close()
227227

228-
def clone(self, host: str, port: int) -> "QueryRunner":
228+
def cloneWithoutRouting(self, host: str, port: int) -> "QueryRunner":
229229
return ArrowQueryRunner(
230230
self._gds_arrow_client,
231-
self._fallback_query_runner.clone(host, port),
231+
self._fallback_query_runner.cloneWithoutRouting(host, port),
232232
self._server_version,
233233
)
234234

graphdatascience/query_runner/neo4j_query_runner.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -355,13 +355,14 @@ def create_graph_constructor(
355355
def set_show_progress(self, show_progress: bool) -> None:
356356
self._show_progress = show_progress
357357

358-
def clone(self, host: str, port: int) -> QueryRunner:
359-
endpoint = "{}://{}:{}".format(self._protocol, host, port)
358+
def cloneWithoutRouting(self, host: str, port: int) -> QueryRunner:
359+
protocol=self._protocol.replace("neo4j", "bolt")
360+
endpoint = "{}://{}:{}".format(protocol, host, port)
360361
driver = neo4j.GraphDatabase.driver(endpoint, auth=self._auth, **self.driver_config())
361362

362363
return Neo4jQueryRunner(
363364
driver=driver,
364-
protocol=self._protocol,
365+
protocol=protocol,
365366
auth=self._auth,
366367
config=self._config,
367368
database=self._database,

graphdatascience/query_runner/protocol/project_protocols.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,10 +144,11 @@ def is_not_done(result: DataFrame) -> bool:
144144
database,
145145
logging=logging,
146146
custom_error=False,
147+
retryable=True,
147148
).squeeze()
148149
member_host = response["host"]
149150
member_port = response["port"] if ("port" in response.index) else 7687
150-
projection_query_runner = query_runner.clone(member_host, member_port)
151+
projection_query_runner = query_runner.cloneWithoutRouting(member_host, member_port)
151152

152153
@retry(
153154
reraise=True,
@@ -163,7 +164,7 @@ def project_fn() -> DataFrame:
163164
yields,
164165
database=database,
165166
logging=logging,
166-
retryable=False,
167+
retryable=True,
167168
custom_error=False,
168169
)
169170

graphdatascience/query_runner/query_runner.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ def set_show_progress(self, show_progress: bool) -> None:
9595
pass
9696

9797
@abstractmethod
98-
def clone(self, host: str, port: int) -> "QueryRunner":
98+
def cloneWithoutRouting(self, host: str, port: int) -> "QueryRunner":
9999
pass
100100

101101
def set_server_version(self, _: ServerVersion) -> None:

graphdatascience/query_runner/session_query_runner.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,10 +137,10 @@ def set_show_progress(self, show_progress: bool) -> None:
137137
self._show_progress = show_progress
138138
self._gds_query_runner.set_show_progress(show_progress)
139139

140-
def clone(self, host: str, port: int) -> QueryRunner:
140+
def cloneWithoutRouting(self, host: str, port: int) -> QueryRunner:
141141
return SessionQueryRunner(
142142
self._gds_query_runner,
143-
self._db_query_runner.clone(host, port),
143+
self._db_query_runner.cloneWithoutRouting(host, port),
144144
self._gds_arrow_client,
145145
self._show_progress,
146146
)

graphdatascience/query_runner/standalone_session_query_runner.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,5 +91,5 @@ def last_bookmarks(self) -> Optional[Any]:
9191
def set_server_version(self, _: ServerVersion) -> None:
9292
super().set_server_version(_)
9393

94-
def clone(self, host: str, port: int) -> QueryRunner:
94+
def cloneWithoutRouting(self, host: str, port: int) -> QueryRunner:
9595
return self

graphdatascience/tests/unit/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ def create_graph_constructor(
138138
self, graph_name, concurrency, undirected_relationship_types, self._server_version
139139
)
140140

141-
def clone(self, host: str, port: int) -> QueryRunner:
141+
def cloneWithoutRouting(self, host: str, port: int) -> QueryRunner:
142142
return self
143143

144144
def set__mock_result(self, result: DataFrame) -> None:

0 commit comments

Comments
 (0)