# HG changeset patch # User Nobuyasu Oshiro # Date 1391297783 -32400 # Node ID d297942c3037eb3032d1102539e1b314c81b53cf # Parent 0a198ff75b2caabc7e930ec6765f9e2c956a3720 Added slides diff -r 0a198ff75b2c -r d297942c3037 .DS_Store Binary file .DS_Store has changed diff -r 0a198ff75b2c -r d297942c3037 index.html --- a/index.html Tue Jan 14 17:14:01 2014 +0900 +++ b/index.html Sun Feb 02 08:36:23 2014 +0900 @@ -1,252 +1,89 @@ - - - - - 分散データベースJungle - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- -
- - - -
-

分散データベースJungleに関する研究

-
    -

    琉球大学 大城信康 -
    - 14 Jan 2013 -

    -
-
- -
-

研究の背景と目的

-
    -
  • 近年、スマートフォンやタブレット端末の普及によりサーバサイドの負担が増大し、ウェブサービスがダウンする自体が多々みられる
  • -
  • そのため、スケーラビリティはウェブサービスにおいて重要な性質の1つとなっている
  • -
  • スケーラビリティとは、ある複数のノードから構成される分散ソフトウェアがあるとき、その分散ソフトウェアに対して単純にノード - を追加するだけで性能を線形に上昇させることができる性質である
  • -
  • スケーラビリティを持たせるためにはアーキテクチャの設計から考えなければならない
  • -
-
- -
-

研究の背景と目的

- -
    -
  • 当研究室では非破壊的木構造を用いたデータベースである Jungle™ を開発している
  • -
  • 非破壊的木構造とは、データの編集の際に一度木構造として保存したデータには触れず、新しく木構造を作成してデータの編集を行うこと
  • -
  • Jungle は分散データベースとして設計・実装されているが、分断耐性や永続性といった部分の実装がまだ - 行われていない
  • -
  • 本研究では、Jungle を用いてスケーラビリティをもつアーキテクチャの追求を行う
  • -
-
- -
-

今週の作業

-
    -
  • 修論の目次作成
  • -
  • Jungleへの永続性の実装
  • -
-
- -
-

Jungleの永続性実装

