SlideShare a Scribd company logo
1 of 90
Download to read offline
サーバ2 でも構築できる
サーバ2台でも構築できる
       構築
分散キーバリューストア
分散キーバリューストア
okuyamaのご紹介と活用事例
       のご紹介
         紹介と


       株式会社 神戸デジタル・ラボ
                           岩瀬 高博
                 Mail: iwase@kdl.co.jp
                 Twitter: @okuyamaoo
        http://d.hatena.ne.jp/okuyamaoo/
自己紹介
・株式会社 神戸デジタル・ラボ
 >神戸を基盤にICTソリューションを展開
・岩瀬 高博
 >活動
 >kvs-ja (Googleユーザグループ)
 >OSS分散キーバリューストア okuyama を作成
  http://sourceforge.jp/projects/okuyama/
アジェンダ
1.なぜ分散Key-Value Store?
2.okuyamaのご紹介
3.神戸デジタル・ラボでは
アプリケーション事情
少し前のアプリケーション事情
アプリケーション事情
少し前のアプリケーション事情
 >利用者
アプリケーション事情
少し前のアプリケーション事情
 >利用者
 >限定された利用者
アプリケーション事情
少し前のアプリケーション事情
 >利用者
 >限定された利用者
  >利用ユーザ数の予測、コンロールが可能
アプリケーション事情
少し前のアプリケーション事情
 >利用者
 >限定された利用者
  >利用ユーザ数の予測、コンロールが可能
 >情報
アプリケーション事情
少し前のアプリケーション事情
 >利用者
 >限定された利用者
  >利用ユーザ数の予測、コンロールが可能
 >情報
 >限られた発生源
アプリケーション事情
少し前のアプリケーション事情
 >利用者
 >限定された利用者
  >利用ユーザ数の予測、コンロールが可能
 >情報
 >限られた発生源
  >情報量の予測、コントロールが可能
システム構成
 利用者   アプリ   データベース
アプリケーション事情
最近のアプリケーション事情
 >利用者
 >限定された利用者
アプリケーション事情
最近のアプリケーション事情
 >利用者
 >限定された利用者
        ↓
 >オープンな利用

  予測できない利用者数
アプリケーション事情
最近のアプリケーション事情
 >情報
 >限られた発生源
アプリケーション事情
最近のアプリケーション事情
 >情報
 >限られた発生源
       ↓
 >参加者が自由に発信

  予測できないデータ量
システム構成
 利用者   アプリ   データベース




              RDBMS




              ボトルネック
システム構成
 利用者   アプリ   データベース
             ・スケールアップ
             ・更新系と検索系を分割

              検索ノード

                      更新ノード

              検索ノード
システム構成
 利用者   アプリ   データベース
             ・スケールアップで対応
             ・更新系と検索系を分割

              検索ノード

                       更新ノード

              検索ノード
             ・スケールアップの限界
             ・更新系はボトルネック
             ・管理の煩雑化
RDBMS以外の選択肢は?
全てのデータを高度なデータモデルを
有するRDBMSに格納する必要はある?




利用状況に合わせて柔軟に対応できる
モデルが今後は必要
分散キーバリューストア
全てのデータを高度なデータモデルを
有するRDBMSに格納する必要はある?
>キーとバリューの関係でデータを蓄積
>最小単位のデータ一貫性の保障
利用状況に合わせて柔軟に対応できる
モデルが今後は必要
分散キーバリューストア
全てのデータを高度なデータモデルを
有するRDBMSに格納する必要はある?
>キーとバリューの関係でデータを蓄積
>最小単位のデータ一貫性の保障
利用状況に合わせて柔軟に対応できる
モデルが今後は必要
>スケールアウトによる性能向上
>SPOFの存在しない対障害性
分散キーバリューストア
BigTable
Dynamo
Tokyo Tyrant
kumofs
okuyama
分散キーバリューストア
BigTable
Dynamo
Tokyo Tyrant
kumofs
okuyama        okuyamaとは?
okuyamaとは?
・Javaで実装された分散キーバリューストア
・データ保存方式の選択が可能
・スケールアウトによる性能向上
・SPOFの存在しない構成
・一括管理機能
・ユニークな機能
okuyamaとは?
・Javaで実装された分散キーバリューストア
・データ保存方式の選択が可能
・スケールアウトによる性能向上
・SPOFの存在しない構成
・一括管理機能
・ユニークな機能
Javaで実装された分散KVS
・100%Java
>通信部分、制御部分、データ保存部分

・OS非依存
>JavaVirtualMachineが動く環境なら動く

・WindowsXP系とCentOS5系で動作検証
>開発・検証はWindowsで負荷テストはCentOS

・関西発祥の分散KVS
>名前の由来は開発者の好きな山の名前
Javaで実装された分散KVS
・全体構成
                              メイン      スレーブ
                             データノード   データノード


                    スレーブ      メイン      スレーブ
クライアント                       データノード   データノード
                   マスターノード

          クライアント
                     メイン      メイン      スレーブ
                   マスターノード   データノード   データノード

 クライアント
                              メイン      スレーブ
                             データノード   データノード



