分散キャッシュ テクノロジー “velocity”

49

Upload: yvon

Post on 21-Mar-2016

62 views

Category:

Documents


1 download

DESCRIPTION

T3-307. 分散キャッシュ テクノロジー “Velocity”. マイクロソフト株式会社 アプリケーションプラットフォーム製品部 太田佳伸. セッション内容. Velocity とは 概要 用語 機能 構成情報 使用方法 アーキテクチャの概要 動作詳細 コンポーネント まとめ 今後の方向性 キャッシュとクラウド. Velocity とは ?. 明示的インメモリ分散アプリケーションキャッシュ 任意のデータ型をキャッシュ可能 複数のマシン上のメモリを統合し、キャッシュとして使用するというイメージ. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 分散キャッシュ テクノロジー  “Velocity”
Page 2: 分散キャッシュ テクノロジー  “Velocity”

分散キャッシュ テクノロジー “ Velocity”

マイクロソフト株式会社アプリケーションプラットフォーム製品部太田佳伸

T3-307

Page 3: 分散キャッシュ テクノロジー  “Velocity”

セッション内容

Velocity とは概要用語

機能構成情報使用方法

アーキテクチャの概要動作詳細コンポーネント

まとめ今後の方向性キャッシュとクラウド

Page 4: 分散キャッシュ テクノロジー  “Velocity”

Velocity とは ?明示的インメモリ分散アプリケーションキャッシュ任意のデータ型をキャッシュ可能複数のマシン上のメモリを統合し、キャッシュとして使用するというイメージ

一元的なキャッシュ

異なるプロセス、異なるマシンからの同一オブジェクトへのアクセス

クライアントの視点からは、1つの大きな

キャッシュへアクセス

キャッシュレイヤでは、複数のキャッシュノード

へデータを分散配置

Page 5: 分散キャッシュ テクノロジー  “Velocity”

