У меня есть большой lmdb, около 800K изображений. Я хочу просто прочитать записи один за другим. Мой код очень прост и выглядит следующим образом:python LMDB большие DB (ошибка ограничения памяти)
with env.begin() as txn:
cursor = txn.cursor()
for key, value in cursor:
print(key)
Но после прочтения около 70000 записей он выбегает из памяти (~ 10GB). Я понятия не имею, почему. Я попытался сделать, как показано ниже, но это не сработало.
for r in range(0,env.stat()['entries']):
if r%10000==0:
if r!=0:
txn.commit()
cur.close()
txn=env.begin()
cur = txn.cursor()
print("Change Change Change "+ str(r))
sys.stdout.flush()
if r==0:
cur.first()
else:
cur.set_range(key)
cur.next()
key, value = cur.item()
любое предложение?
Это журнал ошибок: slurmstepd: Работа 1008515 превысила лимит памяти (65537464> 65536000), была убита slurmstepd: *** РАБОТЫ 1008515 ON mmm269 ОТМЕНА НА 2016-05-18T15: 09: 41 *** slurmstepd: предел превышенного предела памяти в какой-то момент. slurmstepd: Превышен предел памяти задания этот тим я выделил 64 ГБ бара, но снова это случилось. Общий размер моей БД составляет 596 ГБ. – arash