・クライアント → マスターノード → データノード
Javaで実装された分散KVS
・クライアント



クライアント
                   okuyamaへの問い合わせを実現

          クライアント
                   ・専用クライアントはJavaと、PHPが実装済み


 クライアント
Javaで実装された分散KVS
・マスターノード
・クライアントからのI/F
・サポートプロトコル                ・データノード管理
>オリジナル                    >データ入出力
                 スレーブ
>Memcached      マスターノード    データ保存場所の決定は

>HTTP             メイン
                           登録Key値 % データノード数
                マスターノード
                           =サーバ番号として使用
                          >生存監視
                           起動時のデータリカバリ
                          ・制限台数なしに冗長化可能
Javaで実装された分散KVS
・データノード
・データの保存を実現
                        メイン      スレーブ
・データ保存方式を選択可能          データノード   データノード

・memcachedプロトコルに対応
                        メイン      スレーブ
>単体でmemcachedの代わりとして   データノード   データノード


                        メイン      スレーブ
                       データノード   データノード


                        メイン      スレーブ
                       データノード   データノード
okuyamaとは?
・Javaで実装された分散キーバリューストア
・データ保存方式の選択が可能
・スケールアウトによる性能向上
・一括管理機能
・SPOFの存在しない構成
・ユニークな機能
データ保存方式の選択が可能
・データノードへの保存方式を選択
 メイン     1.全てのデータをメモリに保存
データノード



         2.データ操作履歴のみファイルに保存


         3.データ本体をファイルに保存
データ保存方式の選択が可能
・データノードへの保存方式を選択
 メイン     1.全てのデータをメモリに保存
データノード
          >非永続型
         2.データ操作履歴のみファイルに保存
          >永続型
         3.データ本体をファイルに保存
          >永続型
データ保存方式の選択が可能
・それぞれの特性
1.全てのデータをメモリに保存
 ・仕組み
 Key値、Value値の両方をメモリ上で管理
 ・特徴
  最も高速に動く
  ノード停止でデータも消滅
  保存出来るデータ量はメモリ量に依存
データ保存方式の選択が可能
・それぞれの特性
2.データ操作履歴のみファイルに保存
 ・仕組み
 データへの操作を全てファイルに時系列に記録
データ保存方式の選択が可能
・データへの操作を全てファイルに時系列に記録
                 登録
 Key5 = Value5


                      データノード

                               [履歴記録ファイル]
                               登録,Key1,Value1
                               登録,Key2,Value2
                               登録,Key3,Value3
                               登録,Key4,Value4
                               登録,Key5,Value5
                               最後尾に
                               最後尾に追記
データ保存方式の選択が可能
・データへの操作を全てファイルに時系列に記録
                 登録
 Key5 = Value5


                      データノード

                               [履歴記録ファイル]
                               登録,Key1,Value1
                               登録,Key2,Value2
                               登録,Key3,Value3
                               登録,Key4,Value4
                               登録,Key5,Value5
                               最後尾に
                               最後尾に追記
                               [データノードのメモリ]
                                 Key5 = Value5
                                データノードのメモリに
                                データノードのメモリに反映
データ保存方式の選択が可能
・データへの操作を全てファイルに時系列に記録
        削除
 Key5


             データノード

                      [履歴記録ファイル]
                      登録,Key2,Value2
                      登録,Key3,Value3
                      登録,Key4,Value4
                      登録,Key5,Value5
                      削除,Key5,Value5
                      最後尾に
                      最後尾に追記
                      [データノードのメモリ]
                        Key5
                       データノードのメモリに
                       データノードのメモリに反映
データ保存方式の選択が可能
・それぞれの特性
1.データ操作履歴のみファイルに保存
 ・仕組み
 データへの操作を全てファイルに時系列に記録
  記録ファイルからデータを復元
データ保存方式の選択が可能
・記録ファイルからデータを復元


データノード ①記録ファイルから順次操作を読み込み



        登録,Key1,Value1
        登録,Key2,Value2
        登録,Key3,Value3
        登録,Key4,Value4
        登録,Key5,Value5
        削除,Key5,Value5

   [履歴記録ファイル]
データ保存方式の選択が可能
・記録ファイルからデータを復元


データノード ①記録ファイルから順次操作を読み込み

                                    ②メモリに反映
        登録,Key1,Value1      Key1 = Value1
        登録,Key2,Value2
        登録,Key3,Value3
        登録,Key4,Value4
        登録,Key5,Value5
        削除,Key5,Value5
                            [データノードのメモリ]
   [履歴記録ファイル]
データ保存方式の選択が可能
・記録ファイルからデータを復元


データノード ①記録ファイルから順次操作を読み込み

                                    ②メモリに反映
        登録,Key1,Value1      Key1 = Value1
        登録,Key2,Value2      Key2 = Value2
        登録,Key3,Value3
        登録,Key4,Value4
        登録,Key5,Value5
        削除,Key5,Value5
                            [データノードのメモリ]
   [履歴記録ファイル]
データ保存方式の選択が可能
・記録ファイルからデータを復元


