SlideShare a Scribd company logo
分散ファイルストレージAPIの
 アーキテクチャについて
  いろいろ考えてみた
      Jul 2012
     @xorphitus
しばらく前に、諸事情によりこういったものに
ついて考える機会がありましたので、
記念にうpなどしてみよかと思った次第で。
アーキテクチャ図
read only                 L/B


              Gateway           Gateway                 metadata
                                                         holder



      files             files                   files



 bucket            bucket                bucket
(cluster)         (cluster)             (cluster)


                        Gateway for Write


                                write
read とwrite の口を分けていますが、
両者に明確な構造の違いは今のところないです

これを考えた当時、write用の口に特定の経路でしか
アクセスできなくすることで、
read onlyなクライアントが作れたらいいなと
雑なアクセスコントロールを考えていたためです
read onlyの部分について
read only                 L/B       サイト上のファイル読み込
                                    みは、L/Bから多重化された
                                    Gateway (ファイル読出し窓
                                    口) にアクセスが割振られる
              Gateway           Gateway                 metadata
                                                         holder



      files             files                   files



 bucket            bucket                bucket
(cluster)         (cluster)             (cluster)


                        Gateway for Write


                                write
read onlyの部分について
read only                 L/B


              Gateway           Gateway                     metadata
                                                             holder
                                 Gatawayは、
                                 metadataholderから、
                                 リクエストされたファイルの
      files             files
                                 メタデータと、どのノードに  files
                                 格納されているか (distination) を
                                 取得する



 bucket            bucket                bucket
(cluster)         (cluster)             (cluster)


                        Gateway for Write


                                write
read onlyの部分について
read only                 L/B


              Gateway           Gateway                 metadata
                                                         holder
                                Gatawayは、ファイルの
                                distinationにあるノードから
                                ファイルを取得する

      files             files                   files



 bucket            bucket                bucket
(cluster)         (cluster)             (cluster)


                        Gateway for Write


                                write
read onlyの部分について
read only                 L/B


              Gateway            Gateway                 metadata
                                                          holder



      files             files                    files
                              bucketって何?
                              については後述


 bucket            bucket                 bucket
(cluster)         (cluster)              (cluster)


                        Gateway for Write


                                 write
bucketとは何か?
bucketとは

ファイルのレプリケートの単位である。

1つのbucketは複数のノードから構成される。
ファイルは設置される時に、どのbucketに配置されるかが
(consistent hashing等の分散アルゴリズムで) 決定され、
配置される時にbucketを構成している各ノードにレプリケートされる。
→ノードが1つ落ちても動作を続けられるようになる

各bucketを構成するノード数はそれぞれ任意とする
(bucket Aは2台構成、Bは3台構成、などとしてよい)

bucketからファイルを取得する際、どのノードからファイル取得を
するかはラウンドロビン等で分散することとする。

これによって、単一バケット内からのファイル取得 (ディスクシーク) を
パラレルで行えるようにする。

bucketの縮退については後述。
read/writeの部分について

とりあえずwriteの話だけ。
ファイルの追加
ファイルの追加
read only                 L/B


              Gateway            Gateway                    metadata
                                                             holder



      files             files                    files



 bucket            bucket                 bucket
(cluster)         (cluster)              (cluster)


                        Gateway for Write
                                         ファイルの追加、更新、削除は、
                                         更新専用のGatewayから行う

                                 write
ファイルの追加
read only                 L/B


              Gateway            Gateway                           metadata
                                                                    holder



      files             files                    files



 bucket            bucket                 bucket     metadata holderを参照し、どの
(cluster)         (cluster)              (cluster)   bucketにファイルを設置するか決定



                        Gateway for Write


                                 write
ファイルの追加
read only                 L/B


              Gateway            Gateway                  metadata
                                                           holder



      files             files                     files



 bucket            bucket                  bucket
(cluster)         (cluster)               (cluster)
                                書き込み対象bucketの全ノードに
                                ファイルを設置する
                        Gateway for Write


                                  write
ファイルの追加
read only                L/B


              Gateway            Gateway                 metadata
                                                          holder



      files             files                    files



 bucket            bucket                 bucket
(cluster)         (cluster)              (cluster)
                             ノードが多いほど遅くなるが堅牢性は上がる
                             別のアプローチとして、ノード間でrsyncさせる
                             ことを考えてもいいかも
                        Gateway for Write


                                 write
ファイルの追加
read only                 L/B


              Gateway            Gateway                           metadata
                                                                    holder



      files             files                    files



 bucket            bucket                 bucket         ファイルのメタデータを登録する
(cluster)         (cluster)              (cluster)       タグ付け等ができてもよい



                        Gateway for Write


                                 write
ファイルの更新
ファイルの追加
read only                 L/B


              Gateway            Gateway                           metadata
                                                                    holder



      files             files                    files



 bucket            bucket                 bucket         ファイルのメタデータを更新
(cluster)         (cluster)              (cluster)


                        Gateway for Write


                                 write
ファイルのコピー
ファイルのコピー
read only                 L/B


              Gateway           Gateway                           metadata
                                                                   holder



      files             files                   files



 bucket            bucket                bucket         ファイルのメタデータを複製し
(cluster)         (cluster)             (cluster)       異なるパスで同一のファイルの
                                                        実体を参照するようにする


                        Gateway for Write


                                write
ファイルの削除
ファイルのコピー
read only                 L/B


              Gateway           Gateway                          metadata
                                                                  holder



      files             files                   files



 bucket            bucket                bucket         対象ファイルのメタデータを
(cluster)         (cluster)             (cluster)       削除する



                        Gateway for Write


                                write