特徴CLR オブジェクト、タプル、 XML 、バイナリデータ等任意の型のデータをキャッシュ可能単純な API によるアクセススタンドアローンのサービスとしても、アプリケーションに組み込みのローカルキャッシュとしても使用可能 ノードの追加により動的にスケールアップ可能 レプリカによる HA 構成 自動的な負荷分散 ASP.NET との統合(セッションデータ用のプロバイダ)汎用的なクライアント開発言語のサポート ( 例 , PHP, C#, C++, etc.)V1 :

Cache-Aside アーキテクチャの考慮が必要 (Explicit Caching)オリジナルデータソースとの自動同期はノンサポート

Page 6: 分散キャッシュ テクノロジー  “Velocity”

キャッシュの役割

ローカルアクセスによるパフォーマンス向上オリジナルデータが使用できない場合の代用

高速 > 低速

2.A. 異種アプリケーションによる同一データの再利用

2.B. ローディングアプリによる事前のデータ準備(自動同期)

1.同一アプリケーションによる同一データの再利用

Page 7: 分散キャッシュ テクノロジー  “Velocity”

インプロセスキャッシュ

キャッシュが使用するメモリはアプリケーションと同一空間か否か?

メモリ空間

アプリケーション

アプリケーション

キャッシュサービス

メモリ空間

キャッシュサービス

ローカル キャッシュ

リモート キャッシュ

Page 8: 分散キャッシュ テクノロジー  “Velocity”

透過的と明示的キャッシュ

明示的キャッシュアプリケーションがキャッシュの存在を意識する必要があるCache-Aside パターン

データ?N

Yデータ?

N

Yアプリ キャッシュ

オリジナルデータソース アプリ

キャッシュ

オリジナルデータソース

透過的 明示的

Page 9: 分散キャッシュ テクノロジー  “Velocity”

分散キャッシュ

分散キャッシュキャッシュクラスターとして構成され、クラスター内でデータが分散配置される(パーティション etc )

データ?N

Y

アプリケーションキャッシュクラスター

オリジナルデータソース

データ?N

Y

Page 10: 分散キャッシュ テクノロジー  “Velocity”

キャッシュクラスター内でデータが分散配置され、各ノードで同一データのレプリカを持つ

アプリ

キャッシュ

オリジナルデータソース

P S

P S

レプリケーション

Page 12: 分散キャッシュ テクノロジー  “Velocity”

背景

アプリケーション要件データソースの散在

ローカル、 RDB 、フェデレート、クラウド可用性、スケーラビリティ、パフォーマンスデータグリッド

ロジックとデータの分散化、ロジックとデータの距離MDM をはじめとするデータスチュワードシップを考慮した統合

メモリを含むハードウェアコストの低下

スケーラビリティと可用性を問われる MC アプリケーションは、ほとんどの場合、中間層に分散キャッシュを実装

Page 13: 分散キャッシュ テクノロジー  “Velocity”

Velocity の機能

構成要素使用法アーキテクチャ

Page 14: 分散キャッシュ テクノロジー  “Velocity”

Velocity 物理構成要素

共有クラスター構成情報共有フォルダー、 SQL Serverクラスター構成情報を保持

クラスター起動時に各ホストが参照

アプリケーション

API

Powershell管理ツール

Velocityキャッシュ 

ホストサービス

Velocityキャッシュ

ホストサービス

ローカルキャッシュ

Windows サービスとして実行他のサーバとの混在は可 キャッシュホスト構成ファイル 

DistributedCache.exe.config

クラスターポートデフォルト 22234クラスター内の他のホストとの間でハートビートのやり取りを行う

アービトレーションポートデフォルト 22235キャッシュホストの障害時に、障害が起きていることを確認・調整するためのポート

キャッシュポート デフォルト 22233キャッシュホストとアプリケーション間でデータのやり取りを行う

Windows ファイヤウォールの例外が必要DistributedCache.exe

共有クラスター構成情報

Page 15: 分散キャッシュ テクノロジー  “Velocity”

インストール

XML Based File

• 共有フォルダSQL Server Compact Data Provider

• 共有フォルダSQL Client Data Provider

• 接続文字列

インストールに必要な情報 クラスター構成情報の取得方法とロケーション クラスターの規模 メモリ容量

Page 16: 分散キャッシュ テクノロジー  “Velocity”

Velo

city

Serv

ice

クラスター構成情報

格納される情報動的グローバルパーティショニングマップ (GPM)

リージョン(パーティション)とホストとのマッピングテーブル

Velocity の構成情報とポリシー情報ポリシーはグローバルに適用される

格納場所 : 共有フォルダまたは SQL ServerServer 1 Server 2 Server 3

Configuration Store 名前付きキャッシュのポリシー、 GPM

Glob

al P

artit

ion

Man

ager

Velo

city

Serv

ice

Velo

city

Serv

ice

Velocity サービスホストの

一つは GPM を持つ

Page 17: 分散キャッシュ テクノロジー  “Velocity”

キャッシュ構成ファイル

クライアント app.configキャッシュホスト構成ファイルキャッシュクラスター構成オプション

Page 18: 分散キャッシュ テクノロジー  “Velocity”

論理構成要素名前付きキャッシュ

デフォルトキャッシュ名:“ default” 生成削除には管理コマンドを使用

リージョン ( オプション)リージョン内のオブジェクトの検索が可能

タグを使用リージョンごとにタグはインデックス付けされている

クラスター稼働時に作成・削除が可能リージョンを指定した場合、オブジェクトは分散配置されない。

オブジェクト任意の System.Object クラスのインスタンスオブジェクトは KeyValuePair<Key, Value>

A[“苗字” ]=“太田”キャッシュアイテム

キャッシュクラスターによって各オブジェクトに次のような情報が関連付けられる

キー、タグ、バージョン番号、キャッシュ(リージョン)

Velocity キャッ

シュホストサービ

Velocity キャッ

シュホストサービ

Velocity キャッ

シュホストサービ

名前付きキャッシュ

名前付きキャッシュ

リージョン

リージョン

Key Payload Tags

121 xxxx “Toy” “Child”

Page 19: 分散キャッシュ テクノロジー  “Velocity”

使用法キャッシュアクセスと APIリージョンとタグ検索機能キャッシュタイプ(クライアント構成)同時性制御(楽観的、悲観的排他制御)期限切れと強制排出 (Eviction)管理監視機能( Powershell )

Page 20: 分散キャッシュ テクノロジー  “Velocity”

キャッシュアクセスと APIキャッシュクライアントプログラム

名前空間: System.Data.Caching必要なアセンブリ

CacheBaseLibrary.dll, ClientLibrary.dll, FabricCommon.dll, CASBase.dll

CacheBaseLibrary.dll と ClientLibrary.dll を参照設定に追加

CacheFactory クラスから Cache オブジェクトを生成Cache オブジェクトに対して、次のようなメソッドが提供される

AddPutGetRemoveItem プロパティ

キャッシュクライアント構成情報は App.config またはコード内に記述

Page 21: 分散キャッシュ テクノロジー  “Velocity”

オブジェクトの操作CREATE & UPDATE

using System.Data.Caching;CacheFactory CacheCluster1 = new CacheFactory();Cache Cache1 = CacheCluster1.GetCache("Cache1");

Cache1.Add("cachedStringKey1","This will be stored in cache");Cache1.Put("cachedStringKey2", "This will be stored in cache");Cache1["cachedStringKey3“] = "This will be stored in cache");

Add

•同一キーを持つオブジェクトがある場合には例外が発生

Put

•同一キーを持つオブジェクトは更新される

アイテム

•配列形式•オブジェクトは更新

Page 22: 分散キャッシュ テクノロジー  “Velocity”

オブジェクトの操作READ & DELETE

using System.Data.Caching;CacheFactory CacheCluster1 = new CacheFactory();Cache Cache1 = CacheCluster1.GetCache("Cache1");

string StringValue1 = (string) Cache1.Get("cachedKey1");string StringValue2 = (string) Cache1["cachedKey2"];

Cache1.Remove("cachedStringKey1");Cache1["cachedStringKey2"] = null;

Get

•指定したキーを持つオブジェクトがない場合にはNULLが返る

アイテム

•指定したキーを持つオブジェクトがない場合にはNULLが返る

Remove

• 指定したキーを持つオブジェクトの削除

アイテム

•配列形式の表現•値としてNULLを指定することでオブジェクトを削除

Page 23: 分散キャッシュ テクノロジー  “Velocity”

リージョンとタグ検索機能リージョン

オブジェクトの配置を特定のホストに限定することによりキャッシュ内を検索可能にする機能作成・削除は API から行う

タグ検索リージョン内のテキスト検索機能// タグ定義とタグ付き追加処理

Tag hotItem = new Tag("hotItem");Tag discItem = new Tag("discountItem");catalog.Put(“toyRegion”, “toy-101”, new Toy(“Puzzle”), new Tag[]{hotItem});catalog.Put(“toyRegion”, “toy-102”, new Toy(“Bridge”), new Tag[]{hotItem,discItem});// タグ指定検索List<KeyValuePair<string, object>> toys = catalog.GetAnyMatchingTag("toyRegion", hotItem);

// リージョン作成Cache cache1; Boolean returnValue = cache1. CreateRegion (“region1”, true);// リージョンクリアー・削除 public void ClearRegion ( string region )public Bool RemoveRegion ( string region )

強制排出を有効にするか否か

Page 24: 分散キャッシュ テクノロジー  “Velocity”

キャッシュタイプクライアント構成

ローカルキャッシュオブジェクトをシリアライズせずにローカルに保持する方式のキャッシュ

ルーティングキャッシュクライアント内部にルーティングテーブルを保持し、クライアントが直接適切なホストに接続する

設定箇所 ローカルキャッシュとルーティングを有効にする場合

App.config <dcacheClient deployment=“routing"><localCache isEnabled =“true” sync=“TTLBased” ttlValue="300"/>

プログラムコード

CacheFactory mycacheFactory = new CacheFactory(servers,                            true, //routing                           true); //local

Page 25: 分散キャッシュ テクノロジー  “Velocity”

同時性(排他)制御モデル

Optimisticキャシュ内オブジェクト取得時にロックを取得しない取得時のバージョンと更新時のバージョンの比較

クライアントはオブジェクトのバージョンを取得し、更新後のオブジェクトを送るときにバージョンも一緒に送付するキャッシュホストは、送られたバージョンと現在のキャッシュ内オブジェクトのバージョンが同一の場合にのみ更新を適用更新を行う場合には、バージョンも更新される

Time Client1 Client2T0 CacheItem item =

catalog.GetCacheItem(“PlayerRegion”, ”Zune”);

CacheItem item = catalog.GetCacheItem(“PlayerRegion”, ”Zune”);

T1 ((ZuneObject)item.Object).inventory --;

((ZuneObject)item.Object).inventory--;

T2 catalog.Put(“PlayerRegion”, “Zune”, item.Object, item.Version);

T3 catalog.Put(“PlayerRegion”, “Zune”, item.Object, item.Version);

クライアントはロックせずにデータ取得

アプリケーション内の更新処理

Client2 がキャッシュを更新 ; バージョン一致で更新成功これによりバージョンも更新

Client1 がキャッシュを更新 ;バージョン不一致で更新失敗

Page 26: 分散キャッシュ テクノロジー  “Velocity”

K1

同時性(排他)制御モデル

Pessimisticクライアントはデータ取得時にロックハンドル取得(GetAndLock)

ロックが解放されるまでは、他の操作 (GetAndLock) は拒否されるオブジェクトをロックすると、ロックハンドルが返される . ロックを解放する前にクライアントに障害が発生した場合には、タイムアウトにより解放ロックされているオブジェクトが期限切れになることはない。既に期限が切れている場合、ロックが解除された途端に期限切れになる

通常の Get はブロックされずにデータを取得可能更新時にはロックを解放する (PutAndUnlock)更新せずにロックを解放することも可能 (UnLock)

Client1: GetAndLock ("k1")

Client2:GetAndLock ("k1")

Client3: Get("k1")

通常の Get は成功

GetAndLock はロック ハンドルを取得

他の GetAndLockは失敗する

Page 27: 分散キャッシュ テクノロジー  “Velocity”

同時制御関連のメソッドメソッド 同時性制御 説明

Get NA Get は排他制御の対象とはならない。オブジェクトが存在する限り取得する。オブジェクトがロックされていても、最新バージョンを取得する。

GetCacheItem NA すべての CacheItem オブジェクトとタグやバージョン等の関連情報を返す

GetIfVersionMismatch NA 既存のオブジェクトが更新されている場合に限り取得する

Add NA Add は追加であり、同一キーのオブジェクトが存在する場合には Fail

Put optimistic (Optional)

オプションでバージョンを指定した場合、バージョンが同じ場合に限り更新する

Remove optimistic (Optional)

オプションでバージョンを指定した場合、バージョンが同じ場合に限り削除する

GetAndLock Pessimistic オブジェクトを取得し、ロックをかける 。他のGetAndLock は例外を発生する。他の Get呼び出しに対する排他制御はない

PutAndUnlock Pessimistic GetAndLock で取得したオブジェクトを更新し、ロックを解除する .

Unlock Pessimistic 明示的にオブジェクトのロックを解除する

Page 28: 分散キャッシュ テクノロジー  “Velocity”

期限切れと強制排出キャッシュ内からデータが消去される場合

クラスターまたはサービスの再起動しきい値やメモリ残量に応じた強制排出

期限切れキャッシュ作成時に TTL を指定

New-Cache -CacheName myCacheName -TTL 8 (min)New-Cache -CacheName myCacheName -NotExpirable

強制排出 (Eviction)LowWaterMark < Data < HighWaterMark の場合

期限切れしたオブジェクトのみを削除Data> HighWaterMark の場合

LRU をベースに期限切れしていないオブジェクトも削除メモリ残量が 15%以下になった場合

HWM を超えた場合と同様5% のメモリを確保する

Cache-Aside パターンを考慮する必要がある

Page 29: 分散キャッシュ テクノロジー  “Velocity”

管理監視機能( Powershell )クラスター管理

Start-CacheCluster 、 Stop-CacheCluster 、 Restart-CacheCluster

ホスト管理Get-CacheConfig 、 Set-CacheConfigStart-CacheHost 、 Stop-CacheHostGet-CacheStatistics 、 Get-Cache 、 Get-CacheHost 、 Get-CacheRegion

キャッシュ管理New-Cache 、 Remove-Cache Get-Cache 、 Get-CacheConfig 、 Set-CacheConfig 、 Get-CacheStatistics 、 Get-CacheRegion

コマンドの例キャッシュの作成 new-cache -CacheName NC1 -Secondaries 1 -TTL 15 -Eviction LRUキャッシュ情報の取得と結果の例

get-cacheconfig -CacheName NC1CacheName : NC1 TTL : 15 mins Type : PartitionedSecondaries : 1 IsExpirable : True EvictionType : LRU

Page 30: 分散キャッシュ テクノロジー  “Velocity”

使用方法

キャッシュの作成API によるプログラム

Demo

Page 31: 分散キャッシュ テクノロジー  “Velocity”

アーキテクチャ

キャッシュの動作ローカルキャッシュ高可用性構成レプリケーション( Not in V1)フェールオーバー時の動作

コンポーネントローカルコンポーネント分散コンポーネント

Page 32: 分散キャッシュ テクノロジー  “Velocity”

ローカルキャッシュローカルキャッシュはローカルであることと、シリアライズされていないという 2 点でパフォーマンスに貢献クライアント通知機能でクライアントとプライマリの同期

Velocity クライアントローカルキャッシュ

Velocity クライアントローカルキャッシュ

Put(K2, v2) Get(K2)

ルーティング層ルーティング層

Cache2Cache1プライマリリージョン

K2, V2プライマリリージョン

K1, V1

Cache3プライマリリージョン

K3, V3

K2, V2

Page 33: 分散キャッシュ テクノロジー  “Velocity”

高可用性の構成

Velocity クライアント

Velocity クライアント

Cache2

セカンダリリージョン

Cache3

セカンダリリージョン

プライマリリージョン

Put(K2, v2)

K2, V2

K2, V2

Get(K2)

プライマリリージョン

K3, V3 K1, V1 K1, V1

K3, V3

Cache1

セカンダリリージョン

プライマリリージョン

K3, V3

K1, V1

ルーティング層 ルーティング層

• Put (K2, V2) on Cache1– Cache2 は変更のレプリカをセカンダリ Cache1 と Cache3 へ送信

– Cache1 または Cache3 からの ACK を待ち、クライアントに応答– すべてのノードからの ACK を待つ必要はない(クォーラムベース)

• Get (K2) on Cache3– Cache3 は K2 のプライマリ Cache2 へリクエストをルーティ

ング

K2,V2

Page 34: 分散キャッシュ テクノロジー  “Velocity”

レプリケーション (not in V1)

Cache2Cache1 Cache3

レプリカリージョン

• Put (K2, V2) on Cache1– Cache2 はローカルの処理を行い、 Cache1 に応答を返す– その後、 Cache2 は非同期処理ですべてのホストにレプリカを送信

• Get on cache3– Cache 3 はローカルキャッシュからデータを取得し、結果を返す

Put(K2, v2)

K2, V2

Get(K2)

レプリカリージョン レプリカリージョン

K3, V3 K1, V1 K1, V1K3, V3 K3, V3K1, V1

K2, V2K2, V2

ルーティング層

Page 35: 分散キャッシュ テクノロジー  “Velocity”

フェールオーバー時の動作Cache4Primary for (K4,V4)

K4, V4

Secondary for K1, V1K3, V3

Partition ManagerGlobal

Partition Map

Cache2Cache1 Cache3Primary for (K2,V2) Primary for (K3,V3)

K3, V3

ルーティングテーブル

Secondary for K2, V2

K1, V1

K3, V3Secondary for

K3, V3 K1, V1Secondary for

K4, V4K2, V2

K2, V2

レプリケーションエージェント

再構成エージェント

ローカルパーティションマップ

1. Cache3: Cache2 の障害を検知し、 GPM である Cache4 に通知2. Cache4: Cache2 が持っているプライマリパーティション( K2 を含む)に対するセカンダリを探し、その中から新しいプライマリを選出3 . Cache4: Cache1 を新プライマリとして決定、Cache1 と Cache3 に通知、 GPM を更新4. Cache1: 他のセカンダリである Cache3 に対して最新データの確認5 . Cache1: K2 に対するプライマリに昇格、再構成を実行

Page 36: 分散キャッシュ テクノロジー  “Velocity”

フェールオーバー時の動作Demo

Page 37: 分散キャッシュ テクノロジー  “Velocity”

ローカルストアコンポーネント

Velocity コンポーネント管理監視

キャッシュモニター

ツール統合

インメモリデータマネージャ ハッシュ , B- ツリー

DM API

分散マネージャディスパッチマネージャ分散

オブジェクトマネージャ

分散コンポーネント

障害検知高信頼性メッセージング

データ転送

Fabric

パーティションマネージャ( LPM 、 GPM )

レプリケーションエージェント

再構成エージェント

ルーティングテーブル

Common Availability Substrateキャッシュ API & サービス

キャッシュ API

キャッシュサービス

オブジェクトマネージャ ポリシー管理

クライアント通知機能

リージョン管理クエリ処理

キャッシュ API

ローカルキャッシュ

クライアント

ディスパッチ管理

フェデレートクエリプロセッサ

Page 38: 分散キャッシュ テクノロジー  “Velocity”

ローカルコンポーネント :

インメモリデータマネージャメモリベースのローカルデータ管理データ構造、ハッシュテーブル操作、レコードアクセス、タグ、タグベースアクセス同時性制御バージョニング期限切れ、強制排出

オブジェクトマネージャデータマネージャが管理するデータ形式のオブジェクトをオブジェクトとして抽象化し、管理するアブストラクションレイヤーオブジェクトはデータマネージャで管理される形に変換されるリージョン管理、アイテム管理(オブジェクト+メタデータ)、キャッシュポリシーメモリサイズと Eviction の管理データマネージャへのローカルLINQ クエリクライアントへの通知機能

分散オブジェクトマネージャリクエストがローカルホストにあるか、リモートホストにあるかの切り分けプライマリノードへのリクエスト転送CAS とのインターフェースによりHA やレプリケーションを実現

Page 39: 分散キャッシュ テクノロジー  “Velocity”

分散コンポーネント再構成エージェント

再構成が必要になる4つのケースとその対応プライマリの障害

プライマリの排除セカンダリのプライマリへの昇格 (PM が選出 )

セカンダリの障害による排除パフォーマンスの問題から単純に排除

プライマリの障害回復による復帰

セカンダリとして参加セカンダリの新規追加

データを事前に復旧するためにビルドフェーズを経て、データ転送による妨害をすることがなくなった時点で参入

パーティションマネージャパーティションマップの維持管理クラスター内のノード障害の通知は PM が受け取り、再編成を開始パーティションマップ

パーティションとノードとのマッピング(ハッシュ)テーブルグローバルパーティションマップ:すべての名前付きキャッシュに対するパーティションマップローカルパーティションマップ:ノードごとのパーティションのリスト

Page 40: 分散キャッシュ テクノロジー  “Velocity”

分散コンポーネントレプリケーションエージェント

高可用性のためのレプリケーション機能

単一マスターを基にした、プライマリ - セカンダリ構成

Write オペレーションは常にプライマリプライマリから、複数のセカンダリで構成される WRITE クォーラムにオペレーションを送信

Fabric2重リング構造による障害検知障害時のノードリーダー選出メッセージ転送メッセージルーティングテーブルの管理

64

210

2

3090

135

180

225

5076

120

151

103

200

83

98

174 218

250

4046

17

r-6

r-5

r-4

r6

r5

r4

r7

Page 41: 分散キャッシュ テクノロジー  “Velocity”

まとめ

方向性クラウドにおける役割他のテクノロジとの関連スケジュール

Page 42: 分散キャッシュ テクノロジー  “Velocity”

Velocity の方向性Web シナリオ

エンタープライズ/ HPC

シナリオ

Software+Services シナリオ

データグリッドとし

てのキャッシュLINQ で容易に、直接

クエリが可能

データとコンピュー

ティングの同一カ所への

配置( HPC サーバへの

統合 )永続性

様々なクライアントか

らのアクセスをサポート

データベースアクセ

ス遅延の短縮化スケーラビリティと可用

性の向上

アクティビティデータの

繰り返し利用

IIS/ASP.Net アプリケ

の状態データの格納

プリフェッチによるレ

ファレンスデータの参照効

率化

クラウドストレージ

に対するアプリケー

ションキャッシュSQL Data Service 、

Windows Azure Storage Service との統合

今後のデータサービス

    ( BI 、ストリー

ミング、レポーティン

グ)

REST および SOA の

アクセス

Page 43: 分散キャッシュ テクノロジー  “Velocity”

クラウドにおける Velocity の役割

クラウドの遅延に対してキャッシュや同期という機能が重要

参考  Sync Framework 、 Huron 、 Astoria Offline

3つの展開パターン

クラウドでホストされるアプリケーション

オンプレミスアプリケーション

サービスとして

Page 44: 分散キャッシュ テクノロジー  “Velocity”

クラウドでホストされるアプリケーション

Storage / SDS

Windows Azure

サービスロールVelocityクライアント

Velocity キャッシュ

Windows Azure

サービスロールVelocityクライアント

Windows Azure

サービスロールVelocityクライアント

Page 45: 分散キャッシュ テクノロジー  “Velocity”

オンプレミスアプリケーション

アプリケーション

Velocity クライアント

Velocity キャッシュ

ASP.NETアプリケーショ

ンVelocity クライアント

アプリケーション

Velocity クライアント

   Storage/SSDS

Page 46: 分散キャッシュ テクノロジー  “Velocity”

サービスとしての Velocity

アプリケーションアプリケーションASP.NET

アプリケーション

  Storage/SSDS

Velocity クライアン

トVelocity

クライアントVelocity

クライアント

Velocity キャッシュサービス

Page 47: 分散キャッシュ テクノロジー  “Velocity”

SQL ServerSQL Data Services

ADO.NET DataSet

ASP.NET キャッシュ

データ関連テクノロジとの関連

VELOCITY分散 Fabric

API

surface

API surface

バックグラウンドでの統合

SQL Server CEストレージエンジンISAM APIs小さなフットプリントコンポーネント化された組み込み DB

大規模分散インフラスケールアウトフェールオーバーレプリケーション分散ハッシュテーブル

任意のオブジェクトを格納できる単純なキャッシュページキャッシュ基本機能Get/Put/Delete API

結果セットに対するキャッシュGet/Put/Delete APIs単純クエリリッチなイベント処理

エンタープライズデータベースリッチなデータベース機能通知機能ブローカー機能

デー

タマ

ネー

ジャ

Page 48: 分散キャッシュ テクノロジー  “Velocity”

スケジュール

CTP1TechEd 2008

CTP2PDC 2008

CTP3Mix 2009

Mid 2009RTM

分散パーティションキャッシュサービス

リージョンとタグ検索ローカルキャッシュ ASP.Net 統合可用性 構成オプションPowershell

Bulk Access APIs セキュリティRead-ThroughWrite-Behind

イベント通知

Page 49: 分散キャッシュ テクノロジー  “Velocity”

まとめ

パフォーマンス

可用性

スケーラビリティVelocity

Http://msdn.microsoft.com/data