MIX (электронная почта) - MIX (email)

СМЕШИВАНИЕ - это высокопроизводительная индексированная система хранения электронной почты на диске, предназначенная для использования с IMAP протокол. MIX был разработан Марк Криспин, автор протокола IMAP. Поддержка сервера включена в выпуски UW IMAP с 2006 г.[1] Панда IMAP, и Архитекторы обмена сообщениями Netmail. MIX также напрямую поддерживается Альпийский почтовый клиент.

Дизайн

Почтовые ящики MIX - это каталоги, содержащие файлы нескольких типов, включая файл метаданных, индексный файл, файл данных динамического состояния, файл кэша потоковой передачи / сортировки и набор файлов, содержащих содержимое сообщения.[2] Почтовые ящики MIX могут также содержать подчиненные почтовые ящики, которые реализованы как подкаталоги в каталоге MIX.

Формат MIX был разработан с упором на очень высокую масштабируемость, надежность и производительность, одновременно эффективно поддерживая современные функции IMAP протокол.[2] MIX успешно использовался с почтовыми ящиками на 750 000 сообщений.

Формат MIX базового уровня состоит из четырех файлов: файла метаданных, индексного файла, файла состояния и некоторого набора файлов данных сообщений. Файл метаданных содержит данные базового уровня, применимые ко всему почтовому ящику; т.е. действительность UID, последний назначенный UID и список ключевых слов. Индексный файл содержит указатели на каждое неотвеченное сообщение в файлах данных сообщения, а также флаги, размер и IMAP внутренние данные. Файл состояния содержит флаги и ключевые слова для каждого сообщения.

Все эти файлы могут быть скрытыми файлами в каталоге (имя каталога является именем почтового ящика). Таким образом, каталог с гигабайтами почты может показаться пустым, если его изучить с помощью инструментов, не отображающих скрытые файлы. Это частый источник путаницы для системных администраторов, впервые сталкивающихся с MIX.[нужна цитата ]

По умолчанию почтовый ящик можно вернуть в рабочее состояние, если какой-либо из этих файлов утерян или поврежден. Например, можно восстановить индексный файл, прочитав каждый из файлов данных, без каких-либо последствий, кроме возможного «невыполнения» удаленного сообщения, для которого еще не было восстановлено пространство.

Другой важной частью дизайна MIX является то, что ни один файл не изменяется, если не изменяются данные, относящиеся к этому файлу; таким образом, изменение флага изменяет файл состояния, но не файлы метаданных или индекса. Это снижает влияние любого системного события, приводящего к повреждению выполняемой записи файла.

У каждого файла также есть «последовательность модификации», которая увеличивается каждый раз при изменении файла. Когда реализация MIX обновляется из файла, если последовательность модификации не изменилась, он сразу закрывает файл, не читая его. Кроме того, каждая запись файла состояния также имеет последовательность модификации, которая позволяет без потерь синхронизировать несколько флагов сообщений потребителей / обновлений ключевых слов /

Расширения

MIX допускает расширения, зависящие от реализации. Все реализации MIX должны быть взаимозаменяемыми на базовом уровне, но не обязаны реализовывать расширения и должны допускать отсутствие расширений.

В UW IMAP и Panda IMAP реализации MIX имеют файл кэша сортировки, который содержит данные, используемые IMAP Операторы SORT и THREAD. Это позволяет этим операторам загружать большую часть (если не все) данных, которые им нужны, без необходимости анализировать их из данных сообщения.

В Архитекторы обмена сообщениями реализация MIX имеет расширенные метаданные почтового ящика (в настоящее время используются для хранения отображаемого имени почтового ящика), метаданные сообщения (используемые для нескольких целей, включая представление JSON структуры сообщения) и глобальную последовательность модификации (что позволяет быстро проверить обновление почтового ящика без необходимость проверки последовательности модификации в нескольких файлах). Реализация Messaging Architects также имеет «виртуальный почтовый ящик» или возможность создания заглушек, при которой сообщение в почтовом ящике фактически является указателем на сообщение в другом почтовом ящике.

Сравнение с другими форматами хранения почты

MIX можно рассматривать как гибрид между Maildir (одно сообщение на файл) и mbox (один файл на почтовый ящик) типы форматов хранения электронной почты.[3]

По сравнению с maildir

MIX имеет сходство с Maildir в том смысле, что почтовые ящики MIX представляют собой каталоги, а не отдельные файлы.

Однако, в отличие от maildir, MIX поддерживает индексный файл для быстрого открытия и сканирования почтовых ящиков. Если maildir хранит каждое сообщение в отдельном файле на диске, MIX может объединять сообщения в файлы сообщений в соответствии с настроенным ограничением размера файла сообщений. Сообщения, размер которых превышает лимит, не объединяются. В результате в каталоге MIX будет меньше файлов, чем в соответствующем почтовом ящике maildir, что может быть выгодно в некоторых операционных системах.[4] MIX поддерживает эффективный поиск и изменение метаданных и информации о состоянии.

MIX также объединяет несколько небольших сообщений в отдельные файлы данных размером до 1 МБ (более крупные сообщения получают файл данных для себя). Это уменьшает количество узлов, требуемых в каталоге, что важно для производительности и масштабируемости. Формат почтового ящика MIX требует более строгой поддержки блокировки со стороны операционной системы, чем maildir, и явно не предназначен для поддержки записи через NFS.

Maildir, с другой стороны, был разработан для работы в среде NFS.[5] Maildir имеет более широкую поддержку клиентов, серверов и инструментов, чем MIX.

По сравнению с mbox

MIX значительно оптимизирован по сравнению с обычными mbox почтовый формат. MIX имеет двоичный индекс для ускорения сканирования и извлечения сообщений, тогда как mbox требует полного линейного сканирования для извлечения сообщений. Подобно maildir и в отличие от mbox, MIX поддерживает почтовые ящики, содержащие как сообщения, так и подчиненные почтовые ящики. MIX поддерживает несколько клиентов, одновременно читающих и записывающих в отдельные почтовые ящики, чего нельзя добиться с помощью mbox.

С другой стороны, формат mbox поддерживается гораздо шире, чем MIX. mbox - это широко распространенный формат файлов почтовых ящиков, который часто используется в качестве наиболее распространенного формата обмена факторами.

Смотрите также

внешняя ссылка

  • Определение формата MIX Вашингтонского университета
  • «UW IMAP, Courier, Cyrus и Dovecot в прямом сравнении» (на немецком). Linux Magazin. Получено 2009-04-04.

Рекомендации