現在、パケット キャプチャ ファイルを受信時にローカル ディスクに書き込むシステムが存在します。最初のステップとして、これらのファイルをローカル ディスクにドロップすることは、フォールト トレランスの理由から望ましいと考えられています。クライアントが死亡し、再接続する必要がある場合、または別の場所で起動する必要がある場合は、ディスクから再生する機能を利用できます。
データ パイプラインの次のステップは、ディスクに取り込まれたこのデータをリモート クライアントに取得しようとすることです。十分なディスク容量があると仮定すると、ローカル ディスク (およびその上のページ キャッシュ) を永続的な無限 FIFO として使用すると非常に便利だと思います。プロデューサーとコンシューマーの間の結合を低く保つために、ファイルシステムを使用することも望ましいです。
私の調査では、このタイプのアーキテクチャに関するガイダンスはあまり見つかりませんでした。より具体的には、一般的なオープンソース ライブラリ/フレームワークで、ストリーム アウトするように書き込まれているファイルを読み取るための確立されたパターンを見たことがありません。
私の質問:
このアーキテクチャには、私が気付いていない、または間接的に軽視している欠陥がありますか?
ファイルが書き込まれているときにファイルを消費し、ファイルでより多くのデータが利用可能になったときに効率的にブロックおよび/または非同期に通知するための推奨事項はありますか?
目標は、消費者がページ キャッシュ ウォームから明示的または暗黙的に利益を得ることです。これを最適化する方法に関する推奨事項はありますか?