oracle coherence 概要 - kvs/分散キャッシュがもたらす可能性とは

39
<Insert Picture Here> Oracle Coherence 3.6概要 日本オラクル株式会社 Fusion Middleware 事業統括本部

Upload: oracle-fusion-middleware

Post on 17-Jun-2015

53.277 views

Category:

Technology


4 download

DESCRIPTION

KVS/分散キャッシュの進化の最先端を突き走るOracle Coherence。その最新版でどんな機能が実装されてきたのか? それらがどこに効いてくるのか? 次世代アーキテクチャとして、ぜひ検討いただきたい、パフォーマンス向上だけではない「インメモリ技術」の今をご紹介します。

TRANSCRIPT

Page 1: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

<Insert Picture Here>

Oracle Coherence 3.6概要

日本オラクル株式会社

Fusion Middleware 事業統括本部

Page 2: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved. 2

以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。

Oracle、PeopleSoft、JD Edwards、及びSiebelは、米国オラクル・コーポレーション及びその子会社、関連会社の登録商標です。その他の名称はそれぞれの会社の商標の可能性があります。

Page 3: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

アプリケーション B アプリケーション Bアプリケーション A

3

アプリケーション A

Oracle Coherence情報爆発の時代に応える企業向けインメモリ分散キーバリュー・ストア(KVS)

Co

he

ren

ce

アプリに特化したデータ処理

アプリに特化したデータ処理

共通データ処理個々のメモリ内で抱えきれないリクエスト量・データ量

HW横断型の分散共有メモリ領域 → スケールアウト型でHWコストを最適化 メモリ・データの信頼性向上 → ディスクIOの最小化(高速化) インメモリ・イベント処理基盤 → サブシステム間連携を最適化(高速化・効率化)

メモリ・データの信頼性と一貫性

メモリ/CPUの拡張性

属性による検索/更新SQLライクなインターフェース

インメモリ・パラレル分散処理

Page 4: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

国内でも採用例、続々とOracle Coherence

Page 5: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved. 5

アーキテクチャと主要機能

Page 6: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved. 6

Oracle Coherence

大容量かつ高信頼性のインメモリ・データ管理• アプリケーションが利用するそのままの形式(オブジェクト)でデータをインメモリ保持

– 処理途中の情報(セッション、ステート)

– 高頻度の更新情報

– 参照データ

– 取引確定データ etc…

• アプリケーションは一つのメモリ領域とやり取りしている感覚

• メモリ・データの一貫性維持はCoherenceが担保。アプリケーションは影響を受けずに処理を継続可能(ノード追加対応、障害対応)

Coherenceプロセス 1

P

B

Coherenceプロセス 2

P

B

Coherenceプロセス 3

P

B

Coherenceプロセス 4

P

B

A B C D

BCD A

Application

Coherence API

P: プライマリB: バックアップ

A B C D

Java .NET C++

基本API: Key-Value 形式

NamedCache cache =

CacheFactory.getCache(“orders”);

Order o1 = (Order)cache.get(key1);

cache.put(key2, o2);

Page 7: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

一般的なKVS

•キーバリューストア/KVS、NoSQL、分散キャッシュ…

7

アプリケーション

画面系処理

フロー処理

データ処理

画面系処理

フロー処理

データ処理

画面系処理

フロー処理

データ処理

121, “新鮮りんご100g”122, “新鮮りんご200g”123, “新鮮りんご500g”

• put / get による一件ずつのアクセス• 値の範囲指定や絞り込みは責任範囲外→ データ取得後にデータ処理側で個別に実施

• サーバー/プロセス障害には個別対応が必要→ データ消滅の可能性があるため、基本的にはキャッシュ

• 数値や文字列データのみ• 構造的データをサポートしているものは少ない

Page 8: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

Oracle Coherence

• インメモリ・データグリッド: 高信頼性・自律的・パラレル処理

8

• キーにも値にもオブジェクト型を利用可能(複雑な企業内データに対応可能)

• Java、.Net、C++ でオブジェクト共有

アプリケーション

画面・フロー

画面・フロー

画面・フロー

DBアクセス処理

Access API

