1750319131
2025-06-17 14:52:00
ファイルのロックが不足しているために発生する職場の状況の例は次のとおりです。
東京の午後4時14分、アイコはスクリーンを見つめ、Quanta Structuresの最新の高層ビルの北翼をズームインしました。彼女は、最新の地震モデルを使用して、上の片持ち切った床を強化するために構造柱を微調整しました。単純な変更ですが、重要です。彼女は更新を保存し、先に進みました。
ロンドンの静かなオフィスで、6回のタイムゾーンは、マーカスが独自の編集を行っていました。彼はアイコのアップデートを見ませんでした。彼のファイルコピーが1時間前からだったので、彼は手に入れることができませんでした。彼はパネル間隔を調整し、ガラスの仕様を微調整し、保存をヒットしました。
そのように、アイコの補強はなくなりました。アラートや警告なしで、ファイルは同期しました。表面的には、デザインはまだうまく見えましたが、そうではありませんでした。
分散システムのハイステークスの世界へようこそ。キャップ定理を入力してください。これは、世界中に広がるシステムを構築する人に厳しい選択を強いる現実チェックです。
キャップ定理:トレードオフの三角形
セス・ギルバートとナンシー・リンチによってすぐに証明された2000年のエリック・ブリューワーの大きなアイデアであるキャップ定理は、分散システムは3つのうち2つのうち2つしか保証できないと述べています。 c意欲、 aベイレービ責任、および p芸術寛容。それを分解しましょう。
分散システムを世界中の図書館のチェーンとして想像してください。これらはすべて同じ本のカタログを維持することを担当しています。これが、三角形の各ピースが表すものです。
- C – 一貫性:すべてのライブラリには、まったく同じカタログが表示され、即座に更新されます。矛盾もエラーもありません。東京のリストはニューヨークのリストと一致しています。
- A – 可用性:たとえ情報がわずかに時代遅れであっても、すべてのライブラリは訪問するたびにアクセスできます。ドアは常に開いています。
- P – パーティショントレランス:ライブラリは、たとえインターネット接続がダウンしても動作し続けます。ニューヨークはロンドンに到達できないかもしれませんが、たとえカタログが一時的に分岐しても、両方とも機能的なままです。
停止、破壊線、単一のサイトの障害などのネットワークパーティションは珍しくありません。彼らは人生の事実です。それらを無視することはできないため、「P」パーティション許容度は本当にオプションではありません。つまり、一貫性と可用性を選択する必要があります。古いデータを提供する可能性のあるリスクでドアを開いたままにしていますか?それとも、みんなが同じページにいると確信するまでロックしますか?
ファイルロックと同じように、これがどのようにシンプルであるが困惑しているかを見てみましょう。
ファイルロック:デジタル審判
ファイルロックにより、チームが誤って共有ファイルへの変更を誤って上書きすることができなくなります。単一のオフィスでは、簡単です。ファイルを開くと、システムは「邪魔しない」サインを付けます。同僚が編集しようとすると、「ファイルを使用している」というエラーが発生します。これは効果的であり、誰もが安全です。
しかし、分散システムはそれほどきれいに機能しません。 Quanta Structuresには、世界中のサーバー上のファイルがあり、チームは異なるタイムゾーンにあります。これらのサーバー間のネットワークがカットアウトするとどうなりますか?あなたは人々に仕事を続けたり、紛争を危険にさらしたりしますか、それとも編集をブロックして仕事を停止しますか?これは、すべてのファイルロックを形作るキャップ定理で動作しています。
厳格なロック
厳密なロックは、空室状況が低下することを意味する場合でも、一貫性を優先します。一度に編集できるのは1人だけで、すべてのサーバーが変更される前に同意する必要があります。銀行の金庫を想像してみてください。他の人が待っている間、一度に1人だけが許可されています。 Aikoの青写真のような重要なファイルの場合、これは交渉不可能です。
しかし、見落としやすい厳格なグローバルロックには別のコストがあり、それは遅延です。
ネットワークが機能している場合でも、グローバルロックの調整は瞬時ではありません。光の速度と場所間の物理的な距離によって制限されます。そして、物理学は交渉しません。
それを分解しましょう。繊維を通る光の速度は非常に速く、毎秒約20万キロメートルです。東京からロンドンは、片道約9,600キロメートルです。これは、最高のケースでは、48ミリ秒の一元配置レイテンシがあることを意味します。これは、ルーティング、スイッチング、プロトコルのハンドシェイクなどの現実世界のオーバーヘッドを考慮する前の96ミリ秒の往復です。実際には、200〜250ミリ秒を簡単に見ています。
ここで、それがファイルロックの意味を考えてみてください。レイテンシに耐えるために構築されていない素朴に設計されたシングルスレッドアプリケーションは、せいぜい4〜5秒以上のロックを取得または解放することはできません。そして、それは理想的な条件下です。意味のある変更を同期する必要がある大きなファイルの場合、スループットはさらに低下します。
今、東京の誰かがファイルを保存したいと思うたびに想像してみてください。そのリクエストは、ロンドンとの間を往復する必要があります。さらに悪いことに、複数のグローバルサイトと調整する必要があります。これはあまり聞こえないかもしれませんが、多くの従来のファイルベースのアプリが設計されている方法のために、その遅延は高速になります。クリックして、待ってください。もう一度クリックして、もっと待ちます。 Webブラウザで気分が良くなったのは、ローカルスピードを期待するデスクトップアプリで壊れていると感じることがあります。突然、あなたの洗練されたエンジニアリングワークステーションは、1998年に立ち往生しているように振る舞い始めます。
なぜ?これらのアプリのほとんどは、ファイルサーバーが同じ部屋にある、または少なくとも同じローカルネットワークにあると想定しているためです。それらは、サブミリ秒のレイテンシ用に構築されています。その方程式にグローバルなラウンド旅行を導入すると、経験が崩壊します。
それは、厳格なグローバルロックのしばしば隠された税です。すべての変更、すべてのセーブ、すべてのロック、調整、確認、遅延。
よりスマートな厳格ロック:日和見ロック(Oplocks)
グローバルロックをもう少し使用できるようにするために、一部のシステムは、日和見ロックやOplockなどのよりスマートな戦略を使用しています。
Oplocksは一種の楽観的な合意です。サーバーは、クライアントが一時的に「所有」しているかのように、ファイルへの排他的アクセスがあるかのように動作させます。これにより、クライアントは、小さな操作ごとに許可を必要とせずに、ローカルで変更をキャッシュし、全速力で作業できます。他の誰もファイルを開こうとしない限り、物事は速くて静かなままです。別のユーザーの場合 します アクセスが必要で、サーバーは「あなたはもう一人ではありません。」クライアントは、クライアントの同期、ハンドバックコントロール、および調整の履歴書を履きます。
Oplocksの美しさは、ファイルの競合がないときに不必要な往復を避けることです。ほとんどの場合、ファイルが1人またはチームによって編集されている場合、顕著な遅延はありません。システムは、実際に重要な場合にのみ待ちコストを支払います。競合中。
しかし、Oplockはまだロックです。クライアントを保持しているクライアントがオフラインになったり、クラッシュしたり、接続を失ったりすると、一貫性の損失を危険にさらすことなく、サーバーがそのロックを簡単に取り消すことができません。他のユーザーは、Oplockがリリースされ、変更されたデータが同期されるまでファイルを編集できません。したがって、Oplocksは「単一の編集者」条件下でレイテンシを隠していますが、分散調整の課題を排除することはありませんが、それらを延期するだけです。
ほとんどの場合、パフォーマンスを向上させる巧妙な妥協ですが、キャップ定理によって課される同じ制約の範囲内にあります。痛みを遅らせることはできますが、常に避けることはできません。
最終的な一貫性:共同キャンバス
スペクトルのもう一方の端には、最終的な一貫性があり、可用性とパーティション許容度を優先します。クラウドベースのノートテイキングアプリでキャプチャされたチームブレーンストーミングセッションのように、共有されたオンラインドキュメントを考えてください。複数のユーザーが競合を検出して同時に編集でき、システムは自動的にまたは手動介入を通じて後でそれらを解決します。このアプローチは、各サーバーが独立して動作するため、ネットワークパーティション中であってもワークフローの連続性を維持し、接続性が戻ったときに変化を同期します。
最終的な一貫性は、Google DocsやDropboxなどの共有ドキュメントプラットフォームのようなツールのバックボーンです。ここでは、スピード、生産性、および継続的なアクセストランプパーフェクトリアルタイム同期です。しかし、リスクがないわけではありません。 2人のデザイナーがプレゼンテーションの同じセクションを調整し、その変更が衝突した場合はどうなりますか?システムは競合するバージョンを作成し、時間のかかる解決と人間の介入が必要になる場合があります。メモやドラフトの提案を満たすような非クリティカルなファイルの場合、これは管理可能です。しかし、複雑なエンジニアリングモデルに2つの矛盾する変更をマージすると、同じ風景の2つの異なる絵画を縫い合わせようとするように感じることができます。
ネットワークが失敗するとどうなりますか?
Quanta Structuresがニューヨーク、ロンドン、東京、シドニーにオフィスがあり、それぞれ独自のファイルサーバーがあるとします。ほとんどの共有ファイルはローカルで編集されています。ロンドンのスタッフはロンドンサーバーなどを使用しています。誰かが既に使用されているファイルを開こうとすると、Windows SMB(最も一般的であるため、プロトコルの例)により、明確な「ファイル」メッセージが表示されます。
しかし、広い地域のネットワークがダウンした場合はどうなりますか?東京は他のオフィスを見ることができませんが、ローカルサーバーはまだ実行されています。東京のチームは働き続けるべきですか?もしそうなら、接続性が回復すると、彼らの変更はニューヨークまたはロンドンで行われた編集と衝突する可能性があります。サーバーがすぐそこにあるにもかかわらず、編集をブロックすると、生産性タンクがあります。
これが再びキャップ定理です。一貫性を優先し、作業停止を危険にさらすか、可用性とリスクの競合に優先順位を付けます。どちらの答えも完璧ではありません。
粒状アプローチ:複雑な世界の精度
理想的な世界では、自動ソリューションを好みます。独力で適応し、管理者の関与を最小限に抑え、単純に機能します。しかし、キャップ定理は邪魔になります。一貫性、可用性、パーティションの許容度が対立する場合、すべてのシナリオを処理する普遍的な設定はありません。トレードオフが必要であり、誰かがラインを描く場所を決定する必要があります。
答えは粒度にあり、ファイルを各ファイルまたはフォルダーの特定のニーズに合わせてロックすることができます。すべてのファイルが等しく作成されるわけではありません。地域全体で編集された財務報告書には、費用のかかるエラーを回避するために厳格な一貫性が必要です。一方、チームの共有ブレインストーム文書は、一時的な矛盾に耐えることができます。競合は後で解決できます。厳格なロックであろうと最終的な一貫性であろうと、万能のアプローチはそれをカットしません。
詳細なロック戦略により、管理者は、グローバルチームが共同編集するエンジニアリングブループリント、法的契約、重要な財務モデルなど、本当に重要な場所に厳格なロックを適用できます。これらの場合、空室状況を犠牲にしても、一貫性を選択します。他のほとんどの場合、最終的な一貫性は、ネットワークの破壊中であっても、コラボレーションをスムーズに保ちます。待ち時間やパーティションが重要な問題ではない単一のオフィス内では、最小限のマイナス面で厳格なロックを実施することができます。しかし、グローバルサイト全体で、ミックスはより意図的になければなりません。はい、計画にかかりますが、私たちは物理学の法則に反しています。そのためのチェックボックスはありません。
妥協の芸術を受け入れる
キャップ定理は、私たちの世界の世界ではやや不公平だと感じています。しかし、私たちの間では、他のビジネス分野が私たちに何が何であり、そうではないかを明確に語った数学的定理を持っていたらいいのではないでしょうか 可能?
分散システムでは、現実には、すべてを手に入れることができません。一貫性、可用性、およびパーティション許容度はトレードオフの三角形を形成し、ファイルロックはこれらの選択が現実になる場所です。
Strict Lockingは銀行の金庫のセキュリティを提供しますが、チームが作業にアクセスするのをブロックすることができます。最終的な一貫性は、共同のスペースを開いたままにしますが、厄介な紛争に危険にさらされます。粒状アプローチはそれらの極端な橋を架け、人々が実際に働く方法をサポートするために必要な精度と柔軟性を提供します。
それで、次に大陸全体で共有ファイルを編集したとき、自問してください:これは完璧を要求する構造的な青写真ですか、それとも時折の対立に耐えることができるドキュメントですか?答えはあなたのロック戦略を形作ります。
アロンブランドはCTOです ctera。
続きを読む
1つのクラスターテクノロジーでブロック、ファイル、オブジェクトストレージを組み合わせる – スタートアップSimplyBlockからのソフトウェア定義のデータストレージは、1つのプラットフォームに3つのメインストレージタイプをまとめ、ビジネスの時間を節約する
#グローバルファイルロックとキャップ定理 #戦略を選択する方法