2

現在、ファイル同期に関するいくつかの研究開発を行っていますが、最終的にrsyncに出くわしました(誰がそうしませんか?)。

コンテキスト:中央ファイルリポジトリとして使用されるサーバーがあり、管理者によってのみ更新されます。複数のユーザーが中央リポジトリからファイルシステムを同期します。これは一方向の同期です。つまり、ユーザーがリポジトリを更新することはありません。更新はrsyncで行われます。

少しシナリオを考えてみましょう:

  1. ユーザーがサーバーからファイルの更新を開始し、ファイルAをダウンロードします
  2. 管理者はサーバー上のファイルAとBを更新し、A'とB'を作成します

質問:3番目のステップは何ですか?

  • ユーザーはB'をダウンロードします。彼はAとB'を持っているため、ファイル間で一貫性のない状態になります
  • ユーザーがBをダウンロードします。彼はAとBを持っているため、一貫性はありますが古い状態になります
  • ユーザーがB'とA'をダウンロードすると、一貫性のある最新の状態になります
  • 他に何か ?
4

1 に答える 1

3

私の知る限り、それが最初のオプションです。ユーザーには A と B' があります。これを回避する唯一の方法は、rsync の前にファイルシステムのスナップショットを作成することですが、どういうわけか、これは非常にやり過ぎのように感じます。

他の解決策は

  • A と B を 1 つの zip/tar ファイルにまとめます (管理者/更新する側がこれを行う必要があります。そうしないと、最初のファイルと 2 番目のファイルの追加の間にファイルを更新できます)
  • git (または別の VCS) を中央リポジトリとして使用する
于 2012-04-20T10:46:35.390 に答える