データノード ①記録ファイルから順次操作を読み込み

                                    ②メモリに反映
        登録,Key1,Value1      Key1 = Value1
        登録,Key2,Value2      Key2 = Value2
        登録,Key3,Value3      Key3 = Value3
        登録,Key4,Value4
        登録,Key5,Value5
        削除,Key5,Value5
                            [データノードのメモリ]
   [履歴記録ファイル]
データ保存方式の選択が可能
・記録ファイルからデータを復元


データノード ①記録ファイルから順次操作を読み込み

                                    ②メモリに反映
        登録,Key1,Value1      Key1 = Value1
        登録,Key2,Value2      Key2 = Value2
        登録,Key3,Value3      Key3 = Value3
        登録,Key4,Value4      Key4 = Value4
        登録,Key5,Value5
        削除,Key5,Value5
                            [データノードのメモリ]
   [履歴記録ファイル]
データ保存方式の選択が可能
・記録ファイルからデータを復元


データノード ①記録ファイルから順次操作を読み込み

                                    ②メモリに反映
        登録,Key1,Value1      Key1 = Value1
        登録,Key2,Value2      Key2 = Value2
        登録,Key3,Value3      Key3 = Value3
        登録,Key4,Value4      Key4 = Value4
        登録,Key5,Value5      Key5 = Value5
        削除,Key5,Value5
                            [データノードのメモリ]
   [履歴記録ファイル]
データ保存方式の選択が可能
・記録ファイルからデータを復元


データノード ①記録ファイルから順次操作を読み込み

                                    ②メモリに反映
        登録,Key1,Value1      Key1 = Value1
        登録,Key2,Value2      Key2 = Value2
        登録,Key3,Value3      Key3 = Value3
        登録,Key4,Value4      Key4 = Value4
        登録,Key5,Value5      Key5 = Value5
        削除,Key5,Value5
                            [データノードのメモリ]
   [履歴記録ファイル]
データ保存方式の選択が可能
・記録ファイルからデータを復元


データノード ①記録ファイルから順次操作を読み込み

                                    ②メモリに反映
        登録,Key1,Value1      Key1 = Value1
        登録,Key2,Value2      Key2 = Value2
        登録,Key3,Value3      Key3 = Value3
        登録,Key4,Value4      Key4 = Value4
        登録,Key5,Value5
        削除,Key5,Value5
                            [データノードのメモリ]
   [履歴記録ファイル]


                            復元完了!!
データ保存方式の選択が可能
・それぞれの特性
2.データ操作履歴のみファイルに保存
 ・仕組み
 データへの操作を全てファイルに時系列に記録
  記録ファイルからデータを復元
 ・特徴
  データの永続化が可能で且つ、起動後は高速に動く
 保存出来るデータ量はメモリに依存
データ保存方式の選択が可能
・それぞれの特性
3.データ本体をファイルに保存
 ・仕組み
 データ永続化の仕組みは「2.」と同じ
  Key値のみメモリに保持し、Value値はファイルに保存
データ保存方式の選択が可能
・Key値とデータの場所をメモリに保持

                 登録                            「2.」の仕組みを利用
 Key5 = Value5


                      データノード



                               [データノードのメモリ]
                               Key5 = 5行目

                                     [データファイル]
                                      Value1
                                      Value2
データファイルにValue値を保存                     Value3
メモリにKey値とValue値のファイル内での               Value4
                                      Value5
位置を保持
データ保存方式の選択が可能
・それぞれの特性
3.データ本体をファイルに保存
 ・仕組み
 データ永続化の仕組みは「2.」と同じ
  Key値のみメモリに保持し、Value値はファイルに保存
 ・特徴
  データの永続化が可能
  大量のデータを保存可能
  データ操作時に常にファイルアクセスが頻発するため、
  レスポンスに問題が出やすい
okuyamaとは?
・Javaで実装された分散キーバリューストア
・データ保存方式の選択が可能
・スケールアウトによる性能向上
・一括管理機能
・SPOFの存在しない構成
・ユニークな機能
スケールアウトによる性能向上
・マスターノード、データノード共に
システム停止無しでスケールアウト可能
・スケールアウト時のデータ移行などは
全て自動で行われる                   メイン
                           データノード
                                     スレーブ
                                    データノード
                                             データ移行

                            メイン      スレーブ
                           データノード   データノード

  メイン      スレーブ
                   ノード追加
 データノード   データノード                追加
  メイン      スレーブ             メイン      スレーブ
 データノード   データノード           データノード   データノード


                            メイン      スレーブ
                           データノード   データノード
スケールアウトによる性能向上
・マスターノード、データノード共に
システム停止無しでスケールアウト可能
・スケールアウト時のデータ移行などは
全て自動で行われる


ミニマムスタートで後から性能向上も容易
okuyamaとは?
・Javaで実装された分散キーバリューストア
・データ保存方式の選択が可能
・スケールアウトによる性能向上
・一括管理機能
・SPOFの存在しない構成
・ユニークな機能
一括管理機能
・設定変更、現状確認
・データノード状態確認
一括管理機能
・設定変更、現状確認
・データノード状態確認

   1ノードづつ管理するのは大変
