SlideShare a Scribd company logo
1 of 10
Download to read offline
Copyright © 2014 by S-cubism Technology Inc. All rights reserved. 
Cloud Design Pattern#1 Cache-Aside 
2014/8/1 
http://azure.microsoft.com/ja-jp/
Copyright © 2014 by S-cubism Technology Inc. All rights reserved. 
カテゴリ 
可用性 
データ管理 
設計および実装 
メッセージング 
管理および監視 
パフォーマンスおよびスケーラビリティ 
回復性 
セキュリティ
Copyright © 2014 by S-cubism Technology Inc. All rights reserved. 
概要 
データストアからオンデマンドにキャッシュ読み込みを 行います。 
「データストアアクセスは、必要なときだけ」 
キャッシュとデータストアの整合性を維持します。
Copyright © 2014 by S-cubism Technology Inc. All rights reserved. 
課題と背景 
アプリは、アクセスを最適化しなければならない 
⇒キャッシュの提供
Copyright © 2014 by S-cubism Technology Inc. All rights reserved. 
課題と背景 
Cash Asideパターンでは、リードスルーなキャッシング をエミュレートするデザインパターンです。 
リードスルー? 
キャッシュ 
データストア 
読み込み要求 
ある? 
ないよ。 
ある? 
保持 
http://hiro2matome.seesaa.net/article/401763234.html
Copyright © 2014 by S-cubism Technology Inc. All rights reserved. 
いつ使うか? 
キャッシュがリードスルー操作等を標準装備し ていない場合。 
リソースの需要が予測できない場合。 
「キャッシュ作り込みたいんだけど、がっつりメモリ食いそう 
なんだよね。。」な時 
オンデマンドなので、必要に応じてキャッシング。
Copyright © 2014 by S-cubism Technology Inc. All rights reserved. 
実装 
Microsoft Azureでは、Azure Cacheを利用して 
CasheAsideパターンを実装可能です。 
http://azure.microsoft.com/ja-jp/services/cache/ 
http://redis.io/
Copyright © 2014 by S-cubism Technology Inc. All rights reserved. 
エラーでRedis作れなかった。。
Copyright © 2014 by S-cubism Technology Inc. All rights reserved. 
実装 
private DataCachecache; 
public asyncTask<MyEntity> GetMyEntityAsync(intid){ 
varkey = string.Format("StoreWithCache_GetAsync_{0}", id); 
varexpiration = TimeSpan.FromMinutes(3); 
boolcacheException= false; 
try { 
// キャッシュにヒットすれば、Entity取得 
varcacheItem= cache.GetCacheItem(key); 
if(cacheItem!= null){ 
return cacheItem.Valueas MyEntity; 
} 
} catch (DataCacheException){ 
cacheException= true; 
} 
// キャッシュにヒットしていない場合 
// データストアからEntity取得 
varentity = xxx.GetMyEntityFromDataStore(key); 
if(!cacheException) { 
try { 
if(entity != null) { 
// キャッシュする 
cache.Put(key, entity, timeout: expiration); 
} 
} catch ....// 略 
} 
return entity; 
}
Copyright © 2014 by S-cubism Technology Inc. All rights reserved. 
留意事項 
1.アプリのアクセス特性⇔キャッシュ有効期間 
2.整合性は完全には担保されていない

More Related Content

More from エンジニア勉強会 エスキュービズム

More from エンジニア勉強会 エスキュービズム (20)

Go言語によるWebアプリケーション開発
Go言語によるWebアプリケーション開発Go言語によるWebアプリケーション開発
Go言語によるWebアプリケーション開発
 
機械学習ライブラリ : TensorFlow
機械学習ライブラリ : TensorFlow機械学習ライブラリ : TensorFlow
機械学習ライブラリ : TensorFlow
 
Developer Summit 2016 参加してきました。
Developer Summit 2016 参加してきました。Developer Summit 2016 参加してきました。
Developer Summit 2016 参加してきました。
 
ほんのりTDD
ほんのりTDDほんのりTDD
ほんのりTDD
 
IoTで何をやったか
IoTで何をやったかIoTで何をやったか
IoTで何をやったか
 
2016 新人研修 基本技術講座 (1)
2016 新人研修 基本技術講座 (1)2016 新人研修 基本技術講座 (1)
2016 新人研修 基本技術講座 (1)
 
Dockerを用いたマイクロサービスについて
Dockerを用いたマイクロサービスについてDockerを用いたマイクロサービスについて
Dockerを用いたマイクロサービスについて
 
VRのコンテンツ
VRのコンテンツVRのコンテンツ
VRのコンテンツ
 
Azureで動いている機械学習のいろいろについて
Azureで動いている機械学習のいろいろについてAzureで動いている機械学習のいろいろについて
Azureで動いている機械学習のいろいろについて
 
