Спасибо, ссылку поправил.. архив теперь на месте..
Что касается BerkleyDB - проблема решается "в лоб" - тупым резервированием. Если подойти к этому вопросу после некоторого раздумия - то получается - что при "поломке" базы появляемя пустой ключ, который невозможно удалить. отредактировать и т.д.
Для решения этой проблемы я как раз уже написал (осталось интерфейс подправить) утилитку, которая делает из "поломанной базы" правильную.
Делается это копированием "целых" блоков из старой базы в новую с дальнейшей перезаписью "поломанной".