Хранение файлов на жестком диске экземпляра, на котором развернуто приложение
Я разрабатываю приложение, которое принимает файлы и разделяет / объединяет их в соответствии с содержимым и передает их в какую-либо другую систему. После обработки эти файлы вообще не нужны. Итак, я планирую хранить файлы на жестком диске, где развернуто приложение, вместо какой-либо распределенной / сетевой файловой системы.
Почему я не выбрал сетевую файловую систему, так как в моих сценариях мне нужно обрабатывать огромные файлы размером 1 ГБ, и я использую потоки JSON для обработки этих файлов. Также иногда мне нужно использовать механизм RandomAccessFile для разделения моего контента. Если это происходит по сетевой файловой системе, время обработки может быть высоким.
Я думал о масштабировании приложения также с локальной файловой системой, его можно масштабировать без каких-либо забот, поскольку целевая система ожидает обработанные данные из той же системы, в которую они помещали файлы.
Пожалуйста, выскажите свои мысли по этому поводу? Я хочу проверить, что я на правильном пути
1 ответ
Я приведу некоторые недостатки этого подхода:
- Локальный жесткий диск обычно не имеет избыточности (например, RAID 5/0) и, скорее всего, выйдет из строя (это зависит, например, от вашего поставщика облачных / аппаратных средств)
- Локальный жесткий диск часто основан на слабом оборудовании (по сравнению с SAN/NAS) - и может работать медленнее.
- Основное различие между быстрым / медленным HDD обычно заключается в произвольном доступе. Для последовательного доступа (вы упомянули в основном работу с большими файлами?) - эффект может быть намного меньше.
- Локальные данные с жесткого диска часто удаляются облачными провайдерами в случае сбоя экземпляра. Итак, опять же, это риск потери данных.
Напомним: если ваши требования к отказоустойчивости и производительности соблюдены - я не вижу проблем с этим подходом.