ファイルのコピー
read only                 L/B


              Gateway           Gateway                 metadata
                                                         holder



      files             files                   files



 bucket            bucket                bucket
(cluster)         (cluster)             (cluster)
                                同一のファイルの実体を参照しているメ
                                タデータがなくなったら、bucketの各
                                ノードからファイルの実体を削除する
                        Gateway for Write


                                write
bucketの縮退稼動
bucketの縮退稼動

                        metadata
Gateway                  holder



             Gatewayは、bucket中の特定のノードから応答がない場合、別の
             ノードからファイルを取得する
             この時、応答のなかったノードについては、metadata holderに
    X        対してdead markを付与する

             Gatewayは以後、dead markの付与されたノードにはアクセスし
             ないようにする
  bucket
             aliveなノードがnk
 (cluster)
bucketの縮退稼動

                      metadata
Gateway                holder



             縮退状態から復旧させる場合 (およびノード追加)

             1. 復旧対象bucketにロックをかけ、read以外を拒否する
    X        2. 復旧させたノードに、別ノードのデータをフルコピーする
             3. bucketのロックを解除する
 LOCK
              ちなみにここがダサいって言われた
  bucket
 (cluster)
bucketの追加/削除
bucketの追加/削除

bucketの削除は想定していない

bucketの追加は、
metadata holderに新たなbucketの情報を登録するのみ
 ※metadata holderという名称だと語弊があるので
  やめた方がいい気がしてきた…

追加の際のリハッシュは発生しない
各bucketへの分散方法を、bucket毎のファイル容量で重
み付けしたhashingアルゴリズムとすることでリハッ
シュを回避する

More Related Content

Viewers also liked

Asertividad
AsertividadAsertividad
Asertividad
Yannina Linarez
 
Conta
ContaConta
Resume
ResumeResume
Atividade de portugues
Atividade de portuguesAtividade de portugues
Atividade de portugues
Estude Mais
 
Colapso del Socialismo
Colapso del SocialismoColapso del Socialismo
Colapso del Socialismo
Yorgelys Guillén O
 
Windows X linux
Windows X linuxWindows X linux
Windows X linux
Rian Nascimento
 
Orientaciones para la evaluación
Orientaciones para la evaluaciónOrientaciones para la evaluación
Orientaciones para la evaluación
suleiy
 
Sistema electoral en el peru
Sistema electoral en el peruSistema electoral en el peru
Sistema electoral en el peru
marialejandra castillo mendoza
 
Texto edital navcv galuppo (macabeia)
Texto edital navcv   galuppo (macabeia)Texto edital navcv   galuppo (macabeia)
Texto edital navcv galuppo (macabeia)Alessandra Rezende
 
LAS 5 FUERZAS DE PORTER
LAS 5 FUERZAS DE PORTERLAS 5 FUERZAS DE PORTER
LAS 5 FUERZAS DE PORTER
jimmy_suarez
 
Recuperación final
Recuperación finalRecuperación final
Recuperación final
FabianAL
 
Magento
MagentoMagento
Condicionales c1 Esp
Condicionales c1 EspCondicionales c1 Esp
Condicionales c1 Esp
Ana Cláudia Esteves
 
Power point EPCIT
Power point EPCITPower point EPCIT
Power point EPCIT
amabilepacios
 
向陽農場
向陽農場向陽農場
向陽農場
family
 
Bases
BasesBases
Un bon aprenentatge
Un bon aprenentatgeUn bon aprenentatge
Un bon aprenentatge
concep1
 
Socialización dia 9
Socialización dia 9Socialización dia 9
Socialización dia 9
luismipino
 

Viewers also liked (20)

Asertividad
AsertividadAsertividad
Asertividad
 
Conta
ContaConta
Conta
 
Resume
ResumeResume
Resume
 
Atividade de portugues
Atividade de portuguesAtividade de portugues
Atividade de portugues
 
Colapso del Socialismo
Colapso del SocialismoColapso del Socialismo
Colapso del Socialismo
 
Windows X linux
Windows X linuxWindows X linux
Windows X linux
 
Orientaciones para la evaluación
Orientaciones para la evaluaciónOrientaciones para la evaluación
Orientaciones para la evaluación
 
Sistema electoral en el peru
Sistema electoral en el peruSistema electoral en el peru
Sistema electoral en el peru
 
Katalog osaa 2012 b
Katalog osaa 2012   bKatalog osaa 2012   b
Katalog osaa 2012 b
 
Texto edital navcv galuppo (macabeia)
Texto edital navcv   galuppo (macabeia)Texto edital navcv   galuppo (macabeia)
Texto edital navcv galuppo (macabeia)
 
LAS 5 FUERZAS DE PORTER
LAS 5 FUERZAS DE PORTERLAS 5 FUERZAS DE PORTER
LAS 5 FUERZAS DE PORTER
 
Recuperación final
Recuperación finalRecuperación final
Recuperación final
 
Katalog osaa 2012 m
Katalog osaa 2012   mKatalog osaa 2012   m
Katalog osaa 2012 m
 
Magento
MagentoMagento
Magento
 
Condicionales c1 Esp
Condicionales c1 EspCondicionales c1 Esp
Condicionales c1 Esp
 
Power point EPCIT
Power point EPCITPower point EPCIT
Power point EPCIT
 
向陽農場
向陽農場向陽農場
向陽農場
 
Bases
BasesBases
Bases
 
Un bon aprenentatge
Un bon aprenentatgeUn bon aprenentatge
Un bon aprenentatge
 
Socialización dia 9
Socialización dia 9Socialización dia 9
Socialización dia 9
 

Recently uploaded

ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 

Recently uploaded (9)

ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 

分散ファイルストレージAPIのアーキテクチャについていろいろ考えてみた