-
  • 現在の永続性の実装
  • -
      -
    • ログをMessagePackによりディスクへ書き出している
    • -
    • プログラム起動時に書きだされたログを読み出しEditorを用いてTreeへ反映する
    • -
    -
    - -
    -

    修論の目次

    -
      -
    1. 序論
    2. -
        -
      • 序論
      • -
      • 研究の背景と目的
      • -
      • 本論文の構成
      • -
      -
    3. 既存の分散データベース
    4. -
        -
      • -
      -
    5. 木構造データベースJungleの分散設計
    6. -
        -
      • 木構造データベースJungle
      • -
          -
        • 破壊的木構造
        • -
        • 非破壊的木構造
        • -
        -
      • Jungleの分散データベース設計
      • -
          -
        • Jungleにおけるデータ編集(APIとかの説明も)
        • -
        • データ編集におけるログ
        • -
        • ログによるデータ分散
        • -
        -
      -
    7. Jungleの分散実装
    8. -
        -
      • 並列分散フレームワークAlice
      • -
      • Aliceを用いての分散実装
      • -
      • ログのシリアライズ
      • -
      • NetworkTopologyManagerを用いてのデータ分散
      • -
      • Jungleの永続性の実装
      • -
      - -
    9. 分散木構造データベースJungleの評価
    10. -
        -
      • 実験方法
      • -
      • 実験環境
      • -
      • 実験
      • -
      • 実験結果
      • -
      - -
    11. 結論
    12. -
        -
      • まとめ
      • -
      • 今後の課題
      • -
          -
        • データ分割の問題
        • -
        • Compaction の実装
        • -
        • Mergeアルゴリズムの設計
        • -
        -
      - -
    -
    - -
    -

    benchmarkプログラムの改良と再測定

    -
      -
    • 今までのbenchmarkプログラムは1つの node にしか負荷をかけなかった
    • -
    • そこで、複数起動した node に対して負荷をかけるように改良
    • -
    • bldsv12,bldsv10で掲示板プログラムを動かしクラスタから負荷をかける
    • -
    • Jungleの分散実装とCassandraのConsistency Levelを変えての測定
    • -
    -
    - - -
    -

    Cassandra write benchmark

    -
      -
    • Consistency Levelを変更しての測定
    • -
    - -
    - -
    -

    jungle and Cassandra write benchmark

    - -
    - - -
    -

    単体・複数ノードへの負荷

    - -
      -
    • -
    • -
    -
    - -
    -

    永続性実装のベンチマーク

    - -
      -
    • -
    • -
    -
    - - -
    -

    今後の作業

    -
  • 永続性の実装
  • -
      -
    • ログを書き出すファイルの容量がある一定を超えたら新しいファイルに書き出す機構
    • -
    • 複数あるログのファイルからデータを復元する機構
    • -
    • Compactionの部分の設計
    • -
    -
  • 例題アプリケーションの作成(Wikiとか)
  • -
  • 分散環境下のベンチマークプログラムの作成
  • -
    - -
    - - + + + + + 分散データベース Jungle に関する研究 + + + + + +
    + + +
    +

    + 分散データベース Jungle に関する研究 +
    + +

    +

    + 大城 信康 +
    + Feb 3, 2013 +

    +
    + +
    +

    + 概要 +

    + +

    ウェブサービスにとってデータベースは必須であり、ウェブサービスの規模に比例してデータベースへの負荷も高まる。

    +

    データベースの処理能力の高さはそのままウェブサービスの質に繋がるため、データベースのスケーラビリティの確保は重要である。

    +

    スケーラビリティ確保の方法としてデータ分散があるが、分散する方法により性能も変わってくる。

    +

    我々は、非破壊的構造を用いてデータを表現するデータベースJungleの開発を行った。

    +

    非破壊的木構造データベースJungleに分散実装を行い、その評価を行い、分散データベースCassandraよりよい性能を得ることができた。

    +
    +
    + +
    +

    +

    + +
    + +
    + + + diff -r 0a198ff75b2c -r d297942c3037 index.html_back --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/index.html_back Sun Feb 02 08:36:23 2014 +0900 @@ -0,0 +1,189 @@ + + + + + 分散データベースJungle + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    + + + +
    +

    分散データベースJungleに関する研究

    +
      +

      琉球大学 大城信康 +
      + 14 Jan 2013 +

      +
    +
    + +
    +

    研究の背景と目的

    +
      +
    • スマートフォンやタブレット端末の普及により、大量のデータを扱うウェブサービスが現れてきている。
    • +
    • しかしそれに伴い、サーバサイド側への負荷も増大しウェブサービスがダウンする事態が出てきている。
    • +
    • そのため、スケーラビリティはウェブサービスにおいて重要な性質の1つとなっている。 +
    • スケーラビリティとは、ある複数のノードから構成される分散ソフトウェアがあるとき、その分散ソフトウェアに対して単純にノード + を追加するだけで性能を線形に上昇させることができる性質である
    • +
    • スケーラビリティのあるプログラムについてアーキテクチャの設計から行った
    • +
    +
    + +
    +

    研究の背景と目的

    + +
      +
    • 当研究室では非破壊的木構造を用いたデータベースである Jungle を開発している
    • +
    • 非破壊的木構造とは、データの編集の際に一度木構造として保存したデータには触れず、新しく木構造を作成してデータの編集を行うこと
    • +
    • Jungle は分散データベースとして設計・実装されているが、分断耐性や永続性といった部分の実装がまだ + 行われていない
    • +
    • 本研究では、Jungle を用いてスケーラビリティをもつアーキテクチャの追求を行う
    • +
    +
    + +
    +

    今週の作業

    +
      +
    • 論文の執筆
    • +
    • ベンチマーク測定環境の構築
    • +
    +
    + +
    +

    ベンチマーク測定環境の構築

    +
      +
    • csクラスタ(VM)上で掲示板プログラムを走らせ、ベンチマークをとる
    • +
    • Jungle と Cassandra 両方を走らせる環境の構築を行った
    • +

      問題が発生

      +
    • Cassandra でConsistencyLevelをいじってもデータを伝搬してくれない
    • +
    • Jungle の分散結果が良くならない。圧倒的に遅い。Cassandra の結果の2倍3倍遅くなる
    • +
    +
    + +
    +

    問題解決

    +
      +
    • Cassandra はConsistencyLevelとは別にReplication factorというレプリケーション(複製)をとるノードの数を指定する項目がある
    • +
    • Cassandra のConsistencyLevelはこのReplication factorの数に対して行われる
    • +
        +
      • Replication factorをNとした場合、ConsistencyLevelをALLにするとこのNの数だけノードに書き込まれるのをまつ
      • +
      • Replication factorをノードの全体の数に合わせてあげるとよい
      • +
      • Replication factorの設定はv1.1くらいまでは設定ファイルでできるが、v1.2からはキースペース生成時に設定するか + ./bin/cassandra-cli を使ってCassandraのデータにアクセスして変更する必要がある
      • +
      +
      +
    • Jungle の結果が悪い原因
    • +
        +
      • Javaのメモリの量を増やす設定をいれることで解決
      • +
      +
    +
    + +
    +

    単体・複数ノードへの負荷

    +
      +
    • クライアント数最大12台。各クライアント5000回のリクエストを出す
    • +
    + +
    + +
    +

    ベンチマーク改良

    +
      +
    • Jungleの結果をbldsvで起動した時に近い結果になることが確認できた
    • +
    • Cassandra も Jungle のグラフも横ばいになっている。クライアント側からの負荷が足りない。
    • +
    • Cassandra の ConsystencyLevel をいじっても結果が変わらないのも負荷が足りないから?
    • +

      次の課題

      +
    • クライアント側はKVMで動かしていて現在12台しか無い
    • +
    • 負荷をかけるプログラムをforkすることでプロセスを増やして負荷を増やすよう改良する必要がある
    • +
      +
    • 論文書こう
    • +
    +
    + +
    +

    今後の作業

    +
      +
    • 修論作成
    • +
    • ベンチマークプログラム作成
    • +
    +
    +
    + +