0
分散Key-Value Storeについて              Kobe Digital Labo, Inc.                             岩瀬 高博                 Twitter: @oku...
自己紹介・岩瀬 高博 > 株式会社        神戸デジタル・ラボ所属 > Twitter:   @okuyamaoo 活動   >OSS活動    ・分散キーバリューストア okuyama を作成     http://sourceforg...
アジェンダ1.分散Key-Value Storeとは? 分散Key-Value Storeの特徴2.okuyamaについて 概要 特徴 こんな使い方をされています
分散Key-Value Storeとは?     ・概要     ・特徴     ・基本機能
NOSQLなデータベースの一種
NOSQLなデータベースの一種  分散Key-Value Store  Column     Document
分散Key-Value Storeって?分散Key-Value Storeとは?
分散Key-Value Storeって?分散Key-Value Storeとは?>その前にまずKey-Value Storeから
Key-Value Storeって?分散Key-Value Storeとは?>その前にまずKey-Value Storeから >KeyとValueの関係で値を保持できる仕組み
Key-Value Storeって?分散Key-Value Storeとは?>その前にまずKey-Value Storeから >KeyとValueの関係で値を保持できる仕組み         “Key-1”のValueを取得 Key-1    ...
Key-Value Storeって?分散Key-Value Storeとは?>その前にまずKey-Value Storeから  >KeyとValueの関係で値を保持できる仕組み                       Key-1   Val...
Key-Value Storeって?分散Key-Value Storeとは?>その前にまずKey-Value Storeから >KeyとValueの関係で値を保持できる仕組み >特徴  ・シンプルなデータモデル  ・シンプルな操作方法  ・最小...
Key-Value Storeって?分散Key-Value Storeとは?>その前にまずKey-Value Storeから >KeyとValueの関係で値を保持できる仕組み >特徴  ・シンプルなデータモデル  ・シンプルな操作方法  ・最小...
最小単位での一貫性?1つのデータの更新が混在しないことのみ保障>どんな利点が?
最小単位での一貫性?1つのデータの更新が混在しないことのみ保障 >どんな利点が?   >データの整合性確保の範囲を限定できる“Key-1”を“Value-11”へ更新                       2つのデータは         ...
最小単位での一貫性?データの整合性確保の範囲を限定できる>ということは?
最小単位での一貫性?データの整合性確保の範囲を限定できる >ということは?   >分散して管理することが可能“Key-1”を“Value-11”へ更新                        Key-1   Value-11 Key-1 ...
最小単位での一貫性?データの整合性確保の範囲を限定できる >ということは?   >分散して管理することが可能“Key-1”を“Value-11”へ更新                        Key-1   Value-11 Key-1 ...
分散Key-Value Storeの機能・一般的に有している機能一覧Storage Type       非永続化・永続化が選択出来る                   Key-Value Storeライブラリを利用した実装もSupport ...
okuyamaについて    ・概要    ・特徴    ・こんな使い方をさています
概要・okuyamaは全てJavaで作られています。>2009年の12月から開発をはじめ、 現在 Version 0.8.8・全て一からの実装になります。>永続化の仕組み, ネットワークI/O周りの仕組み, レプリケーションの仕組み全てオリジナ...
特徴特徴的な機能をいくつかご紹介・ストレージ特性の自由度・Tag付加機能・JavaScript実行機能・パーティション機能・Valueへの全文検索機能
ストレージ特性の自由度・保存方式を自由に選択可能KeyとValueの保存場所をメモリ、ファイル自由に選択可能永続化は操作ログ方式のため、永続化+OnMemoryなどSerializeMapを使うことで高速な圧縮と、メモリ効率化も可能・仮想メモリ...
Tag付加機能・タグをデータに追加することができる  Key               Value  memcached         “The world‟s most popular open source kvs”  MySQL   ...
JavaScript実行機能・JavaScriptをDataNodeで実行    Request    Key=“okuyama”    JavaScript=”if (dataValue == „nosql‟) { …..” Client  ...
パーティション機能・okuyamaのクラスター内に領域を作成・1つのokuyamaクラスターを複数の用途で共有利用 ・パーティションの容量は可変 >初期設定は不要 ・パーティション数の限度はなし >追加、削除の制限なし ・利用側はMasterN...
全文検索機能・Valueに対しての全文検索機能を搭載>機能特徴 1.N-Gramを利用した検索Index作成 2.N-GramのNの部分はValue単位で変更可能 3.検索対象のグルーピ化及びグループ指定検索が可能               ...
構築事例(1)・システムの持つ共有意義の強いデータを 集中管理するストレージ基盤を開発・商品マスタ、ユーザマスタ、在庫情報など複数のシステムが利用するデータを集中管理・okuyama内にパーティションを使ってデータ単位の領域を作成・データ別にア...
構築事例(2)・okuyamaを利用して構築したクラスターを 自社のサービス利用ユーザに提供・自社のインフラ上に構築したokuyamaクラスターを自社のサービス利用者に容量単位でレンタル・利用側は使った容量のみの料金で冗長化された、メンテナンス...
Thank you!
Upcoming SlideShare
Loading in...5
×

20110708 dist_study okuyama

1,167

Published on

2011/07/08 dist_study
introduction of okuyama

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,167
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "20110708 dist_study okuyama"

  1. 1. 分散Key-Value Storeについて Kobe Digital Labo, Inc. 岩瀬 高博 Twitter: @okuyamaoo Mail: ta.okuyamaoo@gmail.com http://d.hatena.ne.jp/okuyamaoo/
  2. 2. 自己紹介・岩瀬 高博 > 株式会社 神戸デジタル・ラボ所属 > Twitter: @okuyamaoo 活動 >OSS活動 ・分散キーバリューストア okuyama を作成 http://sourceforge.jp/projects/okuyama/ >勉強会 ・分散ワークショップ in Kansaiを計画中
  3. 3. アジェンダ1.分散Key-Value Storeとは? 分散Key-Value Storeの特徴2.okuyamaについて 概要 特徴 こんな使い方をされています
  4. 4. 分散Key-Value Storeとは? ・概要 ・特徴 ・基本機能
  5. 5. NOSQLなデータベースの一種
  6. 6. NOSQLなデータベースの一種 分散Key-Value Store Column Document
  7. 7. 分散Key-Value Storeって?分散Key-Value Storeとは?
  8. 8. 分散Key-Value Storeって?分散Key-Value Storeとは?>その前にまずKey-Value Storeから
  9. 9. Key-Value Storeって?分散Key-Value Storeとは?>その前にまずKey-Value Storeから >KeyとValueの関係で値を保持できる仕組み
  10. 10. Key-Value Storeって?分散Key-Value Storeとは?>その前にまずKey-Value Storeから >KeyとValueの関係で値を保持できる仕組み “Key-1”のValueを取得 Key-1 Value-1 “Value-1”が取得できる Key-1 Value-1 Key-2 Value-2 Key-3 Value-3
  11. 11. Key-Value Storeって?分散Key-Value Storeとは?>その前にまずKey-Value Storeから >KeyとValueの関係で値を保持できる仕組み Key-1 Value-1 Key-2 Value-2“Key-4”,“Value-4”を登録 Key-3 Value-3 Key-4 Value-4 Key-4 Value-4
  12. 12. Key-Value Storeって?分散Key-Value Storeとは?>その前にまずKey-Value Storeから >KeyとValueの関係で値を保持できる仕組み >特徴 ・シンプルなデータモデル ・シンプルな操作方法 ・最小単位での一貫性
  13. 13. Key-Value Storeって?分散Key-Value Storeとは?>その前にまずKey-Value Storeから >KeyとValueの関係で値を保持できる仕組み >特徴 ・シンプルなデータモデル ・シンプルな操作方法 ・最小単位での一貫性
  14. 14. 最小単位での一貫性?1つのデータの更新が混在しないことのみ保障>どんな利点が?
  15. 15. 最小単位での一貫性?1つのデータの更新が混在しないことのみ保障 >どんな利点が? >データの整合性確保の範囲を限定できる“Key-1”を“Value-11”へ更新 2つのデータは 個々で更新される Key-1 Value-11 Key-1 Value-11 関係性を持たない Key-2 Value-2“Key-4”を“Value-44”へ更新 Key-3 Value-3 Key-4 Value-44 Key-4 Value-44
  16. 16. 最小単位での一貫性?データの整合性確保の範囲を限定できる>ということは?
  17. 17. 最小単位での一貫性?データの整合性確保の範囲を限定できる >ということは? >分散して管理することが可能“Key-1”を“Value-11”へ更新 Key-1 Value-11 Key-1 Value-11 Key-2 Value-22“Key-4”を“Value-44”へ更新 Key-3 Value-3 Key-4 Value-44 Key-4 Value-44
  18. 18. 最小単位での一貫性?データの整合性確保の範囲を限定できる >ということは? >分散して管理することが可能“Key-1”を“Value-11”へ更新 Key-1 Value-11 Key-1 Value-11 Key-2 Value-22 分散 Key-Value Store“Key-4”を“Value-44”へ更新 Key-3 Value-3 Key-4 Value-44 Key-4 Value-44
  19. 19. 分散Key-Value Storeの機能・一般的に有している機能一覧Storage Type 非永続化・永続化が選択出来る Key-Value Storeライブラリを利用した実装もSupport Protocol 独自プロトコル, memcached(拡張も), HTTP冗長性 複数台のサーバで構成することを強く意識している サーバ追加や削減も可能(無停止で可能な場合も)可用性 データは多重化して保存することが可能 ノードの障害時などは自動的にフェイルオーバ single point of failureが存在しないデータメンテナンス サーバ追加時や、障害時のデータへのメンテナンスを 自動で行うことも可能一貫性 一貫性のレベルは低い 一貫性レベル高くすることが出来る仕組みを持つものも
  20. 20. okuyamaについて ・概要 ・特徴 ・こんな使い方をさています
  21. 21. 概要・okuyamaは全てJavaで作られています。>2009年の12月から開発をはじめ、 現在 Version 0.8.8・全て一からの実装になります。>永続化の仕組み, ネットワークI/O周りの仕組み, レプリケーションの仕組み全てオリジナルとなります・分散KVSの機能一覧の内容を一通りサポート
  22. 22. 特徴特徴的な機能をいくつかご紹介・ストレージ特性の自由度・Tag付加機能・JavaScript実行機能・パーティション機能・Valueへの全文検索機能
  23. 23. ストレージ特性の自由度・保存方式を自由に選択可能KeyとValueの保存場所をメモリ、ファイル自由に選択可能永続化は操作ログ方式のため、永続化+OnMemoryなどSerializeMapを使うことで高速な圧縮と、メモリ効率化も可能・仮想メモリ機能メモリ不足などでノードがダウンしないように自動的に利用される
  24. 24. Tag付加機能・タグをデータに追加することができる Key Value memcached “The world‟s most popular open source kvs” MySQL “The world‟s most popular open source database” okuyama “Distributed Key Value Store implemented in Java” Key Tag Value memcached KVS “The world‟s most popular open source kvs” MySQL RDBMS “The world‟s most popular open source database” okuyama KVS “Distributed Key Value Store implemented in Java”
  25. 25. JavaScript実行機能・JavaScriptをDataNodeで実行 Request Key=“okuyama” JavaScript=”if (dataValue == „nosql‟) { …..” Client MasterNode DataNode Key=okuyama Value=“nosql” Execute JavaScript 結果を取得できる (更新することも可能)
  26. 26. パーティション機能・okuyamaのクラスター内に領域を作成・1つのokuyamaクラスターを複数の用途で共有利用 ・パーティションの容量は可変 >初期設定は不要 ・パーティション数の限度はなし >追加、削除の制限なし ・利用側はMasterNodeのポート単位 >memcachedクライアント等でも意識 せずに利用可能
  27. 27. 全文検索機能・Valueに対しての全文検索機能を搭載>機能特徴 1.N-Gramを利用した検索Index作成 2.N-GramのNの部分はValue単位で変更可能 3.検索対象のグルーピ化及びグループ指定検索が可能 blogtwitterのグループから“勉強会”を検索他のグループは対象から外せる twitter
  28. 28. 構築事例(1)・システムの持つ共有意義の強いデータを 集中管理するストレージ基盤を開発・商品マスタ、ユーザマスタ、在庫情報など複数のシステムが利用するデータを集中管理・okuyama内にパーティションを使ってデータ単位の領域を作成・データ別にアクセス用APIをWebAPIとして随時開発、追加アプリケーションはAPIを利用することでokuyamaを意識しない利用を実現
  29. 29. 構築事例(2)・okuyamaを利用して構築したクラスターを 自社のサービス利用ユーザに提供・自社のインフラ上に構築したokuyamaクラスターを自社のサービス利用者に容量単位でレンタル・利用側は使った容量のみの料金で冗長化された、メンテナンスフリーのストレージを利用可能・管理は個別管理ではなくクラスターの管理のみで多数のユーザにサービス提供できる
  30. 30. Thank you!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×