• サーバー/プロセス障害に自律的に対応→ アプリケーション側でのエラー制御は不要

• ノード間でメモリ・データを暗黙的にミラー化• ノード間通信のSSL化 【NEW】

• put / get• 値の範囲指定や絞り込みのためのパラレル問い合わせ• 複数ノードを協調動作させたカスタム処理• SQLライクなクエリ・インタフェース 【NEW】• 論理保持領域をまたがる分散トランザクション 【NEW】

Page 9: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved. 9

Oracle Coherence

拡張可能・高信頼性・高可用性のワケ

共有メモリ空間

NamedCache cache = CacheFactory.getCache( <キャッシュ領域名> );String key = “cust1”; -- キャッシュのキーコードcache.put(key, <注文データ> ); -- キャッシュ するデータをPut

注文データ

キャッシュ・クラスタ内のノードにデータを配置

注文データ

自動的にクラスタ内の別ノードにデータをバックアップ

(デフォルト設定はバックアップ数 1もちろん変更可能)

Page 10: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved. 10

Oracle Coherence

拡張可能・高信頼性・高可用性のワケ

共有メモリ空間

注文データ

注文データ注文データ

ノードのダウンを検知→ バックアップ・データをプライマリに昇格

注文データ

有効な別ノードにバックアップを作成

ノードがダウンしても…

NamedCache cache = CacheFactory.getCache( <キャッシュ領域名> );String key = “cust1”; -- キャッシュのキーコードObject <注文データ> = cache.get(key); -- キャッシュ するデータをGet

オブジェクトの実際の位置に関係なく取り出し可能

Page 11: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

Coherenceプロセス 1 Coherenceプロセス 2 Coherenceプロセス 3 Coherenceプロセス 4

Java .NET C++

B D

C

B D

C

B D

C

B D

C

Application

11

Oracle Coherence

その他のキャッシュ構成

• ニア・キャッシュ– 一度取得したデータをクライアント側に保持

– サーバー側でデータ値の変更が行われるとイベント通知によってニア・キャッシュ側を破棄

• Replicated Cache

–すべてのノードでデータを重複保持

– データの更新は全てのノードに伝播→ 作業コストが高いので更新の

頻度が高いデータには不向き

– 変更が少ないマスターデータ向き

Coherenceプロセス 1 Coherenceプロセス 2 Coherenceプロセス 3 Coherenceプロセス 4

A B C D

Application

Coherence API

A B C D

Java .NET C++

Aニア・キャッシュ

Page 12: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

Oracle Coherence

サーバー数/クライアント数の増加に対応するために

• クラスタ内プロトコルの最適化Tangosol Cluster Management Protocol(TCMP)

– UDPユニキャストの拡張実装

•到達保証(ACK/NACK)

• Flow Control

•データの分割/復元

• Packet Bundling …

• TCMP内では P2Pによってデータに到達– マスターやインデックス的位置づけのサーバーはない

– Keyオブジェクトから独自ロジックによって分散位置を算出した後、ダイレクトに特定ノードにアクセス

– P2P型ゆえ、サーバー数/クライアント数によらずデータ取得はリクエスト/レスポンスの一往復で完結

• 一度取得したデータはローカルにキャッシュ(ニア・キャッシュ利用時)

Coherenceデータグリッド

JVM 1

JVM 2

B

JVM 3 JVM 4

D

アプリケーションJVM

Application

Coherence API

アプリケーションJVM

Application

Coherence API

get(A)get(C)

return null

TCMPで通信可能なネットワーク範囲

12

Page 13: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved. 13

Oracle Coherence

バックエンド・データアクセスNamedCache cache = CacheFactory.getCache( <キャッシュ領域名> );String key = “cust1”; -- キャッシュのキーコードObject <注文データ> = cache.get(key); -- キャッシュ するデータをGet

get

CacheStore CacheStore

JDBC JMS

データアクセスコードを排除可能

注文データ

キャッシュに存在

キャッシュにない

SELECT ‘A’ FROM …

CacheStoreの実装しだいでload/storeを自由に記述可能(製品同梱の

CacheStore実装の利用も可能)

