Compute Engine ワーカー ノードがgcsfuseマウントされたローカル ディレクトリにファイルを書き込み、それらを閉じた後、他のワーカー ノードにすべてのファイルの準備ができたことを通知する前に、データを同期的に GCS にフラッシュする必要があります。これは、ワーカー間の同期を確保するためです。
Q. gcsfuse に GCS へのライトスルーを要求し、それが完了するのを待つにはどうすればよいですか?
アイデア:
- Linux
sync
コマンドを実行しますか? - ディレクトリをアンマウントしてから、その
fusermount
コマンドが戻るのを待ちますか? (ライトスルー時間の他に、アンマウントしてから次のワーカー タスクのために再マウントするのに 1 ~ 2 秒以上かかるでしょうか?) - このタスク内のすべてのプログラムが、
fsync()
すべての出力ファイルを呼び出すようにしますか? それは難しいでしょう。 - 追加のファイルを書き込んで、
flush()
それでfsync()
?