インメモリデータグリッド uCosminexus Elastic Application Data store ユーザーズガイド
目次
用語
索引
前へ
2 / 463
次へ
表紙
前書き
変更内容
はじめに
第1編 解説
1. uCosminexus Elastic Application Data storeとは
1.1 ITシステムの特性に合わせて,大量データを効率的に処理するインメモリデータグリッド
1.2 EADsの概要
1.2.1 シンプルなデータ管理,シンプルなインタフェース
1.2.2 メモリ上でデータを管理
1.2.3 複数サーバで構成される大容量のメモリ領域
1.3 EADsの特長
1.3.1 高いスケーラビリティとスモールスタートへの対応
1.3.2 データの多重化によるシステムの高可用性と耐障害性の実現
1.3.3 高速データ処理によるレスポンス性能の向上
1.3.4 ユーザのニーズに応じた柔軟なデータ操作の実現
1.3.5 ディスク領域を使用したデータの永続化
1.4 EADsの適用ケース
1.4.1 ライトバッファとしての利用
1.4.2 リードキャッシュとしての利用
1.5 対象ユーザの作業項目とマニュアルの対応
2. アーキテクチャ
2.1 EADsの構成
2.1.1 システム構成
2.1.2 プロセス構成
2.2 EADsの通信処理の仕組み
2.2.1 通信に使用するプロトコル
2.2.2 通信で使用するバッファ
2.3 keyとvalueを格納する領域
2.3.1 キャッシュの種類(キャッシュタイプ)
2.4 データアクセス
2.4.1 データの格納(put)
2.4.2 データの新規格納(create)
2.4.3 データの更新(update)
2.4.4 データの置換(replace)
2.4.5 データの取得(get)
2.4.6 データの削除(remove)
2.4.7 EADsサーバの位置を意識しないデータアクセス
2.4.8 データアクセスの流れ
2.4.9 データアクセス時の排他制御
2.5 コンシステント・ハッシングによるデータの分散配置
2.5.1 データの分散配置の概要
2.5.2 データの分散配置の詳細
2.6 特定のEADsサーバへのデータ配置(keyのグルーピング)
2.6.1 keyのグルーピング
2.6.2 keyをグルーピングした場合のデータの分散配置
2.7 ユーザファンクションによる効率的なデータ処理
2.7.1 前提条件
2.7.2 ユーザファンクションの仕組み
2.8 データ操作を契機とするユーザ処理の実行(ユーザイベントハンドラ)
2.8.1 ユーザイベントハンドラが動作するケース,動作しないケース
2.8.2 ユーザイベントハンドラの仕組み
2.9 データの多重化
2.9.1 データの多重化の概要
2.9.2 データの多重化による,障害時の処理の継続
2.10 クラスタ監視
2.10.1 ハートビートの送信によるクラスタ監視の概要
2.10.2 一定数の同意によって確定するEADsサーバダウン
2.11 EADsクライアントによるクラスタ構成情報の更新確認
2.12 クラスタおよびEADsサーバの状態遷移
2.12.1 クラスタの状態遷移
2.12.2 EADsサーバの状態遷移
2.13 スレッドプールおよびコネクションプールを使用したスループットの向上
2.13.1 スレッドプール
2.13.2 コネクションプール
第2編 設計・構築
3. システム設計・構築の流れ
3.1 システム設計・構築の流れ
3.1.1 必要なリソースを確認する
3.1.2 インストールおよびセットアップを行う
3.1.3 環境依存パラメタを設計する
3.1.4 チューニングパラメタを設計する
4. 必要なリソースを確認する
4.1 メモリ使用量を見積もる
4.1.1 メモリ構成
4.1.2 Javaヒープサイズを見積もる
4.1.3 Explicitヒープサイズを見積もる
4.1.4 EADsサーバのメモリ使用量を見積もる
4.2 ディスク使用量を見積もる
4.2.1 EADsサーバのディスク使用量を見積もる
4.2.2 EADsクライアントのディスク使用量を見積もる
4.3 スレッド数とファイルディスクリプタ数を見積もる
4.3.1 スレッド数を見積もる
4.3.2 ファイルディスクリプタ数を見積もる
4.4 キャッシュファイルの容量を見積もる
4.4.1 キャッシュデータファイルのサイズおよび面数を見積もる
4.4.2 キャッシュインデックスファイルのサイズを見積もる
5. インストールおよびセットアップを行う(EADsサーバ)
5.1 EADsサーバをインストールする
5.1.1 インストール前にすること
5.1.2 インストール手順
5.1.3 インストール後にすること
5.2 EADsサーバをセットアップする
5.2.1 運用ディレクトリを作成する
5.2.2 定義ファイルを編集する
5.2.3 APを配置する
5.3 テストを行う
5.3.1 EADsサーバを開始する(キャッシュを新規に作成する)
5.3.2 コマンドを使用してテスト用のデータを操作する
5.3.3 EADsサーバを終了する
5.4 EADsサーバをアンセットアップする
5.5 EADsサーバをアンインストールする
6. インストールおよびセットアップを行う(EADsクライアント)
6.1 EADsクライアントをインストールする
6.1.1 インストール後にすること
6.2 EADsクライアントをセットアップする
6.2.1 APを配置する
6.2.2 クライアント定義ファイルを編集する
6.3 EADsクライアントをアンインストールする
7. 環境依存パラメタを設計する(EADsサーバ)
7.1 定義ファイルの種類(EADsサーバ)
7.2 定義ファイルの形式
7.3 通信に依存するパラメタの設計
7.3.1 IPアドレスまたはホスト名,およびポート番号の設定
7.3.2 通信に依存するパラメタ
7.4 ログファイルに依存するパラメタの設計
7.4.1 ログファイルの種類
7.4.2 ファイルの出力先の設定
7.4.3 ファイルサイズおよびファイル数の設定
7.4.4 統計情報ファイルのローテーションの設定
7.4.5 ログファイルに依存するパラメタ
7.5 クラスタ構成に依存するパラメタの設計
7.5.1 EADsサーバの位置の設定
7.5.2 データの多重度の設定
7.5.3 クラスタ構成に依存するパラメタ
7.6 バックアップファイルに依存するパラメタの設計
7.6.1 ファイルの出力先の設定
7.6.2 ストアデータファイルの世代数の設定
7.6.3 バックアップファイルに依存するパラメタ
7.7 キャッシュの運用に依存するパラメタの設計
7.7.1 キャッシュタイプごとのパラメタの設定
7.7.2 キャッシュファイルの種類と格納先の設定
7.7.3 キャッシュファイルのサイズの設定
7.7.4 キャッシュの運用に依存するパラメタ
8. 環境依存パラメタを設計する(EADsクライアント)
8.1 定義ファイルの種類(EADsクライアント)
8.2 定義ファイルの形式
8.3 通信に依存するパラメタの設計
8.3.1 接続先EADsサーバ,IPアドレスまたはホスト名,およびポート番号の設定
8.3.2 通信に依存するパラメタ
8.4 ログファイルに依存するパラメタの設計
8.4.1 ログファイルの種類
8.4.2 ファイルの出力先の設定
8.4.3 ファイルサイズおよびファイル数の設定
8.4.4 ログファイルに依存するパラメタ
9. チューニングパラメタを設計する
9.1 メモリ・バッファに関連するパラメタの設計
9.1.1 メモリサイズの設定
9.1.2 バッファサイズの設定
9.1.3 メモリ・バッファに関連するパラメタ
9.2 スレッドプールおよびコネクションプールに関連するパラメタの設計
9.2.1 最大同時接続数の設定
9.2.2 最大同時実行スレッド数の設定
9.2.3 スレッドプールおよびコネクションプールに関連するパラメタ
9.3 タイムアウトに関連するパラメタの設計
9.3.1 通信を監視するタイマの設定
9.3.2 クラスタを監視するタイマの設定
9.3.3 タイムアウトに関連するパラメタ
9.4 コンパクションに関連するパラメタの設計
9.4.1 コンパクションの効果のしきい値の設定
9.4.2 コンパクションに関連するパラメタ
第3編 運用
10. 通常運用
10.1 システム運用管理者が行うこと
10.2 EADsサーバを開始する(キャッシュを新規に作成する場合)
10.2.1 EADsサーバを開始する手順(メモリ上にキャッシュを作成する)
10.2.2 EADsサーバを開始する手順(ディスク上にキャッシュを作成する)
10.2.3 複数のキャッシュを使用する場合の注意点
10.3 EADsサーバを開始する(ファイルからデータを読み込んでキャッシュを作成する場合)
10.3.1 EADsサーバを開始する手順(メモリ上にキャッシュを作成する)
10.3.2 EADsサーバを開始する手順(ディスク上のキャッシュを再開する)
10.4 EADsサーバを終了する(メモリ上のデータを破棄する場合)
10.4.1 EADsサーバを終了する手順
10.5 EADsサーバを終了する(メモリ上のデータをファイルに書き出す場合)
10.5.1 EADsサーバを終了する手順
10.6 EADsサーバを終了する(ディスク上のキャッシュを終了する場合)
10.6.1 EADsサーバを終了する手順
10.7 クラスタおよびEADsサーバの状態を確認する
10.8 キャッシュの一覧を表示する
10.9 キャッシュデータファイルの使用量を削減する(キャッシュデータファイルをコンパクションする)
10.9.1 キャッシュデータファイルをコンパクションする手順
10.9.2 コンパクションを中断する手順
11. 保守運用
11.1 EADsサーバをクラスタに追加したい
11.1.1 EADsサーバをクラスタに追加する手順(メモリ上のキャッシュだけを使用する場合)
11.1.2 EADsサーバをクラスタに追加する手順(ディスク上のキャッシュを使用する場合)
11.2 EADsサーバをクラスタから削除したい
11.2.1 EADsサーバをクラスタから削除する手順(メモリ上のキャッシュだけを使用する場合)
11.2.2 EADsサーバをクラスタから削除する手順(ディスク上のキャッシュを使用する場合)
11.3 定義内容を変更したい
11.3.1 定義内容を変更する手順
11.3.2 定義内容を変更する場合の注意点
11.4 キャッシュを追加または削除したい
11.4.1 メモリキャッシュを追加または削除する手順
11.4.2 ディスクキャッシュおよび2Wayキャッシュを追加または削除する手順
11.5 バックアップを取得したい
11.5.1 データのバックアップを取得する手順
11.6 ストアデータファイルを管理したい
11.6.1 ストアデータファイルの確認および削除手順
11.7 データの格納先を確認したい
11.8 ユーザファンクションまたはユーザイベントハンドラが,各EADsサーバに正しく配置されているかどうか,また,実行できるかどうか確認したい
11.8.1 ユーザファンクションの実行可否を表示する
11.8.2 ユーザイベントハンドラの実行可否を表示する
11.9 クラスタを稼働させたまま,EADsサーバの修正パッチを適用したい
11.9.1 EADsサーバの修正パッチを適用する手順
11.10 統計情報を取得したい
11.10.1 統計情報の格納先
11.10.2 統計情報(eads_stats.csv)
11.10.3 キャッシュの統計情報(eads_cache_stats.csv)
11.10.4 ユーザファンクションの統計情報(eads_function_stats.csv)
11.10.5 ユーザイベントハンドラの統計情報(eads_event_stats.csv)
11.11 キャッシュファイルを管理したい
11.11.1 キャッシュファイルの確認および削除手順
12. 障害運用
12.1 障害に備えた運用(障害監視と障害検知)
12.1.1 メッセージの監視
12.1.2 EADsサーバプロセスの監視
12.2 障害発生時のシステム運用管理者の作業
12.2.1 縮退状態が発生した場合
12.2.2 クラスタ動作不能(NOT_AVAILABLE)またはクラスタ一部稼働中(PARTIALLY_AVAILABLE)の場合
12.2.3 レスポンス低下の報告があった場合
12.3 障害情報の取得方法
12.3.1 原因調査に必要な障害情報
12.3.2 統計情報の取得方法
12.3.3 スレッドダンプの取得方法
12.3.4 PRFトレースの取得方法
13. 障害原因の調査
13.1 レスポンス低下の原因調査
13.1.1 原因調査の流れ
13.1.2 原因の調査方法
13.2 PRFトレースの仕組みと出力される情報
13.2.1 PRFトレースの仕組み
13.2.2 PRFトレースに出力される情報
14. コマンドリファレンス
14.1 コマンドの格納先
14.2 EADsのコマンド
14.2.1 ezstart(EADsサーバの開始)
14.2.2 ezserver(EADsサーバのフォアグラウンドでの開始)
14.2.3 eztool(クラスタの運用操作)
14.3 eztoolコマンドのサブコマンド
14.3.1 コマンド間の排他制御
14.3.2 close(クラスタの閉塞化)
14.3.3 open(クラスタの閉塞解除)
14.3.4 status(クラスタ状態の確認)
14.3.5 listcache(キャッシュの一覧表示)
14.3.6 listesd(ストアデータファイルの一覧表示)
14.3.7 getposition(データの格納先の表示)
14.3.8 unlock(排他解除)
14.3.9 createcache(キャッシュの作成)
14.3.10 deletecache(キャッシュの削除)
14.3.11 export(データの書き出し)
14.3.12 import(データの読み込み)
14.3.13 deleteesd(ストアデータファイルの削除)
14.3.14 put(指定したデータの格納)
14.3.15 get(指定したデータの取得)
14.3.16 remove(指定したデータの削除)
14.3.17 listfunc(ユーザファンクションの実行可否の表示)
14.3.18 execfunc(ユーザファンクションの実行)
14.3.19 listevent(ユーザイベントハンドラの実行可否の表示)
14.3.20 listecf(永続データに関する情報の一覧表示)
14.3.21 resume(キャッシュの再開)
14.3.22 importecf(永続データの再配置)
14.3.23 deleteecf(キャッシュファイルの削除)
14.3.24 compaction(キャッシュデータファイルのコンパクション)
14.3.25 cprfed(PRFトレース情報の編集出力)
14.3.26 threaddump(スレッドダンプの出力)
14.3.27 snapshot(ログ,設定情報,ハードウェア情報,およびネットワーク情報の収集)
14.3.28 stop(クラスタの終了)
14.3.29 forcestop(EADsサーバの強制終了)
14.3.30 isolate(EADsサーバの縮退)
第4編 AP開発
15. AP開発の流れ
15.1 AP開発の流れ
15.1.1 開発環境を構築する
15.1.2 APを作成する
15.1.3 APをテストする
15.1.4 作成したAPを実行環境に移行する
15.2 APを開発する前に知っておくべき前提条件
15.2.1 APの作成言語とEADsクライアント
15.2.2 key,value,キャッシュ名,EADsクライアント名に指定できるデータ
15.2.3 予約パッケージ名および予約システムプロパティ名(Java言語の場合)
16. Developerを構築する
16.1 Developerに必要なリソースを確認する
16.2 Developerのインストールおよびセットアップを行う
16.2.1 インストール手順
16.2.2 インストール後にすること
16.3 Developer用EADsサーバをセットアップする
16.3.1 Developer用EADsサーバの運用ディレクトリを作成する
16.3.2 Developer用EADsサーバで使用する定義ファイルを確認する
16.4 Developer用EADsクライアントをセットアップする
16.4.1 Developer用クライアント定義ファイルを編集する
16.4.2 サンプルプログラムを使用する
16.5 Developerをアンインストールする
16.6 Developerで実行できるコマンドおよびタスク
16.6.1 EADsのコマンド
16.6.2 Apache Antのタスク
16.6.3 Apache Antのタスクの格納先
16.6.4 Developer用EADsサーバを開始する
16.6.5 Developer用EADsサーバの状態を確認する
16.6.6 キャッシュを作成する
16.6.7 キャッシュを削除する
16.6.8 ソースプログラムをコンパイルする
16.6.9 ユーザファンクションまたはユーザイベントハンドラをデプロイする
16.6.10 Developer用EADsサーバを終了する
17. クライアントAPを作成する(Java言語)
17.1 ソースプログラムを作成する(Java言語)
17.1.1 キャッシュへのアクセスとデータ操作の流れ
17.2 クライアントAP作成上の留意事項(Java言語)
17.2.1 EADsクライアントの初期設定に関する留意事項
17.2.2 キャッシュへのアクセス開始に関する留意事項
17.2.3 データ操作に関する留意事項
17.2.4 キャッシュへのアクセス終了に関する留意事項
17.2.5 EADsクライアントの使用終了に関する留意事項
17.3 ソースプログラムをコンパイルする(Java言語)
18. ユーザファンクションを作成する
18.1 ユーザファンクションを作成する前に知っておくべき前提条件
18.1.1 ユーザファンクションの作成言語
18.1.2 ユーザファンクションの実行方法の種類
18.1.3 EADsサーバが使用するJavaクラスローダ
18.1.4 ユーザファンクションの作成の流れ
18.2 ソースプログラムを作成する(ユーザファンクション)
18.2.1 ユーザファンクションの流れ
18.3 ユーザファンクション作成上の留意事項
18.3.1 jarファイル名に関する留意事項
18.3.2 パッケージ名に関する留意事項
18.3.3 ユーザファンクションの実装に関する留意事項
18.3.4 効率的にkeyの一覧を取得する方法
18.4 ファンクション定義ファイルを作成する(任意)
18.5 ソースプログラムをコンパイルする(ユーザファンクション)
18.5.1 ユーザファンクションをコンパイルする手順
18.6 ユーザファンクションをパッケージングする
18.6.1 ユーザファンクションをパッケージングする手順
18.7 ユーザファンクションをデプロイする
18.7.1 ユーザファンクションをデプロイする手順
18.8 ユーザファンクションを実行する
18.8.1 ユーザファンクションの呼び出し
18.8.2 ユーザログへの出力
18.8.3 ユーザファンクション運用上の留意事項
18.9 実行環境に配布する
19. ユーザイベントハンドラを作成する
19.1 ユーザイベントハンドラを作成する前に知っておくべき前提条件
19.1.1 ユーザイベントハンドラの作成言語
19.1.2 ユーザイベントハンドラが動作するケース,動作しないケース
19.1.3 ユーザイベントハンドラが動作する条件の限定
19.1.4 ユーザイベントハンドラの優先度の設定
19.1.5 ユーザイベントハンドラの作成の流れ
19.2 ソースプログラムを作成する(ユーザイベントハンドラ)
19.2.1 ユーザイベントハンドラの流れ
19.3 ユーザイベントハンドラ作成上の留意事項
19.3.1 パッケージ名に関する留意事項
19.3.2 ユーザイベントハンドラの実装に関する留意事項
19.4 ソースプログラムをコンパイルする(ユーザイベントハンドラ)
19.4.1 ユーザイベントハンドラをコンパイルする手順
19.5 ユーザイベントハンドラをパッケージングする
19.5.1 ユーザイベントハンドラをパッケージングする手順
19.6 ユーザイベントハンドラをデプロイする
19.6.1 ユーザイベントハンドラをデプロイする手順
19.7 ユーザイベントハンドラを実行する
19.7.1 ユーザイベントハンドラの実行
19.7.2 ユーザログへの出力
19.7.3 ユーザイベントハンドラ運用上の留意事項
19.8 実行環境に配布する
20. APIリファレンス(Java言語)
20.1 Java言語のクライアントライブラリが提供するクラス
20.1.1 Cacheクラス
20.1.2 CacheManagerクラス
20.1.3 Nodeクラス
20.1.4 CacheExceptionクラス
20.1.5 InitializeExceptionクラス
20.1.6 InternalClientExceptionクラス
20.1.7 InternalServerExceptionクラス
20.1.8 ServerCommunicationExceptionクラス
20.1.9 UserOperationExceptionクラス
20.2 ユーザファンクションで使用できるAPI
20.2.1 Functionインタフェース
20.2.2 FunctionContextインタフェース
20.2.3 InitConfigインタフェース
20.2.4 ClientInfoインタフェース
20.2.5 ServerInfoインタフェース
20.2.6 Storeインタフェース
20.2.7 Groupインタフェース
20.2.8 Keyインタフェース
20.2.9 UserLoggerインタフェース
20.2.10 EADsStoreExceptionクラス
20.2.11 InternalServerExceptionクラス
20.2.12 UserOperationExceptionクラス
20.2.13 列挙型CacheType
20.3 ユーザイベントハンドラで使用できるAPI
20.3.1 EventHandlerインタフェース
20.3.2 EventContextインタフェース
20.3.3 OperationFilterアノテーション
20.3.4 DataFilterアノテーション
20.3.5 Priorityアノテーション
20.3.6 列挙型OperationType
20.3.7 列挙型MethodType
20.3.8 列挙型PriorityLevel
21. クライアントAPを作成する(C言語)
21.1 ソースプログラムを作成する(C言語)
21.1.1 キャッシュへのアクセスとデータ操作の流れ
21.2 クライアントAP作成上の留意事項(C言語)
21.2.1 EADsクライアントの初期設定に関する留意事項
21.2.2 キャッシュへのアクセス開始に関する留意事項
21.2.3 データ操作に関する留意事項
21.2.4 キャッシュへのアクセス終了に関する留意事項
21.2.5 EADsクライアントの終了に関する留意事項
21.3 ソースプログラムをコンパイルする(C言語)
22. APIリファレンス(C言語)
22.1 C言語のクライアントライブラリが提供する関数
22.1.1 ead_init_client()(EADsクライアントの初期設定)
22.1.2 ead_init_client_n()(EADsクライアントの初期設定)
22.1.3 ead_start_cache()(キャッシュへのアクセス開始)
22.1.4 ead_stop_cache()(キャッシュへのアクセス終了)
22.1.5 ead_terminate_client()(EADsクライアントの終了)
22.1.6 ead_put()(keyとvalueの格納)
22.1.7 ead_put_array_value()(複数のvalueの連結格納)
22.1.8 ead_create()(keyとvalueの新規格納)
22.1.9 ead_update()(valueの更新)
22.1.10 ead_replace()(valueの置換)
22.1.11 ead_get()(valueの取得)
22.1.12 ead_remove()(valueの削除)
22.1.13 ead_execute_function()(グループ指定によるユーザファンクションの実行)
22.1.14 ead_execute_function_rt()(グループおよび受信タイムアウト指定によるユーザファンクションの実行)
22.1.15 ead_execute_node_function()(EADsサーバ指定によるユーザファンクションの実行)
22.1.16 ead_execute_node_function_rt()(EADsサーバおよび受信タイムアウト指定によるユーザファンクションの実行)
22.1.17 ead_get_nodelist()(接続先EADsサーバの情報取得)
22.1.18 ead_get_node()(指定したkeyが格納されている接続先EADsサーバの情報取得)
22.1.19 ead_get_slave_nodelist()(データのコピー先EADsサーバの情報取得)
22.1.20 ead_value_element構造体(value情報)
22.1.21 ead_object構造体(ユーザファンクションで使用するオブジェクト)
22.1.22 ead_nodelist構造体(EADsサーバ情報)
22.1.23 ead_node構造体(EADsサーバ指定のユーザファンクションで使用するオブジェクト)
22.1.24 ead_address構造体(EADsサーバのアドレス情報)
22.2 クライアントライブラリのエラーコード(C言語)
第5編 よく使用する一覧集・メッセージ
23. よく使用する一覧集
23.1 パラメタ一覧
23.1.1 EADsサーバで使用する定義ファイル
23.1.2 EADsクライアントで使用する定義ファイル
23.2 コマンド一覧
23.3 API一覧
23.3.1 Java言語のライブラリが提供するAPI
23.3.2 C言語のクライアントライブラリが提供する関数
23.4 クライアントライブラリが出力するエラーコード
23.4.1 Java言語のクライアントライブラリが出力するエラーコード
23.4.2 C言語のクライアントライブラリが出力するエラーコード
23.5 最小値・最大値一覧
24. メッセージ
24.1 メッセージの記述形式
24.2 KDEA00001〜KDEA01999
24.3 KDEA02000〜KDEA02999
24.4 KDEA03000〜KDEA03999
24.5 KDEA04000〜KDEA05999
24.6 KDEA06000〜KDEA07999
24.7 KDEA08000〜KDEA09999
24.8 KDEA10000〜KDEA11999
付録
付録A サンプルプログラム
付録A.1 ExportCsvFunction(データの出力)
付録A.2 RemoveAllFunction(データの削除)
付録B Developerで使用する定義ファイルで設定される値
付録B.1 サーバ定義ファイル
付録B.2 クラスタ定義ファイル
付録B.3 起動設定ファイル
付録B.4 コマンド定義ファイル
付録B.5 キャッシュ定義ファイル
付録C 用語解説
ページの先頭へ