対応するCacheStoreからデータをロード

書き込みエラー時は、キューに残ってリトライ

注文データ

put

Page 14: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved. 14

Oracle Coherence

2つのキーとなる機能

• イベント通知 :リアルタイム型処理に必須の機能

– P2P型のイベント通知→ ノード数に依存しない性能

• パラレル処理 :大量データ処理時に必須の機能

– 各ノードのCPUを活用したデータ処理

– ノード数の増加 = パラレル度向上

キャッシュ・ノード1 キャッシュ・ノード2 キャッシュ・ノード3 キャッシュ・ノード4

アプリケーション

条件を引数として処理命令(Invocation)

をコール

各ノードでパラレルに処理を実行

データ追加更新・削除

他クライアントへの通知

後続処理の起動

リモートサイトとの同期化

事前定義問合せ結果セットの更新

ニア・キャッシュの破棄通知

Page 15: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved. 15

Oracle Coherence

パラレル処理機能 → 処理性能を維持した拡張

データ量、リクエスト量の増加

同じ時間内に処理を完了するのは難しい

データ量が2倍になると…

増やしたノードのCPUを活用して処理完了時間を維持

総データ量

応答時間

Page 16: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

Oracle Coherence

パラレル型データ処理

16

Class Employee {private int id;private String name;private Date hireDate;private Date birth;private Address homeAddress;...public String getName();... }

Class Product {private int id;private String name;private int price;private String detail;private String pictureUrl;...public String getName();... }

キャッシュ・ノード1 キャッシュ・ノード2 キャッシュ・ノード3 キャッシュ・ノード4

アプリケーション

条件に基づくパラレル問い合わせ例- productsStore.entrySet(

);

- employeeCache.entrySet(

);

条件に基づくパラレル集計例-productsStore.aggregate(

);

new AndFilter(new LikeFilter(“getName”, “%りんご%”),new GreaterFilter(“getPrice”, 2000) ),

new DoubleAverage(“getPrice”)

new AndFilter(new LikeFilter(“getName”, “%りんご%”),new GreaterFilter(“getPrice”, 2000) )

new EqualsFilter( new ChainedExtractor(

“getHomeAddress.getState”), “CA” )

Page 17: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved. 17

アプリケーション

Oracle Coherence

Continuous Query事前定義済み条件の問合せ結果取得の効率化/高速化

Coherenceノード Coherenceノード Coherenceノード Coherenceノード

アプリケーション

他ユーザーからの更新処理

SQLのコール

問合せ結果セット(ContinuousQuery)

問合せ実行

他ユーザーからの更新処理

従来型 : リクエスト/レスポンス型 データグリッド : Push型による問合せ結果の更新

条件に合致したデータのみ送信

データ追加イベントを機に、事前定義条件に合致するかどうか判別

結果の取得

すでに用意された問合せ結果を利用

Page 18: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

主な機能

18

機能 目的 効果

自動的なデータのミラーリング/データ復旧処理

物理サーバー構成に依存しない透過的なメモリデータアクセス

信頼性向上運用効率化HWリソース効率化

パラレル処理 大量データ処理の高速化 処理性能向上

KVS型(put/get) およびSQLライクな条件句でのオブジェクトデータへのアクセス

アプリケーションに使いやすいAPIの提供

開発生産性向上アプリケーション保守性向上

バックエンド・データソースとの同期/非同期連携

- DBへの負荷を軽減- DBの可用性からアプリケーションを分離

運用効率化(アプリとDBの運用依存性を分離)

イベント処理 連携効率向上 HWリソース効率化開発生産性/保守性向上

補足

Page 19: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved. 19

Coherence 3.6

Page 20: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

Oracle Coherence 3.6

20

CohQL>

利用の敷居を下げる機能

• “適用しやすさ” の向上

– SQLライクなクエリ・インタフェース(Coherence Query Language)

– Eclipse ベースの開発支援機能

• 自律型の管理機能の強化

– ポリシーに基づくサービス機能のON/OFF制御(サービスに必要なサーバーの最低稼働数の設定など)

– マシン・レベルでの障害検知

