現在、パイプライン設計のアプリケーションがあります。最初の段階では、いくつかのデータとファイルをストリームに読み込みます。データのストリームに何らかの処理を行う中間段階がいくつかあります。そして、ストリームをどこかに書き出す最終段階があります。これはすべて連続して発生し、1 つのステージが完了してから次のステージに引き継がれます。
これはすべてうまく機能していますが、データ量がかなり大きくなり始めています (数百 GB になる可能性があります)。そのため、これを緩和するために何かをする必要があると考えています。私の最初の考えは、私がフィードバックを探しているものです(独立した開発者であるため、アイデアを跳ね返す場所がありません)。
並列パイプラインを作成することを考えています。パイプラインから開始するオブジェクトは、すべてのステージを作成し、それぞれのステージを独自のスレッドで開始します。最初の段階でストリームが特定のサイズになると、そのストリームを次の段階に渡して処理し、独自の新しいストリームを開始して引き続きいっぱいになります。ここでのアイデアは、最初のステージが新しいストリームを構築しているため、最終ステージでストリームを閉じて、メモリ使用量を低く抑えるということです。
質問: 1) この設計の方向性についてのハイレベルな考えはありますか? 2) ここで適用できると考えられるより単純なアプローチはありますか? 3) このようなことをして再利用できるものはありますか (購入しなければならない製品ではありません)。
ありがとう、
マイクD