Re: IMAP сервер на базах данных с прибабахами...
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'ах.
Reply to: