Пример #1
0
 def __init__(self, name):
     CustomStorage.__init__(self)
     self.db = mongoengine.connection._get_db(reconnect=False)
     self.name = name
     pid = self.db.rtreeseq.find_one({'_id' : self.name})
     if not pid:
         self.db.rtreeseq.insert({'_id' : self.name, "seq" : -1})
Пример #2
0
 def __init__(self, name):
     CustomStorage.__init__(self)
     self.db = mongoengine.connection._get_db(reconnect=False)
     self.name = name
     pid = self.db.rtreeseq.find_one({'_id': self.name})
     if not pid:
         self.db.rtreeseq.insert({'_id': self.name, "seq": -1})
Пример #3
0
    def __init__(self, file_prefix, loadexist=False, readonly=False):
        CustomStorage.__init__(self)
        if not loadexist:
            if hdfs.path.exists('{0}_0'.format(file_prefix)):
                file_prefix += '_0'
            while hdfs.path.exists('{0}_0'.format(file_prefix)):
                insert_index = file_prefix.rfind('_')
                file_prefix = '{0}_{1}'.format(file_prefix[:insert_index], int(file_prefix[insert_index + 1:]) + 1)
        self.file_prefix = file_prefix
        self.read_only = readonly
        self.clear()
        logger.info('init hdfs storage from hdfs file_prefix {0}'.format(self.file_prefix))
        try:
            total_start = timeit.default_timer()
            prefix_split = hdfs.path.splitpath(self.file_prefix)
            folder_path = prefix_split[0]
            real_prefix = prefix_split[1] + '_'
            if not hdfs.path.exists(folder_path):
                hdfs.mkdir(folder_path)

            files_info = hdfs.lsl(folder_path)
            # files_info = hdfs.lsl('{0}_*'.format(self.file_prefix))
            logger.debug('files_info:{0}'.format(files_info))
            sizecount = 0
            for file_info in files_info:
                start_time = timeit.default_timer()
                file_name = hdfs.path.splitpath(file_info['path'])[1]
                if file_name.startswith(real_prefix) and file_info['kind'] == 'file':
                    logger.debug('file info: {0}'.format(file_info))
                    page_id = file_name[len(real_prefix):]
                    if not page_id.isdigit():
                        continue
                    logger.debug('file {0} page id :{1}#'.format(file_info['path'],
                                                                 page_id))
                    # if page_id.isdigit():
                    logger.info('load {0}# page file {1}'.format(page_id,
                                                                 file_info['path']))
                    content = hdfs.load(file_info['path'], mode='r')
                    # logger.debug('{0}# page content:{1}'.format(page_id, content))
                    self.pagedict[int(page_id)] = content
                    logger.debug('{0}# page load complete'.format(page_id))
                    end_time = timeit.default_timer()
                    eval(generate_timer_log_str.format(
                        'load {0} {1} byte'.format(file_name, len(self.pagedict[int(page_id)])),
                        start_time,
                        end_time))
                    sizecount += len(self.pagedict[int(page_id)])
        except IOError, ie:
            logger.debug(traceback.format_exc())
Пример #4
0
 def __init__(self, mapping, convertToInt = True):
     CustomStorage.__init__( self )
     self.mapping = mapping
     self.blockWrites = False
     self.convertToInt = convertToInt
Пример #5
0
 def __init__(self):
     CustomStorage.__init__( self )
     self.clear()
     self.print_stores = False