def delete_matrix(self, name): info_key = const.INFO_FORMAT.format(name) info = self.redis_master.hgetall(info_key) rows = int(info['rows']) cols = int(info['cols']) block_size = int(info['block_size']) redwrap = RedisWrapper(self.redis_master, self.key_manager) for row in range(0, rows / block_size): for col in range(0, cols / block_size): block_name = self.key_manager.get_block_name(name, row, col) redwrap.delete_block(block_name) self.redis_master.delete(info_key)
def __aggr(self, inner_aggr, outer_aggr, axis=None, expr='x', result_name=None): if result_name == None: result_name = MatrixFactory.getRandomMatrixName() prefix = self.__inner_aggr(inner_aggr, expr, axis) aggr_job = jobs.Job(self.context) if axis == 0: for col in range(0, self.col_blocks()): bin_cb = cmd.CommandBuilder(cmd.BINARYMATRIXOP) del_cb = cmd.CommandBuilder(cmd.DELETE) for row in range(0, self.row_blocks()): mname = self.context.key_manager.get_block_name(prefix, col, row) bin_cb.add_param(mname) del_cb.add_param(mname) bin_cb.add_param(outer_aggr) bin_cb.add_param(self.context.key_manager.get_block_name(result_name, 0, col)) aggr_job.add_subjob(bin_cb.join(del_cb)) aggr_job.execute() return Matrix(1, self.__cols, result_name, self.context) elif axis == 1: for row in range(0, self.row_blocks()): bin_cb = cmd.CommandBuilder(cmd.BINARYMATRIXOP) del_cb = cmd.CommandBuilder(cmd.DELETE) for col in range(0,self.col_blocks()): mname = self.context.key_manager.get_block_name(prefix, col, row) bin_cb.add_param(mname) del_cb.add_param(mname) bin_cb.add_param(outer_aggr) bin_cb.add_param(self.context.key_manager.get_block_name(result_name, row, 0)) aggr_job.add_subjob(bin_cb.join(del_cb)) aggr_job.execute() return Matrix(self.__rows, 1, result_name, self.context) elif axis == None: total = None redwrap = RedisWrapper(self.context.redis_master, self.context.key_manager) for col in range(0, self.col_blocks()): for row in range(0,self.row_blocks()): key = self.context.key_manager.get_block_name(prefix, col, row) val = float(redwrap.get_value(key)) if total == None: total = val else: total = eval(outer_aggr, { 'numpy' : numpy, 'x' : total, 'y' : val }) redwrap.delete_block(key) return total
def __delete(self): redwrap = RedisWrapper(self.context.redis_master, self.context.key_manager) for block in self.block_names(): redwrap.delete_block(block) self.context.redis_master.delete(const.INFO_FORMAT.format(self.__name))
def delete(cmd_ctx): redwrap = RedisWrapper(cmd_ctx.redis_master, cmd_ctx.key_manager) for m in cmd_ctx.cmdArgs: redwrap.delete_block(m)