WebLogic Server ~ Oracle Coherenceとの親和性

1,820 views

Published on

第40回WebLogic Server勉強会の資料

Oracle Coherenceは、インメモリデータグリッド製品の一つで、システムの可用性、拡張性を担保しながら、分散キャッシュや分散実行によりパフォーマンス の大幅な向上に寄与します。今では国内外のミッションクリティカルな領域で採用されています。本セッションでは、初めに Coherenceの 概要に触れ、WebLogic Serverとの連携・統合機能を紹介します。

日本オラクル株式会社 Fusion Middleware事業統括本部 松林 晶

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

No Downloads
Views
Total views
1,820
On SlideShare
0
From Embeds
0
Number of Embeds
40
Actions
Shares
0
Downloads
50
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

WebLogic Server ~ Oracle Coherenceとの親和性

  1. 1. Oracle Cohenrece Oracle WebLogic Server との親和性 日本オラクル株式会社 Fusion Middleware事業統括本部 2013年9月26日
  2. 2. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.2 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。 また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことは できません。以下の事項は、マテリアルやコード、機能を提供することをコミットメン ト(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さ い。オラクル製品に関して記載されている機能の開発、リリースおよび時期につい ては、弊社の裁量により決定されます。 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。
  3. 3. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.3 Oracle Coherence 概要
  4. 4. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.4 インメモリデータグリッド インメモリデータグリッド(IMDG)製品とは データベースアプリケーション 高速性を重視する場 合のデータベースア クセスの限界 予測不能なデータの 増加に対する柔軟な 拡張性 データベースアプリケーション インメモリのデータに 高速にアクセス可能 分散してデータを管 理し、柔軟な拡張性 従来のシステムの課題 インメモリデータグリッドによる課題の解決 インメモリデータグリッド 大量の処理を高速に処理したい データの増加に合わせて拡張性の高 いソリューションが必要だ データを複数サーバのメモリに分散してキャッシュ
  5. 5. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.5 Key Value Store (KVS) KVSとは(RDBMSとの比較) KVS RDBMS 仕 組 み Key(キー)とValue(値)のシンプルなデータ構造をストアす る仕組み 二次元表のデータ構造を管理する仕組み ア ク セ ス 方 式 APIによるアクセス java.util.Mapインターフェースの場合(Coherence) SQLによるアクセス Key Value 従業員 番号:150 従業員 名前:オラクル 生年月日:3月1日 役職:課長 SELECT EMP_NAME FROM EMP_TABLE; データの参照 INSERT INTO EMP_NAME VALUES(28 , ‘ABC’); 挿入 public static void main(){ NamedCache cache = …; cache.get(28); // データの参照 cache.put(28 , emp); // データの挿入更新 } データベース
  6. 6. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.6 Oracle Coherence  インメモリデータグリッド製品 – 複数サーバに渡る分散KVS  分散データの可用性  サーバの動的な追加・縮退に 対する自動リバランス機能 – 様々なデータ処理機能  In-Place Processing  データストア連携  イベント通知機能 – 高度なクラスタ管理機能 製品概要① クライアント(Java, .NET, C++) イベント 通知 DB データストア連携 Webサービス WAN File
  7. 7. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.7 Oracle Coherence  Coherence – Javaのクラスライブラリ(100% Pure Java) – クライアント向けライブラリは Java / C++ / .Net – REST API経由で、さまざまな言語からHTTPによるアクセスが可能  JavaScript/Python/Ruby/PHP etc 製品概要② 性能面(パフォーマンス)の向上だけでなく 各種プラットフォームにも対応し 可用性や拡張性も担保したIMDG製品
  8. 8. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.8 キャッシュデータの要件  キャッシュデータの要件 – Key/Valueともにシリアライズ可能な任意のオブジェクト – KeyクラスはhashCode()/equals()メソッドが必要  Portable Object Format(POF) – Coherenceが提供するシリアライズ/デシリアライズの仕組み  Java/C++/.NET間アプリケーション間での共通データフォーマット – com.tangosol.coherence.io.pof.PortableObjectインタフェースの実装とPOF構成ファ イルへの登録を行うことにより構成 – Java標準(java.io.Serialize)より、シリアライズ後のサイズを小さくすることが可能 Serialization Time(ms) De-Serialization Time(ms) Size(bytes) Java Serializable 2369 10078 867 POF 547 1234 186 Java標準とPOFの比較例
  9. 9. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.9 Oracle Coherence  プライマリに対してバックアップを持つことで可用性を担保 – パーティション単位で配置を決定 – バックアップは物理的に異なるマシン上に作成される(Machine-Safe) 分散データの可用性 JVM1 JVM2 物理サーバA JVM3 JVM4 物理サーバB JVM5 JVM6 物理サーバC JVM7 JVM8 物理サーバD P B P P P P P P P B B B B B B B 1 1 2 2 3 4 3 4 5 6 5 6 7 8 7 8 P:プライマリ / B:バックアップ
  10. 10. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.10 インメモリデータの可用性 Machine 1  障害時はバックアップからデータを復旧させる  障害復旧の最小単位はパーティション単位 ① 無くなったプライマリをバックアップから復旧(インメモリで昇格) ② マシンセーフのためのプライマリの均等化(ネットワーク経由で移動) ③ バックアップの再作成(ネットワーク経由でコピー) JVM 1 P B JVM 2 P B 1 2 3 5 Machine 2 JVM 3 P B JVM 4 P B 3 4 1 7 Machine 3 JVM 5 P B JVM 6 P B 5 6 2 8 Machine 4 JVM 6 P B JVM 8 P B 7 8 6 4 P: プライマリ B: バックアップ 5 6 2 8 2 6 5 1 1 2 3 33 3 1 2 3 補足情報
  11. 11. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.11  データの存在する場所(JVM)で処理を実行する – 無駄なデータ送受信を行わない – Process-Data Affinity  Partitioned Cacheではデータの分散に沿ったパラレル処理が可能に – Partitioned Cacheでは対象データを持つキャッシュサーバ全体で実行される – 各JVMでパラレルに実行 – 集計処理などの場合、結果は呼出し側で自動的にマージされる Oracle Coherence In-place-proccesing ①データ取得(get) ③結果の格納(put) ②処理実行 APサーバ ①処理のInvoke ③結果を返却 ②各JVMで分散 して処理実行 APサーバ
  12. 12. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.12 Partitioned Cacheによるスケーラビリティ サーバ追加による性能の向上 Partitioned Cache – データを分散してキャッシュ – データの分散によりサーバ間で処理の負荷 を分散 1. 処理性能の拡張 – サーバ追加により処理可能なリクエスト数を 向上 – パラレル実行可能な処理の性能を向上 2. メモリ領域の拡張 – サーバ追加により分散キャッシュの 容量を拡張 JVM JVM JVM JVM JVM アプリケーション パラレル処理 サーバ追加Coherenceデータグリッド 動的拡張
  13. 13. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.13  外部データソースとキャッシュデータの 自動的な連携 – キャッシュデータの変更をDBに反映 – キャッシュへの読取時にDBからデータを 取得してキャッシュに格納  キャッシュの更新処理 – 同期書き込み(デフォルト) – 非同期書き込み Oracle Coherence データソース連携 ①データのput ②Coherenceが INSERT文を発行 ①データのget ②キャッシュに存在 しないので SELECT文を発行 ③SELECT 結果をキャッ シュに格納 キャッシュの更新 キャッシュの参照
  14. 14. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.14  外部データソースへの非同期書込み – デフォルトでは同期書込み – 変更データをキューで管理し、指定した間隔で書出しを行う  メリット – 同一データに対する複数更新を一括実行  発行されるSQLの減少 – 外部データソースの障害からアプリを隔離  書込み失敗 → リキュー → 次回以降のタイミングでリトライ Oracle Coherence データソース連携 ― 非同期書き込み(Write - Behind) UserA age=10, money=100 ↓ age=11, money=100 ↓ age=11, money=300 例:UserAを2回更新 UPDATE user SET age = 11, money = 300 WHERE id = ‘A’
  15. 15. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.15 Oracle Coherence イベント イベントリスナー イベントを受け取るためのリスナーを登録  データの変更時にリスナーにイベントが通知される – insert/update/deleteイベントを通知 – イベント受取り時に実行したい処理をリスナーに記述  フィルタによる条件指定でリスンする対象データの 絞込み – データ操作の種類 – Key/Valueの比較条件  イベントオブジェクトに格納される情報 – データ操作の種類 – 変更の前後データ アプリケーション Coherenceデータグリッド JVM A JVM B JVM C JVM D ③ イベント通知① リスナー登録 ② データ変更 Listener Listener Filter Event Event Event
  16. 16. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.16 Oracle WebLogic Server との親和性
  17. 17. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.17 Coherence*Web Coherence*Web ブラウザ Java EE Web App Java EE Web App Java EE Web App Java EE Web App ロードバランサ Webサーバ APサーバ Coherence分散キャッシュ (HTTPセッションを格納)  Coherenceの分散キャッシュを使用したHTTP セッション管理機能 – アプリケーションの修正不要  HTTPセッション格納用のキャッシュをAPサーバ とは別のJVMに構成 – APサーバの負荷軽減 – HTTPセッションのメモリ上限の向上  さまざまなAPサーバをサポート – WebLogic/GlassFish/JBoss/Websphere etc  ASP.NETセッション管理用にSession Provider を提供
  18. 18. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.18 Managed Coherence Servers WebLogic Server の管理容易性をCoherenceも利用可能 JVM JVM JVM JVM start-cache.sh 運用管理者 Coherence Cluster 独自ツール JVM JVM JVM JVM 運用管理者 Coherence Cluster WebLogic 管理コンソール マシン毎にJVM プロセスの開始、 停止コマンドを 投入するのは人 為ミスの危険も あるし、大変 独自ツールはとても 便利だが開発コスト がかかる WebLogic ドメイン
  19. 19. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.19
  20. 20. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.20

×