一括管理機能
・設定変更、現状確認
・データノード状態確認

   1ノードづつ管理するのは大変


  一括管理可能なWebコンソール
一括管理機能
okuyamaとは?
・Javaで実装された分散キーバリューストア
・データ保存方式の選択が可能
・スケールアウトによる性能向上
・memcacheプロトコル、httpプロトコルに対応
・一括管理機能
・SPOFの存在しない構成
・ユニークな機能
SPOFの存在しない構成
・データの流れ
                             メイン      スレーブ
                            データノード   データノード

         ①データ登録              メイン      スレーブ
                   スレーブ
クライアント                      データノード   データノード
                  マスターノード


                    メイン      メイン      スレーブ
                  マスターノード   データノード   データノード


                             メイン      スレーブ
                            データノード   データノード
SPOFの存在しない構成
・データの流れ

                  ②データ登録     メイン      スレーブ
                            データノード   データノード
                  ノード決定
         ①データ登録              メイン      スレーブ
                   スレーブ
クライアント                      データノード   データノード
                  マスターノード


                    メイン      メイン      スレーブ
                  マスターノード   データノード   データノード


                             メイン      スレーブ
                            データノード   データノード
SPOFの存在しない構成
・データの登録の流れ                   ③データを2ノードに登録


                  ②データ登録     メイン       スレーブ
                            データノード    データノード
                  ノード決定
         ①データ登録              メイン       スレーブ
                   スレーブ
クライアント                      データノード    データノード
                  マスターノード


                    メイン      メイン       スレーブ
                  マスターノード   データノード    データノード


                             メイン       スレーブ
                            データノード    データノード
SPOFの存在しない構成
・データの取得の流れ
                             メイン      スレーブ
                            データノード   データノード

         ①データ取得              メイン      スレーブ
                   スレーブ
クライアント                      データノード   データノード
                  マスターノード


                    メイン      メイン      スレーブ
                  マスターノード   データノード   データノード


                             メイン      スレーブ
                            データノード   データノード
SPOFの存在しない構成
・データの取得の流れ
                  ②データ保持
                  ノード割り出し    メイン      スレーブ
                            データノード   データノード

         ①データ取得              メイン      スレーブ
                   スレーブ
クライアント                      データノード   データノード
                  マスターノード


                    メイン      メイン      スレーブ
                  マスターノード   データノード   データノード


                             メイン      スレーブ
                            データノード   データノード
SPOFの存在しない構成
・データの取得の流れ                  ③データ取得
                  ②データ保持
                  ノード割り出し    メイン      スレーブ
                            データノード   データノード

         ①データ取得              メイン      スレーブ
                   スレーブ
クライアント                      データノード   データノード
                  マスターノード


                    メイン      メイン      スレーブ
                  マスターノード   データノード   データノード


                             メイン      スレーブ
                            データノード   データノード
SPOFの存在しない構成
・データノード障害発生                 障害発生!!
                  ②データ保持
                  ノード割り出し    メイン      スレーブ
                            データノード   データノード

         ①データ取得              メイン      スレーブ
                   スレーブ
クライアント                      データノード   データノード
                  マスターノード


                    メイン      メイン      スレーブ
                  マスターノード   データノード   データノード


                             メイン      スレーブ
                            データノード   データノード
SPOFの存在しない構成
・データノード障害発生 もう一つのノードから取得
                  ②データ保持
                  ノード割り出し    メイン      スレーブ
                            データノード   データノード

         ①データ取得              メイン      スレーブ
                   スレーブ
クライアント                      データノード   データノード
                  マスターノード


                    メイン      メイン      スレーブ
                  マスターノード   データノード   データノード


                             メイン      スレーブ
                            データノード   データノード
SPOFの存在しない構成
・マスターノード障害発生
                             メイン      スレーブ
                            データノード   データノード

         ①データ取得              メイン      スレーブ
                   スレーブ
クライアント                      データノード   データノード
                  マスターノード


                    メイン      メイン      スレーブ
                  マスターノード   データノード   データノード


                             メイン      スレーブ
                            データノード   データノード
SPOFの存在しない構成
・マスターノード障害発生

                  障害発生!!     メイン      スレーブ
                            データノード   データノード

         ①データ取得              メイン      スレーブ
                   スレーブ
クライアント                      データノード   データノード
                  マスターノード


                    メイン      メイン      スレーブ
                  マスターノード   データノード   データノード


                             メイン      スレーブ
                            データノード   データノード
SPOFの存在しない構成
・マスターノード障害発生
                             メイン      スレーブ
                            データノード   データノード

         ①データ取得              メイン      スレーブ
                   スレーブ
クライアント                      データノード   データノード
                  マスターノード


                    メイン      メイン      スレーブ
                  マスターノード
 別のマスター                     データノード   データノード

 ノードに再接続                     メイン      スレーブ
 処理続行                       データノード   データノード
SPOFの存在しない構成
・自動データリカバリー機能


              メイン      スレーブ
             データノード   データノード


    スレーブ      メイン      スレーブ
   マスターノード   データノード   データノード

     メイン      メイン      スレーブ
   マスターノード   データノード   データノード


              メイン      スレーブ