• .Net 環境での機能強化

– ASP.Net に設定レベルで組込可能なセッション管理

(セッションのインメモリ化)

• ミッションクリティカル向け強化

– 複数のキャッシュ領域を横断する分散トランザクション

– MVCC によるデータ整合性

– SSLによるノード間/クライアント接続

大規模適用向け機能強化

Page 21: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

Oracle Coherence 3.6

21

CohQL>

利用の敷居を下げる機能

• “適用しやすさ” の向上

– SQLライクなクエリ・インタフェース(Coherence Query Language)

– Eclipse ベースの開発支援機能

• 自律型の管理機能の強化

– ポリシーに基づくサービス機能のON/OFF制御(サービスに必要なサーバーの最低稼働数の設定など)

– マシン・レベルでの障害検知

• .Net 環境での機能強化

– ASP.Net に設定レベルで組込可能なセッション管理

(セッションのインメモリ化)

• ミッションクリティカル向け強化

– 複数のキャッシュ領域を横断する分散トランザクション

– MVCC によるデータ整合性

– SSLによるノード間/クライアント接続

大規模適用向け機能強化

開発生産性/保守性向上トレーニングコスト低減既存Appの適用作業を軽減

パフォーマンス効果ディスク節約

トランザクション強化セキュリティ強化

運用コスト低減停止リスクの極小化

Page 22: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

Oracle Coherence 3.6

• Coherence Query Language(CohQL)

• トランザクション機能の強化

• Quorum ポリシーによる動作制御

• .NETセッション管理

•その他新機能/機能強化

Page 23: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

Oracle Coherence 3.6

Coherence Query Language (CohQL)

• Coherenceクラスタでキャッシュ操作を行うためのSQLライクなクエリ表現が可能

–APIおよびコマンドラインツールで利用可能

• API:

–FilterやValueExtractor の生成コードを簡易化→開発生産性向上、コードの可読性向上(保守性向上)

• コマンドライン:

–Oracle Database の SQL*Plus のイメージ

• SELECT, UPDATE, INSERT, DELETE, CREATE/DROP CACHE, CREATE/DROP INDEX,BACKUP, RESTORE, SOURCE

→ テスト/確認工数削減、運用のためのプログラミング作業軽減

Page 24: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

Oracle Coherence 3.6

パラレル型データ処理 with CohQL

24

条件に基づくパラレル問い合わせ例- productsStore.entrySet(

);

- employeeCache.entrySet(

);

条件に基づくパラレル集計例-productsStore.aggregate(

);

new AndFilter(new LikeFilter(“getName”, “%りんご%”),new GreaterFilter(“getPrice”, 2000) ),

new DoubleAverage(“getPrice”)

new AndFilter(new LikeFilter(“getName”, “%りんご%”),new GreaterFilter(“getPrice”, 2000) )

new EqualsFilter( new ChainedExtractor(

“getHomeAddress.getState”), “CA” )

条件に基づくパラレル問い合わせ例- productsStore.entrySet(

);

- employeeCache.entrySet(

);

条件に基づくパラレル集計例-productsStore.aggregate(

);

QueryHelper.createFilter(“name like „%りんご%‟ and price > 2000” ),

