Я только начал играть с Berkeley DB несколько дней назад, поэтому я пытаюсь выяснить, есть ли что-то, чего я не хватал, когда дело доходит до хранения данных как можно быстрее.Оптимизация производительности в Berkeley DB
Вот некоторая информация о данных: - он приходит в 512 байт куски - ломти приходят, чтобы - ломти будут удалены в порядке их поступления - если я потерять некоторые данные от конца из-за сбоя питания, это нормально до тех пор, пока весь db не сломался.
После прочтения кучки документации, похоже, что Queue db было именно тем, что я хотел.
Однако, попробовав некоторый тестовый код, мои самые быстрые результаты были примерно 1 Мбайт в секунду, просто перебирая DB-> put с установленным DB_APPEND. Я также пытался использовать транзакции и навальные вкладыши, но оба эти замедлились, поэтому я не проводил их много времени. Я вставлял новый db, созданный на чипе NANDFlash на моем доске объявлений Freescale i.MX35.
Поскольку мы стремимся получить скорость записи не менее 2 Мбайт в секунду, мне было интересно, есть ли что-то, что я пропустил, что может улучшить мои скорости, поскольку я знаю, что мое оборудование может писать быстрее, чем это.
Спасибо за комментарий. Тем не менее, я обнаружил, что просто включение среды приводит к слишком большому снижению производительности по сравнению с тем, что она не используется. Я думаю, что это связано с WAL, поэтому эти флаги помогут мне, но даже без окружающей среды все происходит слишком медленно. – jjfine
@jjfine: Я считаю, что среда используется неявно с анонимными (автоматическими фиксациями) транзакциями, если вы не делаете этого явно. Поэтому не использовать среду не поможет. –
@ VladLazarenko, поэтому, если я установил один из этих двух флагов, когда я закрою berkeley db, кеш будет сброшен на диск? – Alcott