Сегодня существует система, которая будет записывать файлы захвата пакетов на локальный диск по мере их поступления. Удаление файлов на локальный диск в качестве первого шага считается желательным по причинам отказоустойчивости. Если клиент умирает, и ему необходимо восстановить соединение или быть воспитанным где-то еще, мы наслаждаемся возможностью воспроизведения с диска.
Следующим шагом в конвейере данных является попытка получить эти данные, которые были переданы на диск. удаленным клиентам. Предполагая, что на диске достаточно места, мне кажется очень удобным использовать локальный диск (и кеш страниц поверх него) в качестве постоянного безлимитного FIFO. Также желательно использовать файловую систему, чтобы поддерживать связь между производителем и потребителем на низком уровне.
В своем исследовании я не нашел много рекомендаций по этому типу архитектуры. В частности, я не видел устоявшихся шаблонов в популярных библиотеках / инфраструктурах с открытым исходным кодом для чтения файла во время его записи в поток.
Мои вопросы:
-
Есть ли в этой архитектуре недостаток, который я не замечаю или косвенно преуменьшаю?
Существуют ли рекомендации по использованию файла в процессе его записи, эффективной блокировке и / или асинхронно получать уведомления, когда в файле доступно больше данных?
Цель состоит в том, чтобы явно или неявно получить пользу для потребителя от тепла кэша страниц. Есть какие-нибудь рекомендации по оптимизации для этого?