# HG changeset patch # User ichikitakahiro # Date 1558989420 -32400 # Node ID a3203802637bca533fbb51ae14879aba798d42a0 # Parent 3e0a1680ae599106bbd1a939ffafd5d4518090fd written finish diff -r 3e0a1680ae59 -r a3203802637b paper/images/paxos1.svg --- a/paper/images/paxos1.svg Mon May 27 18:35:14 2019 +0900 +++ b/paper/images/paxos1.svg Tue May 28 05:37:00 2019 +0900 @@ -1,71 +1,667 @@ -Paxos 1proposer1proposer1proposer2proposer2acceptor1acceptor1acceptor2acceptor2acceptor3acceptor3learner1learner1Prepare requestProposal(7, 1)Promise SuccessProposal(7, 1)Prepare requestProposal(8, 2)Promise SuccessProposal(8, 2)Accept requestProposal(8, 2)AcceptProposal(8, 2)AcceptProposal(8, 2)AcceptProposal(8, 2)AcceptProposal(8, 2)chosenProposal(8, 2) \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 3e0a1680ae59 -r a3203802637b slide/prosym.html --- a/slide/prosym.html Mon May 27 18:35:14 2019 +0900 +++ b/slide/prosym.html Tue May 28 05:37:00 2019 +0900 @@ -273,7 +273,7 @@
- MetaGear + MetaGear
@@ -301,7 +301,7 @@
  • 上記のものがそれぞれ連なっていることによって下の図のようなブロック繋がっている。そのため一つが更新されたらそのあとにつながるブロック全てを更新しなければならなくなる。
  • - MetaGear + MetaGear
    @@ -539,7 +539,7 @@
  • (言葉での説明記入?)
  • - MetaGear + MetaGear
    @@ -606,6 +606,93 @@
  • Takeの待ち合わせでCGが実行されない。2つのCGで同じ変数をTakeしようとすると、setupされた時点で変数がロックされる。この時、片方のCGはDGがもう全て揃っているのに、全ての変数が揃っていないもう片方のCGに同名の変数がロックされ、実行されない場合がある。
  • + + + + +
    + +

    実験

    + + + + +
    + +
    + +

    Torque

    + + + + +
    + +
    + +

    実際の実験内容

    + + +
    + MetaGear +
    + + + +
    + +
    + +

    実際にPaxosを動かした際の解説

    + +
    + MetaGear +
    + + + +
    + +
    + +

    まとめ

    + +
    diff -r 3e0a1680ae59 -r a3203802637b slide/prosym.md --- a/slide/prosym.md Mon May 27 18:35:14 2019 +0900 +++ b/slide/prosym.md Tue May 28 05:37:00 2019 +0900 @@ -103,7 +103,7 @@ ```
    - MetaGear + MetaGear
    ## ブロックチェーンのトランザクション @@ -115,7 +115,7 @@ - previous block hashは、前のブロックのパラメータを並べてhash化したものである。 - 上記のものがそれぞれ連なっていることによって下の図のようなブロック繋がっている。そのため一つが更新されたらそのあとにつながるブロック全てを更新しなければならなくなる。
    - MetaGear + MetaGear
    ## Blockの動作 @@ -204,7 +204,7 @@ ## paxosのアルゴリズム prepare-promise - (言葉での説明記入?)
    - MetaGear + MetaGear
    ## paxosのアルゴリズム accept-accepted @@ -232,3 +232,39 @@ - デバックが難しい。cgm.setupでCodeGearが実行されるが、keyの待ち合わせで止まり、どこのCGで止まっているのか分からないことが多かった。例えばputするkeyのスペルミスでコードの待ち合わせが起こり、CGが実行されず、エラーなども表示されずにwaitすることがある。その時に、どこで止まっているか特定するのが難しい。 - Takefrom,PeekFromの使い方が難しい。TakeFrom,PeekFromは引数でDGMnameを指定する。しかし、DGMの名前を静的に与えるよりも、動的に与えたい場合が多かった。 - Takeの待ち合わせでCGが実行されない。2つのCGで同じ変数をTakeしようとすると、setupされた時点で変数がロックされる。この時、片方のCGはDGがもう全て揃っているのに、全ての変数が揃っていないもう片方のCGに同名の変数がロックされ、実行されない場合がある。 + +## 実験 +- 実際にコンセンサスアルゴリズムPaxosをPC上に分散環境を実装して検証した。分散環境場で動かすため、JobScheduleの一種であるTorque Resource Manager(Torque)を使用した。 +- Torqueはjobという単位でプログラムを管理し、リソースを確保できたら実行する。jobはqsubというコマンドを使って複数登録することができる。 + +## Torque +- Torqueには主に三つのNodeの種類がある。 + - Master Node + - pds.serverを実行しているノード。他のノードの役割とも併用できる。 + - Submit/Interactive Nodes + - クライアントがjobを投入したり監視したりするノード。qsubやqstatのようなクライアントコマンドが実行できる。 + - Computer Nodes + - 投入されたjobを実際に実行するノード。pds.momが実行されており、それによってjobをstart、kill、管理する。 + +## 実際の実験内容 +- KVM上にMaster NOde, Submit/InteractiveNodeの役割を持つVM1台、ComputerNOdesとして15台を用意しjobへ投入。 +- 一意の数を決定することが確認できた。 +- Lernerが値を選択した後も、提案番号がより大きいものを出力していたが値が覆らなかった。 +- 本実験では分かりやすいよう数字で行なったが、タランザクション、ブロックに応用することでブロックチェーンのコンセンサス部分を完成させることができる。 + +
    + MetaGear +
    + + +## 実際にPaxosを動かした際の解説 +- 単純化としてproposerの数えを2、accepterの数を3、lernerの数を1とする。 +
    + MetaGear +
    + +## まとめ +- Paxosの動作は確認できた。トランザクションの速度がノード数にどのように影響されるか調査する必要がある。 +- ChristieのTopology Managerは実験するノードの設定を行う集中制度ノードであり、ブロックチェーンとの相性は良くないが、分散ファイルシステムなどの用途の場合、このような手法の方がノードの管理が可能な利点がある。 +- ChristieではBlock,Transaction,Hashの生成、署名、Proof of Workのためのクラスは作られている。しかし、Transactionに置いてまだファイルのデータを入れる機能がない。 +- 以上のものを組み合わせれば簡易的なブロックチェーンが作ることができ、Paxosによるブロックチェーンが分散クラスタ上でファイルやり取りをした際のスケーラビリティを計測することができるようになる。 diff -r 3e0a1680ae59 -r a3203802637b slide/prosym.pdf.html --- a/slide/prosym.pdf.html Mon May 27 18:35:14 2019 +0900 +++ b/slide/prosym.pdf.html Tue May 28 05:37:00 2019 +0900 @@ -257,7 +257,7 @@
    - MetaGear + MetaGear
    @@ -285,7 +285,7 @@
  • 上記のものがそれぞれ連なっていることによって下の図のようなブロック繋がっている。そのため一つが更新されたらそのあとにつながるブロック全てを更新しなければならなくなる。
  • - MetaGear + MetaGear
    @@ -523,7 +523,7 @@
  • (言葉での説明記入?)
  • - MetaGear + MetaGear
    @@ -590,6 +590,93 @@
  • Takeの待ち合わせでCGが実行されない。2つのCGで同じ変数をTakeしようとすると、setupされた時点で変数がロックされる。この時、片方のCGはDGがもう全て揃っているのに、全ての変数が揃っていないもう片方のCGに同名の変数がロックされ、実行されない場合がある。
  • + + + + +
    + +

    実験

    + + + + +
    + +
    + +

    Torque

    + + + + +
    + +
    + +

    実際の実験内容

    + + +
    + MetaGear +
    + + + +
    + +
    + +

    実際にPaxosを動かした際の解説

    + +
    + MetaGear +
    + + + +
    + +
    + +

    まとめ

    + +