MIX es un sistema de almacenamiento de correo electrónico en disco, indexado y de alto rendimiento que está diseñado para su uso con el protocolo IMAP . MIX fue diseñado por Mark Crispin , el autor del protocolo IMAP. El soporte de servidor se ha incluido en las versiones de UW IMAP desde 2006, [1] Panda IMAP y Messaging Architects Netmail. MIX también es compatible directamente con el cliente de correo electrónico Alpine .
Diseño
Los buzones de correo MIX son directorios que contienen varios tipos de archivos, incluido un archivo de metadatos, un archivo de índice, un archivo de datos de estado dinámico, un archivo de caché de subprocesamiento / clasificación y una colección de archivos que contienen el contenido del mensaje. [2] Los buzones de correo MIX también pueden contener buzones de correo subordinados, que se implementan como subdirectorios dentro del directorio MIX.
El formato MIX fue diseñado con énfasis en una escalabilidad, confiabilidad y rendimiento muy altos, al tiempo que admite de manera eficiente las características modernas del protocolo IMAP . [2] MIX se ha utilizado con éxito con buzones de 750.000 mensajes.
El formato MIX de nivel básico tiene cuatro archivos: un archivo de metadatos, un archivo de índice, un archivo de estado y algún conjunto de archivos de datos de mensajes. El archivo de metadatos contiene datos de nivel básico aplicables a todo el buzón; es decir, la validez del UID, el último UID asignado y la lista de palabras clave. El archivo de índice contiene punteros a cada mensaje sin perforar en los archivos de datos de mensajes, junto con indicadores, tamaño y datos de fecha interna IMAP . El archivo de estado contiene indicadores y palabras clave por mensaje.
Todos estos archivos pueden estar ocultos en un directorio (siendo el nombre del directorio el nombre del buzón). Por lo tanto, un directorio con gigabytes de correo puede parecer vacío si se examina con herramientas que no muestran archivos ocultos. Esta es una fuente común de confusión para los administradores de sistemas que se encuentran con MIX por primera vez. [ cita requerida ]
Por diseño, es posible recuperar el buzón en un estado utilizable si alguno de estos archivos se pierde o se daña. Por ejemplo, es posible reconstruir el archivo de índice leyendo cada uno de los archivos de datos, sin otra consecuencia que la posible "eliminación" de un mensaje eliminado que aún no ha recuperado su espacio.
Otra parte importante del diseño MIX es que no se modifica ningún archivo a menos que se modifiquen los datos específicos de ese archivo; por lo tanto, un cambio de bandera altera el archivo de estado pero no los metadatos o los archivos de índice. Esto reduce el impacto de cualquier evento del sistema que dañe la escritura de un archivo en curso.
Cada archivo también tiene una "secuencia de modificación" que se incrementa cada vez que se cambia el archivo. Cuando una implementación MIX se actualiza desde un archivo, si la secuencia de modificación no se modifica, cierra el archivo de una vez sin leerlo más. Además, cada entrada del archivo de estado también tiene una secuencia de modificación, que permite la sincronización sin pérdidas de múltiples actualizaciones de indicadores / palabras clave de mensajes del consumidor /
Extensiones
MIX permite extensiones específicas de implementación. Todas las implementaciones de MIX deben ser intercambiables en el nivel básico, pero no son necesarias para implementar extensiones y deben tolerar la ausencia de extensiones.
Las implementaciones UW IMAP y Panda IMAP de MIX tienen un archivo de caché de clasificación que contiene datos utilizados por los operadores IMAP SORT y THREAD. Esto permite a estos operadores cargar la mayoría (si no todos) de los datos que necesitan sin tener que analizarlos a partir de los datos del mensaje.
La implementación de Messaging Architects de MIX tiene metadatos de buzón extendidos (actualmente usados para contener el nombre para mostrar del buzón), metadatos de mensajes (usados para múltiples propósitos, incluida una representación JSON de la estructura del mensaje) y una secuencia de modificación global (lo que permite una verificación rápida de actualización del buzón sin tener que comprobar la secuencia de modificación en varios archivos). La implementación de Messaging Architects también tiene un "buzón virtual" o capacidad de apéndice, en el que un mensaje en un buzón es en realidad un puntero a un mensaje en otro buzón.
Comparaciones con otros formatos de almacenamiento de correo
MIX puede considerarse un híbrido entre los tipos de formatos de almacenamiento de correo electrónico maildir (mensaje único por archivo) y mbox (archivo único por buzón). [3]
Versus maildir
MIX tiene una similitud con maildir , ya que los buzones de correo MIX son directorios en lugar de archivos individuales.
Sin embargo, a diferencia de maildir, MIX admite un archivo de índice para abrir rápidamente y escanear el buzón. Donde maildir almacena cada mensaje en su propio archivo en el disco, MIX puede agregar mensajes en archivos de mensajes, de acuerdo con el límite de tamaño configurado para un archivo de mensajes. Los mensajes que superen el límite de tamaño no se agregan. Como resultado, un directorio MIX tenderá a tener un número menor de archivos que un buzón maildir correspondiente, lo que puede ser ventajoso en ciertos sistemas operativos. [4] MIX tiene soporte para la recuperación y modificación eficiente de metadatos e información de estado.
MIX también agrega varios mensajes más pequeños en archivos de datos individuales de hasta 1 MB de tamaño (los mensajes más grandes obtienen un archivo de datos para sí mismos). Esto reduce la cantidad de nodos necesarios en el directorio, lo cual es importante para el rendimiento y la escalabilidad. El formato de buzón MIX requiere un soporte de bloqueo más riguroso del sistema operativo que maildir, y no se diseñó explícitamente para admitir la escritura en NFS.
Maildir, por otro lado, fue diseñado para funcionar en un entorno NFS. [5] Maildir disfruta de un mayor soporte para clientes, servidores y herramientas que MIX.
Versus mbox
MIX disfruta de una optimización considerable en comparación con el formato de correo común de mbox . MIX tiene un índice binario para acelerar el escaneo y la recuperación de mensajes, mientras que mbox requiere escaneos lineales completos para extraer mensajes. Al igual que maildir, ya diferencia de mbox, MIX admite buzones de correo que contienen tanto mensajes como buzones de correo subordinados. MIX admite que varios clientes lean y escriban simultáneamente en buzones de correo individuales, lo que no se puede lograr con mbox.
Por otro lado, el formato mbox es mucho más compatible que MIX. mbox es un formato de archivo de buzón omnipresente y, a menudo, se utiliza como un formato de intercambio de factor común más importante.
Ver también
enlaces externos
- Definición de formato MIX de la Universidad de Washington
- "UW IMAP, Courier, Cyrus y Dovecot en comparación directa" (en alemán). Linux Magazin . Consultado el 4 de abril de 2009 .
Referencias
- ^ "Anuncio: UW IMAP toolkit 2006 (imap-2006)" . Consultado el 4 de abril de 2009 .
- ^ a b "Re: Benchmarking imap, sistemas de archivos" . Consultado el 4 de abril de 2009 .
- ^ "Re: formato de mezcla" . Consultado el 4 de abril de 2009 .
- ^ "Las actualizaciones de banderas respondidas cierran otras sesiones alpinas" . Archivado desde el original el 20 de julio de 2011 . Consultado el 4 de abril de 2009 .
- ^ "Utilizando formato maildir" . Consultado el 22 de mayo de 2009 .