①各データノードを    データノード   データノード
定期的に監視
SPOFの存在しない構成
・自動データリカバリー機能
             ②障害発生を検知



              メイン        スレーブ
             データノード     データノード


    スレーブ      メイン        スレーブ
   マスターノード   データノード     データノード

     メイン      メイン        スレーブ
   マスターノード   データノード     データノード


              メイン        スレーブ
①各データノードを    データノード     データノード
定期的に監視
SPOFの存在しない構成
・自動データリカバリー機能
             ②障害発生を検知
             ③定期的に再起動していないか確認


              メイン        スレーブ
             データノード     データノード


    スレーブ      メイン        スレーブ
   マスターノード   データノード     データノード

     メイン      メイン        スレーブ
   マスターノード   データノード     データノード


              メイン        スレーブ
①各データノードを    データノード     データノード
定期的に監視
SPOFの存在しない構成
・自動データリカバリー機能
             ②障害発生を検知
             ③定期的に再起動していないか確認
                 再               ④再起動を検知
                 起
              メイン 動      スレーブ    ※別筐体で起動しても
             データノード     データノード   問題ない


    スレーブ      メイン        スレーブ
   マスターノード   データノード     データノード

     メイン      メイン        スレーブ
   マスターノード   データノード     データノード


              メイン        スレーブ
①各データノードを    データノード     データノード
定期的に監視
SPOFの存在しない構成
・自動データリカバリー機能
             ②障害発生を検知
             ③定期的に再起動していないか確認
                                 ④再起動を検知
              メイン        スレーブ    ※別筐体で起動しても
             データノード     データノード   問題ない

                                 ⑤片側のノードから
    スレーブ      メイン        スレーブ    データを復元
   マスターノード   データノード     データノード
                                 復元中もシステムは
                                 停止しない
     メイン      メイン        スレーブ
   マスターノード   データノード     データノード


              メイン        スレーブ
①各データノードを    データノード     データノード
定期的に監視
okuyamaとは?
・Javaで実装された分散キーバリューストア
・データ保存方式の選択が可能
・スケールアウトによる性能向上
・一括管理機能
・SPOFの存在しない構成
・ユニークな機能
ユニークな機能
・Key-Valueの関係だけじゃない
>Tagを登録することができる
 set (Key=“okuyama”, Tag={“oss”, ”kvs”}, Value=“分散KVS”);
 set (Key=“httpd”, Tag={“oss”, ”webserver”}, Value=“代表的WebSV”);


 getTagKeys(“oss”);

 >取得結果 {“okuyama”,             ”httpd”}
 タグを登録すると同じタグの登録されているデータのKeyを
 まとめて取得できる
      データのグルーピングが
      データのグルーピングが可能
ユニークな機能
                                   ■補足(誤解を招いてはいけないので)
                                    ロック機能を使用すると、Lockを管理するノードを稼動
                                   させることになります。
                                   その場合、そのノードは冗長化されないので、ノードダウン

・データロック機構                          時は、データの登録、取得は可能ですが、Lockが機能し
                                   なくなります。
                                   また現在は1ノードでLockを管理しているので、処理能力
                                   の妨げにもなります。

>全データノードをまたいでロック可能
 Lock実施
 lockData (Key=“okuyama”, Lock維持時間=10, Lockリトライ時間=5);


 ※別クライアントから
 set (Key=“okuyama”, Value=“Ver1.0.0“);
 >Lockを実施したクライアントがLock解除するか、
  Lock維持時間が経過するまで待たされる

 データ整合性を意識した処理が
 データ整合性を意識した処理が可能
    整合性   した処理
ユニークな機能
・データノードでJavaScriptを実行
>任意のJavaScriptを取得データに実行可能
 取得したいデータのKey値と、同時に実行したいJavaScriptを指定
 getValueScript (Key=“okuyama”, Script=“var dataValue; var retValue =
 dataValue.replace(’KVS‘, ’キーバリューストア’); var execRet = '1'; ”);

 >取得結果 {“分散キーバリューストア”}
 実行するJavaScriptのdataValueという変数にKey値から取得された
 値が代入されて実行される。クライアントは変数retValueの値が返され
 返却するかどうかは、変数execRetの値で決まる。
     データのフィルタリングや 加工を
     データのフィルタリングや、加工を
    データノードの資源を って実行可能
    データノードの資源を使って実行可能
デモ


     デモします
デモ
・デモマシン構成
                  DELL
                                          メイン
                  PowerEdge T110
 1000Base-T HUB                         マスターノード
                  CPU:Xeon(2.4GHz)
                  Memory:4GB             メイン
                                        データノード
                  HDD:SATA250GB
                         (7200rpm)×2     スレーブ
                  NIC:1000Base-T        データノード
                  OS:CentOS5.4(64bit)
                  DELL
                  PowerEdge T110         スレーブ
                                        マスターノード
                  CPU:Xeon(2.4GHz)
                  Memory:4GB             スレーブ
                  HDD:SATA250GB
                                        データノード
                      (7200rpm)×2        メイン
                  NIC:1000Base-T        データノード
                  OS:CentOS5.4(64bit)
