Предложенная модель хранения предназначена для хранения вложений в отдельных файлах (или больших двоичных объектов) и для хранения самого электронного письма в виде составного сообщения MIME со ссылками на вложенный файл и способ его кодирования. Это позволяет пользователю показывать оригинал, но не требует от меня фактического сохранения менее эффективного base64 с сообщением. Большую часть времени я смогу хранить только использованную длину строки base64.
Таким образом, мы можем выполнить дедупликацию на уровне вложений.
Но как дедупликация может пойти дальше? Вот мои мысли:
- Все вложения и электронные письма могут быть сжаты (дедуплицированы), конечно же, индивидуально.
- Я мог бы сжать наборы из 12 вложений вместе в один файл. Сжатие нескольких файлов одного типа (например, PDF-файлов), даже файлов одного отправителя, может быть более эффективным.
- Сообщения MIME также могут быть сжаты в наборах.
- Меня не беспокоит эффективность поиска, потому что будет использоваться полнотекстовая индексация.
- При поиске электронных писем, конечно, использовался бы тип полнотекстовой индексации, который не был бы сжат.
- Распакованный кэш будет создан при первом поступлении электронного письма и будет удален только после того, как электронное письмо не будет просмотрено некоторое время.
Есть ли у вас какие-либо рекомендации в этой области? Что является нормальным для системы хранения электронной почты?