レイアウトについて
レイアウトについてレイアウトについて
レイアウトについて
 
アルゴリズムとデータ構造(初歩)
アルゴリズムとデータ構造(初歩)アルゴリズムとデータ構造(初歩)
アルゴリズムとデータ構造(初歩)
 
何故エンジニアはテストをしないのか
何故エンジニアはテストをしないのか何故エンジニアはテストをしないのか
何故エンジニアはテストをしないのか
 
IoTのIを考えてみる話
IoTのIを考えてみる話IoTのIを考えてみる話
IoTのIを考えてみる話
 
AzureのIaaSとかの話
AzureのIaaSとかの話AzureのIaaSとかの話
AzureのIaaSとかの話
 
【エンジニア勉強会】品質ってなんなのさ
【エンジニア勉強会】品質ってなんなのさ【エンジニア勉強会】品質ってなんなのさ
【エンジニア勉強会】品質ってなんなのさ
 
【エンジニア勉強会】PMやってみた
【エンジニア勉強会】PMやってみた【エンジニア勉強会】PMやってみた
【エンジニア勉強会】PMやってみた
 
Dockerを社内で使うために
Dockerを社内で使うためにDockerを社内で使うために
Dockerを社内で使うために
 
Riot.jsに触れてみた話
Riot.jsに触れてみた話Riot.jsに触れてみた話
Riot.jsに触れてみた話
 
Go言語オーバービュー201507
Go言語オーバービュー201507Go言語オーバービュー201507
Go言語オーバービュー201507
 
Winストアアプリでble接続
Winストアアプリでble接続Winストアアプリでble接続
Winストアアプリでble接続
 

Recently uploaded

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Recently uploaded (9)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

Cloud Design Pattern #1 Cache-Aside_エンジニア勉強会20140917

  • 1. Copyright © 2014 by S-cubism Technology Inc. All rights reserved. Cloud Design Pattern#1 Cache-Aside 2014/8/1 http://azure.microsoft.com/ja-jp/
  • 2. Copyright © 2014 by S-cubism Technology Inc. All rights reserved. カテゴリ 可用性 データ管理 設計および実装 メッセージング 管理および監視 パフォーマンスおよびスケーラビリティ 回復性 セキュリティ
  • 3. Copyright © 2014 by S-cubism Technology Inc. All rights reserved. 概要 データストアからオンデマンドにキャッシュ読み込みを 行います。 「データストアアクセスは、必要なときだけ」 キャッシュとデータストアの整合性を維持します。
  • 4. Copyright © 2014 by S-cubism Technology Inc. All rights reserved. 課題と背景 アプリは、アクセスを最適化しなければならない ⇒キャッシュの提供
  • 5. Copyright © 2014 by S-cubism Technology Inc. All rights reserved. 課題と背景 Cash Asideパターンでは、リードスルーなキャッシング をエミュレートするデザインパターンです。 リードスルー? キャッシュ データストア 読み込み要求 ある? ないよ。 ある? 保持 http://hiro2matome.seesaa.net/article/401763234.html
  • 6. Copyright © 2014 by S-cubism Technology Inc. All rights reserved. いつ使うか? キャッシュがリードスルー操作等を標準装備し ていない場合。 リソースの需要が予測できない場合。 「キャッシュ作り込みたいんだけど、がっつりメモリ食いそう なんだよね。。」な時 オンデマンドなので、必要に応じてキャッシング。
  • 7. Copyright © 2014 by S-cubism Technology Inc. All rights reserved. 実装 Microsoft Azureでは、Azure Cacheを利用して CasheAsideパターンを実装可能です。 http://azure.microsoft.com/ja-jp/services/cache/ http://redis.io/
  • 8. Copyright © 2014 by S-cubism Technology Inc. All rights reserved. エラーでRedis作れなかった。。
  • 9. Copyright © 2014 by S-cubism Technology Inc. All rights reserved. 実装 private DataCachecache; public asyncTask<MyEntity> GetMyEntityAsync(intid){ varkey = string.Format("StoreWithCache_GetAsync_{0}", id); varexpiration = TimeSpan.FromMinutes(3); boolcacheException= false; try { // キャッシュにヒットすれば、Entity取得 varcacheItem= cache.GetCacheItem(key); if(cacheItem!= null){ return cacheItem.Valueas MyEntity; } } catch (DataCacheException){ cacheException= true; } // キャッシュにヒットしていない場合 // データストアからEntity取得 varentity = xxx.GetMyEntityFromDataStore(key); if(!cacheException) { try { if(entity != null) { // キャッシュする cache.Put(key, entity, timeout: expiration); } } catch ....// 略 } return entity; }
  • 10. Copyright © 2014 by S-cubism Technology Inc. All rights reserved. 留意事項 1.アプリのアクセス特性⇔キャッシュ有効期間 2.整合性は完全には担保されていない