デモ
・デモ内容
1.データ取得(100万件に対して)
  1分間に何回取得処理が出来るか試してみます

 Key値:”DataSaveKey1” ~ “DataSaveKey1000000”までの
      値からのランダム値
デモ
・デモ内容
1.データ取得(100万件に対して)
  1分間に何回取得処理が出来るか試してみます

 Key値:”DataSaveKey1” ~ “DataSaveKey1000000”までの
      値からのランダム値

・memcachedを同じ環境で実行すると
          を  環境で実行すると
  取得処理回数合計
 >取得処理回数合計 = 2,300,000/min
   秒当たりの
   秒当たりの処理数
 >1秒当たりの処理数 = 38,333/sec
 ■補足(誤解を招いてはいけないので)
  セミナーではOkyama専用クライアントでデモを行い600
 万/minでしたが、Memcachedクライアントでokuyamaに処
 理を実施した場合は、230万/minです。
デモ
・デモ内容
2.データ登録(100万件に対して)
  1分間に何回の登録処理を出来るか試してみます

Key値:”DataSaveKey1” ~ いけるところまで
Value値: “Value012345678901234567890123456789_1” ~
        いけるところまで
デモ
・デモ内容
2.データ登録(100万件に対して)
  1分間に何回の登録処理を出来るか試してみます

Key値:”DataSaveKey1” ~ いけるところまで
Value値: “Value012345678901234567890123456789_1” ~
        いけるところまで

 ・memcachedを同じ環境で実行すると
           を  環境で実行すると
   登録処理回数合計
  >登録処理回数合計 = 4,476,000/min
    秒当たりの
    秒当たりの処理数
  >1秒当たりの処理数 = 74,600/sec
デモ
・デモ内容
3.冗長化構成を試してみます
 データを取得している最中にシステムの
 50%をダウンさせてみます
神戸デジタル・ラボでは
・自社サービスの基盤として活用
Webサイト改ざん検知サービス
   サイト改ざん検知サービス
   サイト   検知
Webサイトをクローリングしページの変更を検知
通知するサービス
                              WWW

                    Webページ
  okuyama           aaaaa取得
              Webクローラ


            Webページを取得し、ページ情報からMD5値を作り
            出しokuyamaに保存。以降は取得したページのMD5
            値を比べることで変更を検知。変更内容の閲覧を実
            現するために、ページ情報もokuyamaに格納。
            情報量が加速度的に増加するため、okuyamaで対応。
最後に
・okuyamaユーザグループ作成しました
URL : http://groups.google.co.jp/group/kvs_okuyama
MAIL: kvs_okuyama@googlegroup.com


・神戸デジタル・ラボブースで展示して
いますので是非お立ち寄りください。
ご清聴ありがとうございました。

More Related Content

What's hot

Microsoft power point ai fss 製品概要-4-4 [互換モード]
Microsoft power point   ai fss 製品概要-4-4 [互換モード]Microsoft power point   ai fss 製品概要-4-4 [互換モード]
Microsoft power point ai fss 製品概要-4-4 [互換モード]
龍雄 炭田
 
Ai fss 製品概要 4-4
Ai fss 製品概要 4-4Ai fss 製品概要 4-4
Ai fss 製品概要 4-4
龍雄 炭田
 
C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio KumazawaC11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
Insight Technology, Inc.
 
[D25] 分散Key-Valueストア「okuyama」&「Riak」の同時書込み性能検証 by Yusuke Kuramata
[D25] 分散Key-Valueストア「okuyama」&「Riak」の同時書込み性能検証 by Yusuke Kuramata[D25] 分散Key-Valueストア「okuyama」&「Riak」の同時書込み性能検証 by Yusuke Kuramata
[D25] 分散Key-Valueストア「okuyama」&「Riak」の同時書込み性能検証 by Yusuke Kuramata
Insight Technology, Inc.
 
[db tech showcase Sapporo 2015] C26:Oracle Standard EditionでPhysical Standby ...
[db tech showcase Sapporo 2015] C26:Oracle Standard EditionでPhysical Standby ...[db tech showcase Sapporo 2015] C26:Oracle Standard EditionでPhysical Standby ...
[db tech showcase Sapporo 2015] C26:Oracle Standard EditionでPhysical Standby ...
Insight Technology, Inc.
 
書くべきは手順書ではなくスクリプトです。定型業務をスクリプトで自動化して楽をしよう
書くべきは手順書ではなくスクリプトです。定型業務をスクリプトで自動化して楽をしよう書くべきは手順書ではなくスクリプトです。定型業務をスクリプトで自動化して楽をしよう
書くべきは手順書ではなくスクリプトです。定型業務をスクリプトで自動化して楽をしよう
Nobuyuki Sasaki
 
バックアップとリストアの基礎
バックアップとリストアの基礎バックアップとリストアの基礎
バックアップとリストアの基礎
Kazuki Takai
 

What's hot (20)

Yahoo! JAPANとRiak
Yahoo! JAPANとRiakYahoo! JAPANとRiak
Yahoo! JAPANとRiak
 
これからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみようこれからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみよう
 
Microsoft power point ai fss 製品概要-4-4 [互換モード]
Microsoft power point   ai fss 製品概要-4-4 [互換モード]Microsoft power point   ai fss 製品概要-4-4 [互換モード]
Microsoft power point ai fss 製品概要-4-4 [互換モード]
 
Ai fss 製品概要 4-4
Ai fss 製品概要 4-4Ai fss 製品概要 4-4
Ai fss 製品概要 4-4
 
Amandaを使ってバックアップ管理を一元化
Amandaを使ってバックアップ管理を一元化Amandaを使ってバックアップ管理を一元化
Amandaを使ってバックアップ管理を一元化
 
Riak / Riak-CS(Enterprise版) ベンチマークしました
 Riak / Riak-CS(Enterprise版) ベンチマークしました Riak / Riak-CS(Enterprise版) ベンチマークしました
Riak / Riak-CS(Enterprise版) ベンチマークしました
 
TiDBのトランザクション
TiDBのトランザクションTiDBのトランザクション
TiDBのトランザクション
 
OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001
OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001
OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001
 
JPUG 沖縄支部セミナー資料(2013-04-27)
JPUG 沖縄支部セミナー資料(2013-04-27)JPUG 沖縄支部セミナー資料(2013-04-27)
JPUG 沖縄支部セミナー資料(2013-04-27)
 
C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio KumazawaC11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
 
[dbts-2014-tokyo] 目指せExadata!! Oracle DB高速化を目指した構成
[dbts-2014-tokyo] 目指せExadata!! Oracle DB高速化を目指した構成[dbts-2014-tokyo] 目指せExadata!! Oracle DB高速化を目指した構成
[dbts-2014-tokyo] 目指せExadata!! Oracle DB高速化を目指した構成
 
[D25] 分散Key-Valueストア「okuyama」&「Riak」の同時書込み性能検証 by Yusuke Kuramata
[D25] 分散Key-Valueストア「okuyama」&「Riak」の同時書込み性能検証 by Yusuke Kuramata[D25] 分散Key-Valueストア「okuyama」&「Riak」の同時書込み性能検証 by Yusuke Kuramata
[D25] 分散Key-Valueストア「okuyama」&「Riak」の同時書込み性能検証 by Yusuke Kuramata
 
[db tech showcase Sapporo 2015] C26:Oracle Standard EditionでPhysical Standby ...
[db tech showcase Sapporo 2015] C26:Oracle Standard EditionでPhysical Standby ...[db tech showcase Sapporo 2015] C26:Oracle Standard EditionでPhysical Standby ...
[db tech showcase Sapporo 2015] C26:Oracle Standard EditionでPhysical Standby ...
 
外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張
 
RiakCSとmixiプライベートクラウド環境
RiakCSとmixiプライベートクラウド環境RiakCSとmixiプライベートクラウド環境
RiakCSとmixiプライベートクラウド環境
 
20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)
 
書くべきは手順書ではなくスクリプトです。定型業務をスクリプトで自動化して楽をしよう
書くべきは手順書ではなくスクリプトです。定型業務をスクリプトで自動化して楽をしよう書くべきは手順書ではなくスクリプトです。定型業務をスクリプトで自動化して楽をしよう
書くべきは手順書ではなくスクリプトです。定型業務をスクリプトで自動化して楽をしよう
 
バックアップとリストアの基礎
バックアップとリストアの基礎バックアップとリストアの基礎
バックアップとリストアの基礎
 
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについてCentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
 
OSC東京2013/Spring_JPUG資料
OSC東京2013/Spring_JPUG資料OSC東京2013/Spring_JPUG資料
OSC東京2013/Spring_JPUG資料
 

Viewers also liked

Viewers also liked (6)

Doc and Error Handling
Doc and Error HandlingDoc and Error Handling
Doc and Error Handling
 
独りガラパゴス開発
独りガラパゴス開発独りガラパゴス開発
独りガラパゴス開発
 
エラーハンドリングモデル考察
エラーハンドリングモデル考察エラーハンドリングモデル考察
エラーハンドリングモデル考察
 
