def __init__(self, node, keys_db, job_processor): self.node = node self.session = elliptics.Session(self.node) wait_timeout = config.get('elliptics', {}).get('wait_timeout', 5) self.session.set_timeout(wait_timeout) self.bandwidth_per_copy = CACHE_CFG.get('bandwidth_per_copy', 5242880) self.copies_reduce_factor = CACHE_CFG['copies_reduce_factor'] assert 0.0 < self.copies_reduce_factor <= 1.0, "Copies reduce factor "\ "should be in (0.0, 1.0] interval" self.copies_expand_step = CACHE_CFG['copies_expand_step'] assert self.copies_expand_step > 0, "Copies expand step "\ "should be > 0" self.keys_db = keys_db self.cleaner = CacheCleaner(self, job_processor) self.groups_units = {} self.cache_groups = {} self.executing_tasks = [] self._cache_groups_lock = threading.Lock() self.node_types = inventory.get_balancer_node_types() self.dc_node_type = inventory.get_dc_node_type() self.dryrun = CACHE_CFG.get('dryrun', False)
def __init__(self, dc, weight, src_group_id): self.dc = dc self.weight = weight self.src_group_id = src_group_id self.key_copies = 0 self.candidates = [] self.node_types = inventory.get_balancer_node_types()