Skip to content

Commit de75672

Browse files
authored
GG-32709 [IGNITE-14167] Simplify reconnecting, fix affinity topology … (#24)
1 parent 315249d commit de75672

13 files changed

Lines changed: 425 additions & 472 deletions

File tree

pygridgain/api/affinity.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,13 @@
5555
partition_mapping = StructArray([
5656
('is_applicable', Bool),
5757

58-
('cache_mapping', Conditional(lambda ctx: ctx['is_applicable'] and ctx['is_applicable'].value == 1,
58+
('cache_mapping', Conditional(['is_applicable'],
59+
lambda ctx: ctx['is_applicable'] and ctx['is_applicable'].value == 1,
5960
lambda ctx: ctx['is_applicable'],
6061
cache_mapping, empty_cache_mapping)),
6162

62-
('node_mapping', Conditional(lambda ctx: ctx['is_applicable'] and ctx['is_applicable'].value == 1,
63+
('node_mapping', Conditional(['is_applicable'],
64+
lambda ctx: ctx['is_applicable'] and ctx['is_applicable'].value == 1,
6365
lambda ctx: ctx['is_applicable'],
6466
node_mapping, empty_node_mapping)),
6567
])

pygridgain/cache.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,10 @@ def get_best_node(
283283
parts += len(p)
284284

285285
self.affinity['number_of_partitions'] = parts
286+
287+
for conn in self.client._nodes:
288+
if not conn.alive:
289+
conn.reconnect()
286290
else:
287291
# get number of partitions
288292
parts = self.affinity.get('number_of_partitions')

pygridgain/client.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -182,15 +182,9 @@ def connect(self, *args):
182182
if not self.partition_aware:
183183
# do not try to open more nodes
184184
self._current_node = i
185-
else:
186-
# take a chance to schedule the reconnection
187-
# for all the failed connections, that was probed
188-
# before this
189-
for failed_node in self._nodes[:i]:
190-
failed_node.reconnect()
191185

192186
except connection_errors:
193-
conn._fail()
187+
conn.failed = True
194188
if self.partition_aware:
195189
# schedule the reconnection
196190
conn.reconnect()

0 commit comments

Comments
 (0)