20110519 okuyama tokyo_linuxstudy

1,114 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

20110519 okuyama tokyo_linuxstudy

  1. 1. Distributed Key-Value Store Kobe Digital Labo, Inc. 岩瀬 高博 Twitter: @okuyamaoo Mail: ta.okuyamaoo@gmail.com http://d.hatena.ne.jp/okuyamaoo/
  2. 2. アジェンダ1.自己紹介2.okuyamaについて3.新機能のご紹介
  3. 3. 自己紹介・株式会社 神戸デジタル・ラボ>神戸を基盤にICTソリューションを展開・岩瀬 高博 (Twitter: @okuyamaoo) >okuyama、ECサイト関係、研究系の案件 >車とか好き. okuyamaの由来もそこから>活動 >OSS分散キーバリューストア #okuyama を開発
  4. 4. okuyamaとは? ・概要 ・全体イメージ ・基本機能
  5. 5. okuyamaとは?・分散Key-Value Store・okuyamaは全てJavaで作られています。 >2009年の12月から開発をはじめ、 現在 Version 0.8.7.2・全て一からの実装になります。>開発動機は自身の勉強目的 永続化の仕組み, ネットワークI/O周りの仕組み, レプリケーションの仕組み全てオリジナルとなります
  6. 6. 全体イメージ・全体イメージ Data Node Data Node Data Node Client Master Node Data Node Data Node Data Node Client Master Node Data Node Data Node Data Node Client Data Node Data Node Data Node・Client → Master Node → Data Node(×3)
  7. 7. okuyamaに出来ること・機能一覧Storage Type 永続化・非永続化の選択、一貫性レベルの選択 保存先の選択(Memory, Disk, Disk + Memory)Support Protocol Original, memcached, HTTP冗長性 複数台のサーバで構成されており、 サーバ追加も無停止で可能(アルゴリズム分散)可用性 全てのデータは多重化されて保存され 全ての構成要素が多重化可能となっている single point of failureが存在しないデータメンテナンス サーバ追加時や、障害時、復旧時の データ再配置は全て自動で行われる。データTag付加機能 Keyを束ねるTagを設定可能。取得時はKeyの集合、 又はKeyとValueを選択可能。Tagの数は制限なし。JavaScript実行機能 JavaScriptをDataNodeで実行可能。 データの更新も同時に実行可能。
  8. 8. 最近追加した機能 ・パーティション機能 ・ストレージ機能の強化 ・全文検索機能
  9. 9. パーティション機能・Key-Value Storeを利用するアプリが増えてきた場合に発生する問題・アプリ単位で環境を用意・1つのKVSを共有利用
  10. 10. パーティション機能・Key-Value Storeを利用するアプリが増えてきた場合に発生する問題・アプリ単位で環境を用意 1つのサーバ上に複数のKVS 複数のサーバを用意 管理コストの増大・1つのKVSを共有利用 アプリ側でなんだかの工夫 ロジックに環境依存が発生する 操作ミスなどで他のデータに影響
  11. 11. パーティション機能・okuyamaのクラスター内に領域を作成・1つのokuyamaクラスターを複数の用途で共有利用 ・パーティションの容量は可変 >初期設定は不要 ・パーティション数の限度はなし >追加、削除の制限なし ・利用側はMasterNodeのポート単位 >memcachedクライアント等でも意識 せずに利用可能 ・内部的にはパーティション単位での プレフィックス付加での分離 ・暗号化などは今後の検討課題
  12. 12. ストレージ機能強化・仮想メモリ機構 ・完全ディスクモード以外の場合にメモリ使用量が 上限に達した場合に自動的にディスクをメモリとして利用・Value圧縮機構 ・Valueを保存する際に圧縮し保存する(zipアルゴリズム) 圧縮しても意味がないデータは自動判定 ・Valueがメモリモードの場合のみ利用可能・データファイル遅延書き込み機構 ・トランザクション、データ両ファイルのディスクへの書き込みを 遅延させることが可能 ・データ保全性の面ではトレードオフ
  13. 13. 全文検索機能・標準機能として全文検索機能を搭載 >機能特徴 1.N-Gramを利用した検索Index作成 次のリリースで辞書方式のMixに変更
  14. 14. 全文検索機能・もう少し特徴を出してみようと 1.辞書方式とのMix 2.N-GramのNの部分はIndex作成、検索時に 設定できるように(デフォルトはN=1, 2, 3で作成) 3.作成Indexのグルーピングが可能
  15. 15. 全文検索機能・検索Indexをグループ別で作成、検索データ登録時に任意のグループを指定することで検索時の範囲を限定することが可能 blog>今日の勉強会の内容を グループを決めて検索 とかも可能 twitterのグループから ATND “今日の勉強会”を検索 他のグループは対象から外せる twitter
  16. 16. 全文検索機能 デモ
  17. 17. 全文検索機能・デモ内容説明登録されているデータはYahooと、MSNのニュースのRSS情報 YahooYahooのグループの検索Indexから全部検索をおこなっている検索ノイズの除外 MSN
  18. 18. 全文検索機能・デモ内容説明登録されているデータはYahooと、MSNのニュースのRSS情報 YahooYahooのグループの検索Indexから全部検索をおこなっている検索ノイズの除外もう少しつくり込んでいくと MSN
  19. 19. 全文検索機能 デモ2
  20. 20. 全文検索機能・デモ内容説明最初のデモは情報元のグループに全ての情報を付加して検索を行った今回のデモは情報の属性単位でグループを付加しどのグループを検索してももとのRSS情報を取得することが出来るように情報を付加してあらかじめデータを登録しておいた
  21. 21. 全文検索機能・データ内容説明 RSS情報 ・情報元 RSS情報そのものはJSONなどでokuyamaに登録 ・カテゴリ Key値は日付とタイトルと情報元のHash値など ・タイトル ・日付 検索Indexも作成Group Key Value情報元 RSSを一意にする値+”情報元” AAAAAAAAAAAAAAAAAカテゴリ RSSを一意にする値+”カテゴリ” BBBBBBBBBBBBBBBBBタイトル RSSを一意にする値+”タイトル” CCCCCCCCCCCCCCC日付 RSSを一意にする値+”日付” DDDDDDDDDDDDDDD
  22. 22. 全文検索機能・データ検索説明 Key Value情報元 RSSを一意にする値+”情報元” AAAAAAAAAAAAAAAAAカテゴリ RSSを一意にする値+”カテゴリ” BBBBBBBBBBBBBBBBBタイトル RSSを一意にする値+”タイトル” CCCCCCCCCCCCCCC日付 RSSを一意にする値+”日付” DDDDDDDDDDDDDDDタイトルグループの検索Indexを検索 RSS本体が取得出来た該当したKeyの配列が取れてくる 複数のGroupを検索して、それぞれのKey値にはRSSを一意にする値が入っ 結果をマージするなどすれば複合検索もているので、本体のRSSを取得 可能
  23. 23. 最後に・Information UserGroup http://groups.google.com/group/kvs_okuyama/ Development http://sourceforge.jp/projects/okuyama/ Facebook http://www.facebook.com/okuyama.jp
  24. 24. Thank you!

×