Какие основные факторы следует учитывать при настройке вставок для хранилища LevelDB?
Я вставляю 500M + записей в виде:
- key = "rs1234576543" очень предсказуемая структура.rs <1+ цифр>
- value = "1 20000, A, C" строка может быть намного длиннее, но обычно ~ 40 символов
- ключиуникальный
- порядок вставки ключей является случайным
в хранилище LevelDB с использованием уровня python, и наблюдается резкое падение скорости по мере роста количества записей.Я предполагаю, что это ожидаемо, но есть ли меры настройки, на которые я мог бы обратить внимание, чтобы сделать его лучше масштабируемым?
Пример кода:
import plyvel
BATCHSIZE = 1000000
db = plyvel.DB('/tmp/lvldbSNP151/', create_if_missing=True)
wb = db.write_batch()
# items not in any key order
for key, value in DBSNPfile:
wb.put(key,value)
if i%BATCHSIZE==0:
wb.write()
wb.write()
Я пробовал пакеты разных размеров, что помогает немного,но я надеюсь, что есть кое-что еще, что я пропустил.Например, можно ли использовать максимальную длину ключа (или значения)?