Mercurial > hg > Papers > 2018 > suruga-thesis
view paper/slides/sample.html @ 37:254dce6f6501
fix slides
author | suruga |
---|---|
date | Wed, 21 Feb 2018 17:42:31 +0900 |
parents | dc7cd591b4bc |
children | 48fbb9e3c335 |
line wrap: on
line source
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>分散版 Jungle データベースの性能測定方法</title> <meta name="generator" content="Slide Show (S9) v2.5.0 on Ruby 2.4.0 (2016-12-24) [x86_64-darwin14]"> <meta name="author" content="仲松栞" > <!-- style sheet links --> <link rel="stylesheet" href="s6/themes/projection.css" media="screen,projection"> <link rel="stylesheet" href="s6/themes/screen.css" media="screen"> <link rel="stylesheet" href="s6/themes/print.css" media="print"> <link rel="stylesheet" href="s6/themes/blank.css" media="screen,projection"> <!-- JS --> <script src="s6/js/jquery-1.11.3.min.js"></script> <script src="s6/js/jquery.slideshow.js"></script> <script src="s6/js/jquery.slideshow.counter.js"></script> <script src="s6/js/jquery.slideshow.controls.js"></script> <script src="s6/js/jquery.slideshow.footer.js"></script> <script src="s6/js/jquery.slideshow.autoplay.js"></script> <!-- prettify --> <link rel="stylesheet" href="scripts/prettify.css"> <script src="scripts/prettify.js"></script> <script> $(document).ready( function() { Slideshow.init(); $('code').each(function(_, el) { if (!el.classList.contains('noprettyprint')) { el.classList.add('prettyprint'); } }); prettyPrint(); } ); </script> <!-- Better Browser Banner for Microsoft Internet Explorer (IE) --> <!--[if IE]> <script src="s6/js/jquery.microsoft.js"></script> <![endif]--> </head> <body> <div class="layout"> <div id="header"></div> <div id="footer"> <div align="right"> <img src="s6/images/logo.svg" width="200px"> </div> </div> </div> <div class="presentation"> <div class='slide cover'> <table width="90%" height="90%" border="0" align="center"> <tr> <td> <div align="center"> <h1><font color="#808db5">分散版 Jungle データベースの性能測定方法</font></h1> </div> </td> </tr> <tr> <td> <div align="left"> 仲松栞 琉球大学 工学部 情報工学科 河野研 <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:100%;height:0.2em;"> </div> </td> </tr> </table> </div> <div class='slide '> <!-- === begin markdown block === generated by markdown/1.2.0 on Ruby 2.4.0 (2016-12-24) [x86_64-darwin14] on 2018-02-21 16:38:54 +0900 with Markdown engine kramdown (1.13.2) using options {} --> <!-- _S9SLIDE_ --> <h1 id="section">研究背景(1/2)</h1> <ul> <li>スマートフォン等の普及により、Webサービスの利用者が増え、Webサーバーにかかる負荷も増大している。</li> <li>この問題を解決する為に当研究室では、スケーラビリティを持つ分散データベースとしてJungleを開発している</li> <li>ここで言うスケーラビリティとは、複数のマシンに処理を分散させたりすることで、システムの処理能力を向上させる性能を指す</li> </ul> </div> <div class='slide '> <!-- _S9SLIDE_ --> <h1 id="section-1">研究背景(2/2)</h1> <ul> <li>一般的なウェブサイトの構造は大体が木構造であるため、データ構造と して木構造を採用している</li> <li>JungleはNoSQLで開発されており、木構造をそのまま読み込むことが可能</li> <li>Jungle はデータの変更を非破壊で行なっており、編集ごとのデータをバージョンとして TreeOperationLog に残している。</li> <li>Jungleの分散機構には、当研究室で開発している分散フレームワークAliceのTopologyManagerという機能を使用している</li> </ul> </div> <div class='slide '> <!-- _S9SLIDE_ --> <h1 id="section-2">研究目的</h1> <ul> <li>これまでJungleの分散性能を測定する方法が確立されていなかった</li> <li>Jungleの分散環境上での性能を測定する環境を構築するため、</li> <li>実際に分散環境上で Jungleに -write , -count オプションで負荷をかけ、処理にかかる時間を –showTime オプションで出力結果に表示した。</li> </ul> </div> <div class='slide '> <!-- _S9SLIDE_ --> <h1 id="jungle">JUngleデータベースの構造</h1> <ul> <li>一般的なウェブサイトの構造は大体が木構造であるため、データ構造として木構造を採用している</li> <li>NoSQLを元に開発されている為、RDBと異なり、木構造をそのまま読み込める</li> <li>Jungle はデータの変更を非破壊で行なっており、編集ごとのデータをバージョンとして TreeOperationLog に残している</li> </ul> </div> <div class='slide '> <!-- _S9SLIDE_ --> <h1 id="jungle12">Jungleの分散機構(1/2)</h1> <ul> <li>JungleはGitやMercurialといった分散バージョン管理システムの機能を参考に作られている</li> <li>ノード間でデータの衝突が起きるのを避ける為、Mergeの機能が実装されている</li> <li>Jungleの分散機構には、当研究室で開発している分散フレームワークAliceのTopologyManagerという機能を使用している</li> </ul> </div> <div class='slide '> <!-- _S9SLIDE_ --> <h1 id="jungle22">Jungleの分散機構(2/2)</h1> <ul> <li>Jungleの分散機構はツリートポロジーを想定している</li> <li>ツリー型であれば、データの整合性をとる場合、一度トップまでデータを伝搬させることで行える</li> <li>ノード間でデータの衝突が生じても、Mergeして改めて送り直せばいいからである <img src="./pictures/tree.pdf" alt="tree" width="60%" /></li> </ul> </div> <div class='slide '> <!-- _S9SLIDE_ --> <h1 id="section-3">評価実験</h1> <ul> <li>学科から16台のVMを借り,15台でJungleを1つずつ起動し、分散させる</li> <li>15台のJungleはAliceのTopologyManagerでツリートポロジーを形成する</li> <li>1~7台の子ノードのJungleに書き込んだデータがrootノードのJungleへMergeし終わるまでの時間を計測する</li> </ul> </div> <div class='slide '> <!-- _S9SLIDE_ --> <h1 id="torque-resource-manager">TORQUE Resource Manager</h1> <ul> <li>perlスクリプトを16台のJungleに一度に投入するのにTORQUEを使用した</li> <li>TORQUEはジョブを管理・投下・実行する3つのデーモンで構 成されており、ジョブの管理・投下を担うデーモンが稼働しているヘッダーノードから、 ジョブの実行を担うデーモンが稼働している計算ノードへジョブが投下される</li> </ul> </div> <div class='slide '> <!-- _S9SLIDE_ --> <h1 id="jungle-1">Jungleにデータを書き込むスクリプト</h1> <ul> <li>任意のnodeと任意のトポロジーを形成するperlスクリプトを作成した</li> </ul> </div> <div class='slide '> <!-- _S9SLIDE_ --> <h1 id="alice">分散フレームワークAlice</h1> <ul> <li>Aliceは当研究室で開発している並列分散フレームワークである</li> <li>Alice は、ネットワーク上の複数のサーバーノードにトポロジーを形成させ、通信する機能を提供する</li> </ul> </div> <div class='slide '> <!-- _S9SLIDE_ --> <h1 id="section-4">実験環境</h1> <ul> <li>学科の KVM 上の仮想マシンによる仮想クラスタ環境を用いて実験を行った</li> <li>他の利用者とリソースが競合しないよう、TORQUE ジョブ スケジューラーを利用している</li> </ul> </div> <div class='slide '> <!-- _S9SLIDE_ --> <h1 id="section-5">まとめ</h1> <ul> <li> <p>JungleとAliceで生じていたJava等のバージョンのズレを修正した</p> </li> <li> </li> <li>測定用に、任意のnodeと任意のトポロジーを形成するperlスクリプトを作成した</li> <li> <p>mavenリポジトリのキャッシュをクリアすることアップデートできた。</p> </li> <li>Alice が実用的なアプリケーションを記述するための Meta Computation として、Meta Data Segmentに複数の表現のデータを同時に持たせることで圧縮機能を実装した。同様の手法を用いれば暗号表現などへの対応もでき自由度の高い通信を行うことが可能になる。</li> <li>TreeVNCをAlice上で実装し比較を行った結果、変更量の少ないシンプルな記述でTreeVNCの基本機能を実現でき、同等の性能を出すことに成功した。</li> <li>AliceのMeta Computationが拡張性・信頼性の高い実用的な分散アプリケーションの構築に有用であることが確認された。</li> </ul> </div> <div class='slide '> <!-- _S9SLIDE_ --> <h1 id="section-6">今後の課題</h1> <ul> <li> <p>新たに確立した測定環境で現在のJungleの分散性能を測定したい</p> </li> <li>再接続時に、Jungleのノードのデータを再ロードできるプロトコルを定義したい <ul> <li>方法としては、他のノード、もしくはディスクからデータを読み込む</li> </ul> </li> <li>ディスク上にしかないツリートポロジーを読み出すプロトコルを定義したい</li> </ul> <style type="text/css"> <!-- *{ font:nomal 100% 'PT Sans'; } ul > li{ list-style-type:disc; } .slide h1{ text-align:left; color:#777777; font:bold 40px/1.13 'PT Sans', sans-serif; margin-bottom: 50px; } div#slide1 h1{ text-align:left; color:#777777; font:bold 60px 'PT Sans', sans-serif; margin-bottom: 50px; } pre > code{ font-family:'Droid Sans Mono', 'Courier New', monospace; } img[alt="opt"]{ display: block; margin-left: auto; margin-right: auto; } img[alt="right"]{ margin-right: 0; } table { margin-left: auto; margin-right: auto; } th { font-size: 120%; } --> </style> <!-- === end markdown block === --> </div> </div><!-- presentation --> </body> </html>