new DoubleAverage(QueryHelper.createExtractor(“price”)

QueryHelper.createFilter(“name like „%りんご%‟ and price > 2000” )

QueryHelper.createFilter(“homeAddress.state = „CA‟” )

Page 25: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

コマンドライン CohQL – 例

CohQL>

CohQL> select min(zipCodes.size()), min(zipCodes.size()) from

cityinfo

Results:

0 , 0

CohQL> delete from cityinfo where zipCodes.size() is 0 or

areaCodes.size() is 0

CohQL> select areaCodes from cityinfo where name is “Dallas”

Results:

{214,972}

CohQL> update cityinfo set areaCodes = {214, 469, 972} where

name is “Dallas” and state is “TX”

Page 26: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

例えば…

26

アプリケーション

画面・フロー

画面・フロー

画面・フロー

DBアクセス処理

Access API

開発: プログラミングAPI- productsStore. entrySet(

QueryHelper.createFilter(“name like „Oracle%‟ and price > 2000” );

コマンドラインでの運用・チューニング- BACKUP CACHE … TO [File]- CREATE INDEX …

サンプル・データの内容の確認、調整- insert、update、delete、select…

保守: プログラムコード内の可読性と変更容易性- productsStore. entrySet(

QueryHelper.createFilter(“name like „Oracle%‟ and price > 1500” );

CohQL>

CohQL>

監視- JMX、Enterprise Manager

保守・改修

運用・監視

開発・テスト

Page 27: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

Oracle Coherence 3.6

トランザクション機能の強化

• トランザクションで、以下の機能をサポート

–キャッシュ領域をまたいだACIDトランザクション

–外部からのクエリ/集計に対する読取り一貫性

• XA準拠のリソースアダプタ–Java EEコンテナのトランザクションマネージャと連携したグローバル・トランザクションを実現

begin

データ操作

commit begin

データ操作

commit

CoherenceResource Adapter

画面・フロー

Page 28: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

トランザクション – コネクションAPI

begin

データ操作

commit

Connection con = new DefaultConnectionFactory().

createConnection( "TxCacheService" );

con.setAutoCommit(false);

try {

OptimisticNamedCache

c1 = con.getNamedCache( "tx-cache1" );

OptimisticNamedCache

c2 = con.getNamedCache( "tx-cache2" );

c1.insert(key1, value1);

c2.insert(key2, value2);

con.commit();

catch (Exception e) {

con.rollback();

throw e;

}

finally {

con.close();

}

Page 29: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

トランザクション – XA

UserTransaction ut = (UserTransaction) ic.lookup(

"java:comp/UserTransaction" );

ConnectionFactory cf = (ConnectionFactory) ic.lookup(

"java:comp/env/eis/CoherenceTxCF“ );

DataSource ds = (DataSource) ic.lookup( "jdbc/OracleDS“ );

ut.begin();

try {

OptimisticNamedCache

c1 = cf.createConnection( "TxCacheService“ ).

getNamedCache( "tx-cache1“ );

java.sql.Statement

s1 = ds.getConnection().createStatement();

s1.executeUpdate( "INSERT INTO ... “ );

c1.insert(key1, value1);

ut.commit();

catch (Exception e) {

ut.rollback();

throw e;

}

CoherenceResource Adapter

begin

データ操作

commit画面・フロー

Page 30: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

Oracle Coherence 3.6

Quorumポリシーによる動作制御

• 設定されたポリシーに応じてサービス動作を制御する

• サービスとは?

– Coherence 内の各種処理サービスのこと

•クラスタ・サービス

• Partitioned Cacheサービス

• Proxyサービス

• ポリシーとは?

– 事前設定済のポリシー: リアルタイムの以下の情報から判定

•クラスタ内のノード数

• Proxyノードの数

– カスタム・ポリシー: サービスの状態や外部環境の情報を使って判定するロジックをカスタム実装可能

Page 31: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

Quorumポリシーによる動作制御例

ルール例 制御例 目的 カスタム?

キャッシュ・ノード数< 10

バックアップの再作成処理を禁止

限られたリソース内で追加のデータ作成が発生することによるメモリ・オーバーフローを防ぐキャッシュ・ノード数

< [特定数]put を禁止

特定の期間の間 外部リクエストを禁止 定期メンテナンス期間中はユーザーリクエストを制御する

初期ロード処理の間 外部リクエストを禁止 データの状態がレディでない場合にユーザーリクエストを制御する

バックエンドDBの稼働状況

DBアクセスができない状態なら特定キャッシュ領域への put を禁止

Write-through のDB連携の場合の書き込み処理の可否を

Page 32: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

Oracle Coherence 3.6

.NETセッション管理

• ASP.NETのセッションをCoherence上で管理するSession Providerを提供

– SQL Serverセッションプロバイダよりも格段に速くスケーラブル+ ディスク節約、高信頼性

– 柔軟なセッションモデルを全てサポート

• Traditional ・・・セッション属性個別に格納

• Monolithic ・・・セッション属性をまとめて格納

• Split ・・・サイズ大の属性は個別、小さい属性はまとめて格納

–既存アプリケーションのコード変更は当然不要

• web.configファイルの修正のみで対応可能

–設定によって、アプリケーションをまたいだセッション共有も可能

Page 33: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

.NETセッション管理 – 最小構成例

※構成の記述方法の詳細は製品ドキュメント「Oracle Coherence Client Guide / クライアントガイド」を参照ください

メモリ処理化、DB負荷軽減

【前提条件】.NET

2.0、3.0、3.5

SessionProvider for .Net

IIS サーバー(Coherenceクライアント)1. Coherence for .NET をインストール2. ASP.NET の BIN参照設定で

coherence.dll を指定3. キャッシュ構成ファイル(xml)を作成

(外部Coherenceサーバーへの接続設定)4. web.config に構成を追記

− configSections セクションでcoherence セクションを定義

− coherence セクションを追加しキャッシュ設定ファイルの場所を指定

− system.web セクションでセッションプロバイダの利用構成を追記

Coherenceサーバー1. Coherence サーバーを起動

Coherence Proxy サーバー1. .NETからの外部接続のための構成を追記2. Coherence Proxy サーバーを起動

3

21

Page 34: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

Oracle Coherence 3.6

その他: パフォーマンス/可用性/セキュリティ

• パフォーマンス

–ユーザー定義インデックス

•複雑な構造に対応したインデックス、条件に柔軟なインデックス…

•インデックスに必要なメモリ領域の最適化

• 可用性 : 障害検出の短縮化

–3つの手法を組み合わせた死活監視

• Coherence上のサービス・レベル: 処理のタイムアウト管理(従来から)

•プロセス・レベルの検出 : TCP Ring の強化

•マシン/ネットワーク・レベルの障害検出 : ランダムな ping (IP Monitor)

• セキュリティ

–SSLサポート(TCMP、Coherence*Extend)

–Coherence*Extend Proxyクライアントの認証 +リモートでのキャッシュ・サービス/Invocationサービスの権限制御

Page 35: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved. 35

Oracle Exalogic

Elastic Cloud

Page 36: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved.

Oracle Exalogic Elastic Cloud

ミッションクリティカルクラウド

集約化→運用コストを

60%削減

事前統合されたシステム

展開までの時間を

90%削減

超高速 Java プラットフォーム

10倍までレスポンス改善

36

• 100万 Webリクエスト/秒

• 180万 メッセージ送信/秒

• 200万 SQLオペレーション/秒

Page 37: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved. 37

スペシャル・サイトのご案内

■ アプリケーション・グリッド / Coherencehttp://www.oracle.co.jp/appgrid/

■ CIO for Tomorrowhttp://www.oracle.co.jp/campaign/cio/

■ Oracle WebLogic Server マニアックスhttp://www.oracle.co.jp/weblogic/

- 業種や課題別の解決策のご紹介

- 効果をわかりやすくアニメーションで紹介

- 事例動画(字幕付き)

- その他、関連ライブラリ

【連載コラム】- CIOのミッション- アナリストの提言

【ソリューション】 他

【3つの迷信】

【伝説のエキスパートが語る】

【ライブラリ】 他

Page 38: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright© 2010, Oracle. All rights reserved. 38

http://www.oracle.com/jp/direct/inquiry-form-182185-ja.html

Oracle Direct 検索

あなたにいちばん近いオラクル

Oracle Directまずはお問合せください

Web問い合わせフォーム フリーダイヤル

専用お問い合わせフォームにてご相談内容を承ります。

※こちらから詳細確認のお電話を差し上げる場合がありますので、ご登録されている連絡先が最新のものになっているか、ご確認下さい。

0120-155-096

※月曜~金曜 9:00~12:00、13:00~18:00

(祝日および年末年始除く)

システムの検討・構築から運用まで、ITプロジェクト全般の相談窓口としてご支援いたします。

システム構成やライセンス/購入方法などお気軽にお問い合わせ下さい。

Page 39: Oracle Coherence 概要 - KVS/分散キャッシュがもたらす可能性とは

Copyright Oracle Corporation Japan, 2010. All rights reserved. 39