[計算シミュレーション勉強会#1] 粒子法の復習(陽解法と陰解法の比較から)
[計算シミュレーション勉強会#1] 粒子法の復習(陽解法と陰解法の比較から)[計算シミュレーション勉強会#1] 粒子法の復習(陽解法と陰解法の比較から)
[計算シミュレーション勉強会#1] 粒子法の復習(陽解法と陰解法の比較から)
 
並列プログラミング 入門!&おさらい!
並列プログラミング入門!&おさらい!並列プログラミング入門!&おさらい!
並列プログラミング 入門!&おさらい!
 
MPIによる並列計算
MPIによる並列計算MPIによる並列計算
MPIによる並列計算
 

Similar to 2010/07/09 osc kansai-kvsokuyama

20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy
Takahiro Iwase
 
COD2012 T2/T3 : 実機で試す SQL Server の現状取得
COD2012 T2/T3 : 実機で試す SQL Server の現状取得COD2012 T2/T3 : 実機で試す SQL Server の現状取得
COD2012 T2/T3 : 実機で試す SQL Server の現状取得
Masayuki Ozawa
 
Scalr hands on (第3回SCALR勉強会で利用、第1回資料の新版)
Scalr hands on (第3回SCALR勉強会で利用、第1回資料の新版)Scalr hands on (第3回SCALR勉強会で利用、第1回資料の新版)
Scalr hands on (第3回SCALR勉強会で利用、第1回資料の新版)
Haruhiko KAJIKAWA
 

Similar to 2010/07/09 osc kansai-kvsokuyama (20)

Kvs okuyama-20110818
Kvs okuyama-20110818Kvs okuyama-20110818
Kvs okuyama-20110818
 
20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy
 
20110708 dist_study okuyama
20110708 dist_study okuyama20110708 dist_study okuyama
20110708 dist_study okuyama
 
COD2012 T2/T3 : 実機で試す SQL Server の現状取得
COD2012 T2/T3 : 実機で試す SQL Server の現状取得COD2012 T2/T3 : 実機で試す SQL Server の現状取得
COD2012 T2/T3 : 実機で試す SQL Server の現状取得
 
Zabbixのパフォーマンスチューニング & インストール時の注意点
Zabbixのパフォーマンスチューニング & インストール時の注意点Zabbixのパフォーマンスチューニング & インストール時の注意点
Zabbixのパフォーマンスチューニング & インストール時の注意点
 
Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Manager4.0とNameNode-HAセミナー資料Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Manager4.0とNameNode-HAセミナー資料
 
NETGEAR ReadyNASの5段階ファイル保護機能
NETGEAR ReadyNASの5段階ファイル保護機能NETGEAR ReadyNASの5段階ファイル保護機能
NETGEAR ReadyNASの5段階ファイル保護機能
 
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説MongoDB Configパラメータ解説
MongoDB Configパラメータ解説
 
Scalr hands on (第3回SCALR勉強会で利用、第1回資料の新版)
Scalr hands on (第3回SCALR勉強会で利用、第1回資料の新版)Scalr hands on (第3回SCALR勉強会で利用、第1回資料の新版)
Scalr hands on (第3回SCALR勉強会で利用、第1回資料の新版)
 
Okuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ssOkuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ss
 
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
 
NETGEAR ReadyNAS - 5レベルデータプロテクション
NETGEAR ReadyNAS - 5レベルデータプロテクションNETGEAR ReadyNAS - 5レベルデータプロテクション
NETGEAR ReadyNAS - 5レベルデータプロテクション
 
使い捨て python コードの書き方
使い捨て python コードの書き方使い捨て python コードの書き方
使い捨て python コードの書き方
 
使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!
 
Flume
FlumeFlume
Flume
 
ioMemoryとAtomic Writeによるデータベース高速化
ioMemoryとAtomic Writeによるデータベース高速化ioMemoryとAtomic Writeによるデータベース高速化
ioMemoryとAtomic Writeによるデータベース高速化
 
Amandaを利用した仮想マシンバックアップ
Amandaを利用した仮想マシンバックアップAmandaを利用した仮想マシンバックアップ
Amandaを利用した仮想マシンバックアップ
 
講座Linux入門・サーバOSとしてのLinux
講座Linux入門・サーバOSとしてのLinux講座Linux入門・サーバOSとしてのLinux
講座Linux入門・サーバOSとしてのLinux
 
MySQLインストールのお作法
MySQLインストールのお作法MySQLインストールのお作法
MySQLインストールのお作法
 
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...
 

More from Takahiro Iwase (8)

Re port aws_reinvent_161213_slideshare
Re port aws_reinvent_161213_slideshareRe port aws_reinvent_161213_slideshare
Re port aws_reinvent_161213_slideshare
 
20151205 中国地方db勉強会 dbm_fs
20151205 中国地方db勉強会 dbm_fs20151205 中国地方db勉強会 dbm_fs
20151205 中国地方db勉強会 dbm_fs
 
20140418 info talkセミナー資料
20140418 info talkセミナー資料20140418 info talkセミナー資料
20140418 info talkセミナー資料
 
20131113_mysql_on_分散fsセミナー資料
20131113_mysql_on_分散fsセミナー資料20131113_mysql_on_分散fsセミナー資料
20131113_mysql_on_分散fsセミナー資料
 
20121205 nosql(okuyama fs)セミナー資料
20121205 nosql(okuyama fs)セミナー資料20121205 nosql(okuyama fs)セミナー資料
20121205 nosql(okuyama fs)セミナー資料
 
20120405 setsunaセミナー
20120405 setsunaセミナー20120405 setsunaセミナー
20120405 setsunaセミナー
 
20120317 IT系勉強会 in 神戸
20120317 IT系勉強会 in 神戸20120317 IT系勉強会 in 神戸
20120317 IT系勉強会 in 神戸
 
okuyama_20101101_nosqlafternoon
okuyama_20101101_nosqlafternoonokuyama_20101101_nosqlafternoon
okuyama_20101101_nosqlafternoon
 

Recently uploaded

Recently uploaded (7)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

2010/07/09 osc kansai-kvsokuyama