У меня есть скрипт, в котором я пытаюсь добавить данные в существующую пару ключ / значение. Проблема в том, что всякий раз, когда я получаю существующие данные, используя txn.get()
, он использует оперативную память, которую впоследствии не освобождает. Когда предел оперативной памяти приближается, компьютер становится очень медленным и пространство подкачки используется все больше и больше. Пока я не достиг предела пространства подкачки, но я боюсь, что мой скрипт прекратит работу, если он достигнет предела. Но в любом случае, без использования оперативной памяти мой сценарий будет работать без проблем даже при небольшой оперативной памяти.
Вот фрагмент моего сценария, вызывающий у меня эту проблему:
for p in xrange(strings_number):
data=txn.get(struct.pack('i',900000+p)) #I want to reorganize this bytestring into columns
for j in xrange(col_number):
to_be_appended=""
for l in xrange(j*4,len(data),size):
to_be_appended+=data[l:l+4]
temp=txn.get(struct.pack('i',j)) #whenever I call txn.get() memory usage gets bigger
txn.put(struct.pack('i',j),temp+to_be_appended,dupdata=False,overwrite=True)
txn.delete(struct.pack('i',900000+p))