Хранение файлов на жестком диске экземпляра, на котором развернуто приложение

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

Почему я не выбрал сетевую файловую систему, так как в моих сценариях мне нужно обрабатывать огромные файлы размером 1 ГБ, и я использую потоки JSON для обработки этих файлов. Также иногда мне нужно использовать механизм RandomAccessFile для разделения моего контента. Если это происходит по сетевой файловой системе, время обработки может быть высоким.

Я думал о масштабировании приложения также с локальной файловой системой, его можно масштабировать без каких-либо забот, поскольку целевая система ожидает обработанные данные из той же системы, в которую они помещали файлы.

Пожалуйста, выскажите свои мысли по этому поводу? Я хочу проверить, что я на правильном пути

1 ответ

Я приведу некоторые недостатки этого подхода:

  • Локальный жесткий диск обычно не имеет избыточности (например, RAID 5/0) и, скорее всего, выйдет из строя (это зависит, например, от вашего поставщика облачных / аппаратных средств)
  • Локальный жесткий диск часто основан на слабом оборудовании (по сравнению с SAN/NAS) - и может работать медленнее.
    • Основное различие между быстрым / медленным HDD обычно заключается в произвольном доступе. Для последовательного доступа (вы упомянули в основном работу с большими файлами?) - эффект может быть намного меньше.
  • Локальные данные с жесткого диска часто удаляются облачными провайдерами в случае сбоя экземпляра. Итак, опять же, это риск потери данных.

Напомним: если ваши требования к отказоустойчивости и производительности соблюдены - я не вижу проблем с этим подходом.

Другие вопросы по тегам