2010/07/09 osc kansai-kvsokuyama

Post on 25-May-2015

1.735 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

2010/07/09 OSC@Kansai KyotoKey Value Store Okuyama Seminar Document

TRANSCRIPT

サーバサーバサーバサーバ2222台台台台でもでもでもでも構築構築構築構築できるできるできるできる分散分散分散分散キーバリューストアキーバリューストアキーバリューストアキーバリューストア

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

Key2 = Value2

②メモリに反映

[データノードのメモリ]

データノード

登録,Key1,Value1

登録,Key2,Value2

登録,Key3,Value3

登録,Key4,Value4

登録,Key5,Value5

削除,Key5,Value5

[履歴記録ファイル]

①記録ファイルから順次操作を読み込み

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

Key1 = Value1

Key2 = Value2

Key3 = Value3

②メモリに反映

[データノードのメモリ]

データノード

登録,Key1,Value1

登録,Key2,Value2

登録,Key3,Value3

登録,Key4,Value4

登録,Key5,Value5

削除,Key5,Value5

[履歴記録ファイル]

①記録ファイルから順次操作を読み込み

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

Key1 = Value1

Key2 = Value2

Key3 = Value3

Key4 = Value4

②メモリに反映

[データノードのメモリ]

データノード

登録,Key1,Value1

登録,Key2,Value2

登録,Key3,Value3

登録,Key4,Value4

登録,Key5,Value5

削除,Key5,Value5

[履歴記録ファイル]

①記録ファイルから順次操作を読み込み

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

Key1 = Value1

Key2 = Value2

Key3 = Value3

Key4 = Value4

Key5 = Value5

②メモリに反映

[データノードのメモリ]

データノード

登録,Key1,Value1

登録,Key2,Value2

登録,Key3,Value3

登録,Key4,Value4

登録,Key5,Value5

削除,Key5,Value5

[履歴記録ファイル]

①記録ファイルから順次操作を読み込み

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

Key1 = Value1

Key2 = Value2

Key3 = Value3

Key4 = Value4

Key5 = Value5

②メモリに反映

[データノードのメモリ]

データノード

登録,Key1,Value1

登録,Key2,Value2

登録,Key3,Value3

登録,Key4,Value4

登録,Key5,Value5

削除,Key5,Value5

[履歴記録ファイル]

①記録ファイルから順次操作を読み込み

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

Key1 = Value1

Key2 = Value2

Key3 = Value3

Key4 = Value4

②メモリに反映

[データノードのメモリ]

データノード

登録,Key1,Value1

登録,Key2,Value2

登録,Key3,Value3

登録,Key4,Value4

登録,Key5,Value5

削除,Key5,Value5

[履歴記録ファイル]

①記録ファイルから順次操作を読み込み

復元完了!!

データ保存方式の選択が可能・それぞれの特性

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

・仕組み

データへの操作を全てファイルに時系列に記録

記録ファイルからデータを復元

・特徴

データの永続化が可能で且つ、起動後は高速に動く

保存出来るデータ量はメモリに依存

データ保存方式の選択が可能・それぞれの特性

3.データ本体をファイルに保存

・仕組み

データ永続化の仕組みは「2.」と同じ

Key値のみメモリに保持し、Value値はファイルに保存

データ保存方式の選択が可能・Key値とデータの場所をメモリに保持

Key5 = Value5登録

データノード

「2.」の仕組みを利用

[データファイル]

Value1

Value2

Value3

Value4

Value5

[データノードのメモリ]

Key5 = 5行目

データファイルにValue値を保存

メモリにKey値とValue値のファイル内での

位置を保持

データ保存方式の選択が可能・それぞれの特性

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実施

lockData (Key=“okuyama”, Lock維持時間=10, Lockリトライ時間=5);

※別クライアントから

set (Key=“okuyama”, Value=“Ver1.0.0“);

>Lockを実施したクライアントがLock解除するか、

Lock維持時間が経過するまで待たされる

データデータデータデータ整合性整合性整合性整合性をををを意識意識意識意識したしたしたした処理処理処理処理がががが可能可能可能可能

■補足(誤解を招いてはいけないので)

ロック機能を使用すると、Lockを管理するノードを稼動させることになります。

その場合、そのノードは冗長化されないので、ノードダウン時は、データの登録、取得は可能ですが、Lockが機能しなくなります。

また現在は1ノードで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

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)

1000Base-T HUB

デモ・デモ内容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ページaaaaa取得

神戸デジタル・ラボでは・自社サービスの基盤として活用

Webサイトサイトサイトサイト改改改改ざんざんざんざん検知検知検知検知サービスサービスサービスサービス

Webサイトをクローリングしページの変更を検知

通知するサービス

Webクローラ

W WW

okuyama

Webページを取得し、ページ情報からMD5値を作り出しokuyamaに保存。以降は取得したページのMD5

値を比べることで変更を検知。変更内容の閲覧を実現するために、ページ情報もokuyamaに格納。

情報量が加速度的に増加するため、okuyamaで対応。

最後に・okuyamaユーザグループ作成しました

URL : http://groups.google.co.jp/group/kvs_okuyama

MAIL: kvs_okuyama@googlegroup.com

・神戸デジタル・ラボブースで展示して

いますので是非お立ち寄りください。

ご清聴ありがとうございました。

top related