On Wed, Feb 16, 2005 at 08:23:57PM +0100, Nikolai Prokoschenko wrote: > Хочу настроить IMAP-сервер на основе базы данных. При этом самое главное
[...] > Может ли кто-нибудь подсказать что-нибудь дельное? Спасибо. Эта идея регулярно всплывает, но реализации получаются чрезвычайно кривыми: почта (солидных размеров blobы с ограниченным наборов метаданных) совсем не тот тип данных для которых предназначены обычные БД. Производительность сильно страдает на ненужном оверхеде, дисковое пространство фрагментируется, сама База растёт и т.д -- аналогичные проблемы с которыми столкнулся microsoft в WinFS для своего longhorn'а. Я знаю несколько продуктов, реализующих почту на БД: - OracleMail, который даже сам Oracle уже не юзает - MS Exchange в принципе работает, но эпизодически требует длительной дефрагментации хранилища. Некоторые рутинные операции неоправданно сложны (восстановления единственного сообщения из бекапа, например). Полноценное использование возможно только со специальным софтом (Outlook). - DBMail обрисованные проблемы там в полный рост. Не смотря на свой приличный вроде возраст, там письмо до сих пор фактически хранится как два блоба: один для заголовка и один для тела письма. Для получения From, Subject, Date и списка аттачментов -- обычная операция для IMAP -- ему надо вытащить из базы письмо, распарсить его, отдать пользователю. И так каждый раз. Ну, кеширование должно помочь, конечно, ценой дополнительного дискового пространства и операций ввода-вывода. EMC, Hitachi, DotHill и прочие производители систем хранения будет счастливы от такой системы. - IBM/Lotus Workplace самый ужасный софт, который я видел. Все описанные "бонусы" хранения почты в реляционной БД (там IBM DB2), плюс всё это написано на java, работает от root, чрезвычайно хрупко: неверный выбор пункта в инсталляторе и никто никогда не сможет понять почему оно не работает. В общем, я чрезвычайно сомневаюсь что возможна успешная почтовая система, хранящая почту в реляционной БД. Хотя прогресс не стоит на месте -- диски становятся всё больше, быстрее, оперативной памяти много -- я уверен: почта в БД по скорости и надёжности работы всегда будет уступать простым файлам (обычные свободные MTA, CommunigatePro, iPlanet Messaging Server) или же специальным системам (типа используемых в gmail). Пример, который ты привёл в своём оригинальном письме (показать письма в debian russian за последние 14 дней) врятли характерен для работы с обычной персональной электронной корреспонденцией. Это больше похоже на работу netnews/usenet, которые работают уже много лет без БД. Почтовые рассылки обычно туда гейтуются, ищи, например, группу linux.debian.user.russian у своего ISP, посмотри на http://groups.google.com/или; на совсем специальный сервис -- http://www.gmane.org/. Gmane, кстати, вроде и исходники свои раздаёт, так что можно себе клон поставить. Если ты непременно хочешь такое, то Evolution умеет делать virtual folders из всего, с помощью grepmail можно сделать на локальных mbox'ах. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]