Масштабируемая структура каталогов для пользовательских представлений - PullRequest
1 голос
/ 22 февраля 2011

Наша команда находится в процессе переключения нашего механизма хранения медиатек с хранилища больших двоичных объектов базы данных на файловую систему (мы используем стек LAMP, PHP версии 5.3).Фактически весь сохраняемый контент - это данные изображений, которые будут загружаться в приложение, и большая часть обработки, которая будет выполняться на нем, - это некоторое изменение размера / повторная выборка с помощью GD.Хранилище базы данных - это артефакт, оставшийся от предыдущей сборки, от которого мы пытаемся отказаться, чтобы уменьшить нагрузку на сервер базы данных.

Ранее я создал несколько библиотек изображений на основе файловой системы, как это раньше, ноЯ хотел бы закрепить некоторые передовые практики, так как они станут большими, и как только они будут заполнены пользовательскими данными, их будет очень сложно изменить.

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

Какие подходы использовало сообщество в этой ситуации, и какие были наиболее масштабируемыми?Существует ли какое-либо программное обеспечение для Apache, которое могло бы справиться с такой организацией более эффективно, чем простое ручное кодирование в модели?Я попытался выполнить несколько поисков в SO и Google для поиска похожих тем в хранилище мультимедиа в файловой системе, но не нашел ничего, кроме вещей «не используй BLOB», которые мы уже более или менее установили.Есть ли какие-нибудь трудные и быстрые проблемы?

Спасибо за ваше руководство!

1 Ответ

1 голос
/ 22 февраля 2011

Проверьте MogileFS , это распределенная параллельная отказоустойчивая файловая система.

Он обеспечивает автоматическую репликацию, пространства имен и может быть интегрирован с nginx (т. Е. Для обслуживания контента не требуется промежуточный сценарий). Он оказался более надежным и масштабируемым, чем файловая система для хранения миллионов фотографий для нашего проекта.

...