Skip to content

Commit d8db79d

Browse files
committed
simplify cluster ids, engine set ids
- remove hostname from cluster ids, which is ~always the same, and can be *very* long on e.g. EC2. Instead, just timestamp + random suffix. - use just timestamp and counter, not random keys for engine ids
1 parent a38c8ea commit d8db79d

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

ipyparallel/cluster/cluster.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ class Cluster(AsyncFirst, LoggingConfigurable):
101101

102102
@default("cluster_id")
103103
def _default_cluster_id(self):
104-
return f"{socket.gethostname()}-{int(time.time())}-{''.join(random.choice(_suffix_chars) for i in range(4))}"
104+
return f"{int(time.time())}-{''.join(random.choice(_suffix_chars) for i in range(4))}"
105105

106106
profile_dir = Unicode(
107107
help="""The profile directory.
@@ -604,14 +604,23 @@ def _controller_stopped(self, stop_data=None):
604604
self.log.info(f"Controller stopped: {stop_data}")
605605
self.update_cluster_file()
606606

607+
def _new_engine_set_id(self):
608+
"""Generate a new engine set id"""
609+
engine_set_id = base = f"{int(time.time())}"
610+
i = 1
611+
while engine_set_id in self.engines:
612+
engine_set_id = f"{base}-{i}"
613+
i += 1
614+
return engine_set_id
615+
607616
async def start_engines(self, n=None, engine_set_id=None, **kwargs):
608617
"""Start an engine set
609618
610619
Returns an engine set id which can be used in stop_engines
611620
"""
612621
# TODO: send engines connection info
613622
if engine_set_id is None:
614-
engine_set_id = f"{int(time.time())}-{''.join(random.choice(_suffix_chars) for i in range(4))}"
623+
engine_set_id = self._new_engine_set_id()
615624
engine_set = self.engines[engine_set_id] = self.engine_launcher_class(
616625
work_dir=u'.',
617626
parent=self,

0 commit comments

Comments
 (0)