1

1時間あたり約10000通のメッセージを受信して​​います。それらを個別のファイルとしてext3ファイルシステムの1時間ごとのディレクトリに保存します。ファイル名にはシーケンス番号が含まれています。rsyncを使用して、これらのファイルを別の場所で20秒ごとにミラーリングします(SAN経由ですが、それは問題ではありません)。

rsyncの実行でファイルn-3、n-2、n-1、n + 1が取得され、次のrsyncの実行がn、n + 2、n + 3、n+4などで続行される場合があります。

あるプロセスがディレクトリ内の特定の順序でファイルを作成するときに、を使用する別のプロセスreaddir()がファイルが別の順序で表示されるのを見る可能性はありますか?

よろしく、セバスチャン

4

1 に答える 1

1

私はあなたの質問を次のように言い換えることができると思います:

プロセスAがファイルd/xを作成してからファイルを作成する場合、プロセスBがディレクトリd/yでコンカレントを実行してエントリを表示することはできますが、エントリを表示することはできません か?readdir()dd/yd/x

答えは「はい」です。の注文保証はreaddir確かに非常に弱いです。

順序付けを強制する場合は、各ファイルを作成した後、ディレクトリ自体fsync()のファイル記述子を明示的に指定する必要があります。d

于 2010-05-30T11:24:48.430 に答える