[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: