Я бы не догадался; BDBJE - это база данных с лог-структурой, т. Е. Все записи добавляются в конец журнала. Это означает, что записи всегда добавляются к последнему журналу и могут заменять записи в предыдущих журналах. Поскольку BDBJE по своей конструкции не может записывать в старые журналы, он не может пометить старые записи как замененные, поэтому вы не можете идти вперед по записям обработки хранения, потому что не знаете, является ли запись текущей, не обработав записи позже в журнале.
BDBJE будет очищать старые журналы, так как их количество "живых" записей уменьшается, копируя текущие записи в новые журналы и удаляя старые файлы, что еще больше упрощает порядок.
Я обнаружил, что Java-привязка Kyoto Cabinet быстрее, чем BDB, для необработанной производительности вставки, и у вас есть выбор форматов хранения, которые могут позволить вам оптимизировать производительность обхода записей, упорядоченных курсором. Лицензия аналогична (Киотский кабинет GPL3, BDB - лицензия Oracle BDB (copyleft)), если вы не платите за коммерческую лицензию в любом случае.
Обновление: Начиная с версии 5.0.34 , BDBJE включает в себя класс DiskOrderedCursor, который обращается к необходимому сценарию использования - он просматривает записи в последовательности журнала, которая в нефрагментированном файле журнала должна соответствовать порядку диска .