Walrus、S3、または任意のクラウド ストレージ システムは、どのようにしてファイルを取り込み、それをプログラムでオブジェクトに変換するのでしょうか?
2 に答える
S3 がそのオブジェクトを内部サーバーのディスク上にどのように配置するのかという質問については、わかりません (実装の詳細は公開されていません)。
彼らが行っている 可能性が非常に高いのは、オブジェクトのキー (バケット + パス) を取得し、オブジェクトを一連のサーバーにマップする一貫したハッシュを参照することです。アップロードは、これらのサーバーの 1 つに (基本的にランダムに) 送信されます。このサーバーは、アップロードを格納し、将来の作業をキューに入れて、新しいオブジェクトをレプリケートを担当する他のサーバーに伝達します。
このレプリケーションの遅延は、結果整合性に対する基本的なニーズです。また、Amazon がストレージ レベルでエラー訂正エンコーディングを使用して、不良読み取りをさらに回避しているとどこかで聞いたことがあります。
Cloud Object Storage システムがオブジェクト (バイナリ ファイル) を保存する方法の一般的な理解を得るには、Swift Object Storage-Openstackのドキュメントを読むことができます。
Swift は Amazon S3 に似ているため、Walrus に似ています。
Swift は Proxy Server を介してクライアント (クラスター外) と通信し、クライアントは RESTful HTTP API を介してオブジェクトを保存、削除できます。サーバーは、ファイルとその物理的な場所の間のマッピングを維持するRing -Configuration ファイルを維持します。
ファイルのアップロード要求があると、ファイルのパスから MD5 ハッシュが計算されます。
詳細については、次の URL をご覧ください。