def __init__(self, dirpath, map_size_limit, ram_gb_limit=2):
self.map_size_limit = int(map_size_limit) # Megabytes (MB)
self.ram_gb_limit = float(ram_gb_limit) # Gigabytes (GB)
self.keys = []
self.nb_samples = 0
# Minor sanity checks
if self.map_size_limit <= 0:
raise ValueError('The LMDB map size must be positive: '
'{}'.format(self.map_size_limit))
if self.ram_gb_limit <= 0:
raise ValueError('The RAM limit (GB) per write must be '
'positive: {}'.format(self.ram_gb_limit))
# Convert `map_size_limit` from MB to B
map_size_limit <<= 20
# Open LMDB environment
self._lmdb_env = lmdb.open(dirpath,
map_size=map_size_limit,
max_dbs=NB_DBS)
# Open the default database(s) associated with the environment
self.data_db = self._lmdb_env.open_db(DATA_DB)
self.meta_db = self._lmdb_env.open_db(META_DB)
评论列表
文章目录