> и нафига мне эти мегатонны утилит для парсинга файлов гуёвого клиента?На случай нужды это обработать внешними утилитами или если гуевый клиент скажет "бсст, отдыхайте, сегодня работать не будем". Хотя кому-то лучше как аутлук, конечно: this PST file is corrupt -> при попытке репайра - крах -> а отдохни-ка ты чувак без своей почты, ибо навернутый бинарный формат, который ни разу не документирован и сторонних утилей для разбора и хардкорной починки нет.
Ну то-есть я не против бинарной базы ... если для нее дадут утиль хардкорного репайра способный выдрать почту по максимуму даже если половина базы убито в хлам. И формат будет более-менее внятный и простой, так что "in the case of emergency" можно будет отпарсить руками или простой утилитой, накорябаной на коленке за 15 минут.
> Плохо то, что формат не оптимален
Чего там неоптимального? Просто почта. Просто в виде как было. Влобовую. То что индекс, описывающий "а где быстро взять вон это" выпихнут куда-то вбок - ну ок, оно отдельный файл. Как бонус - если его нет, он по простому перестраивается птицей. А его стирание приводит лишь к его перегенерации. Что позволяет юзать mbox ящики там и тут.
> и для больших ящиков (директорий) быстро сваливается тормозилово.
Ну у меня есть диры с 30K сообщений. Вроде тормозов особых не вижу. Хотя 30К сообщений неклассифицированным списком - вообще-то субоптимально с точки зрения чтения и сортировки. Я обычно фильтрами по тематике раскладываю в папки, ибо ориентироваться в помойке на 30к сообщений без рубрикации - жесть.
> Иногда даже его приходится прибивать чтобы TB мог снова нормально работать с ящиком.
Не замечал особо - наверное потому что инбокс раскидывается по папкам фильтром. Есть и пара папок с 20-30К мыл (мыллисты с кучей участников). Вроде все вполне культурно работает. Индекс - есть. Если там что-то не оптимально - так это в логике работы может быть.
Еще в принципе почтовый файл может фрагментироваться если винч механический. Т.к. часто дописывается мелкими порциями по мере прилетания почты а свободное место образуется по мере удаления писем прорехами в почтовом файле. В этом случае может помочь сделать compact. При этом mbox файл будет перелит без прорех в новый а старый будет пришиблен, что основательно оптимизнет доступ к оному.
> Нормальный формат это комбинация mdir с каким-нибудь k-v хранилищем (типа bdb) для
> индекса/мелких файлов.
Так у них там и так mbox с почтой плюс отдельное файло с индексами, ускоряющими доступ к мбокс-файлам. Насколько их самопальные индексы хуже того что вы предлагаете - вопрос интересный.