예제 #1
0
 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)
예제 #2
0
 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
예제 #3
0
 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))
예제 #4
0
def delete(cmd_ctx):
    redwrap = RedisWrapper(cmd_ctx.redis_master, cmd_ctx.key_manager)
    for m in cmd_ctx.cmdArgs:
        redwrap.delete_block(m)