メモ · · クラウド

クラウドストレージの「競合コピー」はなぜ起きるのか?同期衝突とデータ消失を防ぐ仕組み

DropboxやGoogleドライブ、OneDriveなどの同期フォルダで作業していると、「ファイル名(競合コピー)」や「ファイル名 (1)」といった複製ファイルが意図せず生成されることがあります。

一見すると同期エラーやバグのように思えますが、これは分散システムが大切なデータを勝手に上書き消去しないための「フェイルセーフ(安全装置)」として動作した結果です。

ファイルが競合する根本的な原因と、クラウド側が採用している同期アルゴリズム、そして共同編集ツールとの仕組みの違いについて整理しました。

1. 「競合(コンフリクト)」が発生する根本原因

クラウドストレージにおける競合は、複数の端末から「同じ共通の過去バージョン」を起点にして、互いに異なる変更が同時に加えられたときに発生します。

オフライン編集と時差同期

最も典型的なパターンは、ネットワークの接続タイミングによる時差です。

  1. 起点:PCとスマートフォンの両方に、バージョン1のファイルが存在する。
  2. 分岐:電波のない移動中にPC(オフライン)でファイルを編集して保存する。同時に、スマホ側でも同じファイルを編集してクラウドに保存する。
  3. 衝突:PCがオンラインに復帰した瞬間、PC側の変更(バージョン2-A)とスマホ側の変更(バージョン2-B)が同時にサーバーへ送られる。

このとき、サーバー側から見ると履歴が二股に枝分かれしてしまい、どちらの変更を正として統合すべきか自動判定できない「コンフリクト状態」に陥ります。

2. なぜ勝手に上書きしないのか?「最終更新優先」の危険性

分散システムにおいて最も単純な競合解決ルールは、「タイムスタンプ(更新日時)が1秒でも新しい方を採用し、古い方を上書きする」というLWW(Last Write Wins:最終書き込み者優先)です。

しかし、ファイル同期でLWWを単純に適用すると、極めて危険なデータ事故を引き起こします。

  • 作業の完全消失:例えば、数時間かけて長文の資料を作成していたとしても、別の端末で誤ってスペースを1文字打ち込んで数秒遅く保存されたファイルが存在した場合、数時間の作業成果が丸ごと上書き消去されてしまいます。
  • 端末時計のズレ:PCやスマートフォンの内部時計がわずか数秒狂っているだけで、本来最新であるはずの編集内容が古いと判定されて失われるリスクがあります。

そのため、多くのファイル同期型クラウドストレージでは、「どちらかを勝手に破棄するリスクを絶対に冒さない」という設計思想を採用しています。サーバー側で矛盾を検知した際は、先行して届いたデータをそのまま残しつつ、後から届いたデータを「競合コピー」という別名ファイルとして枝分かれ保存し、最終的な取捨選択を人間に委ねる安全設計をとっています。

3. なぜGoogleドキュメントやFigmaでは競合コピーが起きないのか

同じクラウドでありながら、GoogleドキュメントやNotion、Figmaなどでは「競合コピー」が生成されず、複数人が同時に同じ箇所を編集できます。これは扱っているデータの単位と同期技術が根本的に異なるためです。

ファイル同期型(Dropbox / Googleドライブ等)

  • 同期単位:ファイル全体(1つのバイナリの塊)
  • 同期の仕組み:編集が終わって「ローカル保存」されたタイミングでファイルごとクラウドに転送する。ファイル内部の意味(どの行を書き換えたか)までは踏み込まないため、衝突時は別名保存するしかない。

リアルタイム共同編集型(Googleドキュメント / Figma等)

  • 同期単位:1文字ごとの操作ログ(オペレーション)
  • 同期の仕組み:OT(Operational Transformation:操作変換) や CRDT(Conflict-free Replicated Data Types:競合なし複製データ型) と呼ばれる数理モデルを採用。「3文字目に『あ』を挿入」「5行目を削除」といった操作ログそのものを常時サーバーとやり取りし、順序の矛盾をアルゴリズムが数学的に自動補正してマージするため、別名ファイルを作る必要がありません。

4. 競合コピーを未然に防ぐための実践的な対策

ファイル同期型ストレージで不要な競合コピーを増やさないためには、運用の工夫が有効です。

  • 同期完了アイコンを確認してから編集する:PCを開いた直後、タスクトレイの同期アイコンが「同期中」から「同期完了(緑のチェックマーク等)」に変わるのを待ってから作業を開始する。
  • 複数人でのOfficeファイル編集は共有ルールを決める:ExcelやWord、Markdownファイルをローカル同期フォルダ上で複数人で触る場合は、チャット等で一声かけるか、Web版の共同編集機能を利用する。
  • 発生した競合ファイルは放置しない:競合コピーが作られたら、テキスト比較ツール(Diffツール)などを使って差分を確認し、必要な内容を統合した上で不要な複製ファイルを早めに削除する。

5. まとめ

クラウドストレージで作成される「競合コピー」は、エラーではなくデータの消失事故を防ぐための確実なフェイルセーフです。

  • オフライン作業や複数端末での同時保存により、変更履歴が枝分かれした際に発生する
  • 最新日時だけで無理に上書きすると片方の作業が丸ごと消えるため、安全策として別名保存される
  • ファイル全体を同期するストレージと、操作差分をリアルタイム同期するWebツール(OT/CRDT)で仕組みが異なる
  • 編集前に同期完了を確認し、発生した競合ファイルは差分を統合して速やかに整理する

「システムが勝手に消去せず、確実に手元に残してくれた」と理解し、差分を確認して安全に統合・整理することが推奨されます。

タグ クラウド Dropbox Googleドライブ 仕組み IT

← メモ一覧へ