*

専用Memcacheは共有Memcacheよりも本当に性能が高いのか検証する Part2

公開日: : 投稿者: GAE

前回のGAEの「専用Memcacheは共有Memcacheよりも本当に性能が高いのか検証する」が投稿されてからだいぶ時間が経ってしまいましたが、今回はその第二弾です。

前回は「保存容量、読込・書込速度」に観点を置いて調べましたが、今回は「データの残存期間」について違いがあるのかどうかを調べてみました。

※専用Memcache、共有Memcacheの説明や設定方法などは前回冒頭で触れていますので、今回は触れません。

 

1. フラッシュのタイミング

前回の記事でも少し触れていますが、Memcacheは専用、共有のどちらも永続性やSLAの保証はありませんので、「いつ」という明確なタイミングはわかりません。

※参考URL: https://cloud.google.com/appengine/docs/adminconsole/memcache

 

明確なタイミングはわからないと前述しましたが、GAE/JのMemcacheServiceではキャッシュ時に有効期限を指定することができます。

※有効期限を指定しても期限内にキャッシュがフラッシュされることはあります。

参考URL: https://cloud.google.com/appengine/docs/java/memcache/#Java_How_cached_data_expires

有効期限の指定方法は下記の3つがあります。

  1. キャッシュ時からの有効期限をミリ秒単位で指定する
  2. キャッシュ時からの有効期限を秒単位で指定する
  3. キャッシュの有効期限を日時で指定する

※参考URL: https://cloud.google.com/appengine/docs/java/javadoc/com/google/appengine/api/memcache/MemcacheService#put(java.lang.Object, java.lang.Object, com.google.appengine.api.memcache.Expiration)

 

2. データの残存期間検証

2.1 検証方法

有効期限を指定しないデータと指定したデータの2種類をキャッシュし、

毎分cronでMemcacheの残存内容をメールする。

有効期限は、1分、5分、1時間、10時間、24時間、36時間を設定しました。

 

2.2 共有Memcacheの残存期間検証結果

  • キャッシュ日時: 2014/09/24 16:50:35
  • 初回cron実行日時: 2014/09/24 16:52:36
有効期限 削除確認経過時間 削除確認日時
1分 2分 2014/09/24 16:52
5分 5分 2014/09/24 16:55
1時間 1時間 2014/09/24 17:50
10時間 10時間 2014/09/25 02:50
24時間 17時間9分 2014/09/25 09:59
36時間 17時間18分 2014/09/25 10:08
指定なし 17時間18分 2014/09/25 10:08

有効期限1分〜10時間までは有効期限まで残存していましたが、

有効期限1日、1.5日、指定なしはキャッシュから約17時間でキャッシュが

削除されてしまいました。

有効期限1.5日と指定なしのキャッシュが同時刻で削除されているので、

たぶんインフラ側で何かしらの理由でキャッシュのフラッシュが実行された

のでしょう。

今回の共有Memcacheの有効期限は現状最大約17時間、ということが言えますね。

 

2.3 専用Memcacheの残存期間検証結果

  • キャッシュ日時: 2014/09/24 16:40:48
  • 初回cron実行日時: 2014/09/24 16:42:56
有効期限 削除確認経過時間 削除確認日時
1分 2分 2014/09/24 16:42
5分 5分 2014/09/24 16:46
1時間 1時間 2014/09/24 17:41
10時間 10時間 2014/09/25 02:40
24時間 24時間 2014/09/25 16:41
36時間 36時間 2014/09/26 04:41
指定なし 56時間36分 2014/09/27 01:16

有効期限を指定した場合は、全てその時間まで残りました。

有効期限を指定しないものに関しては、56時間36分も残存しました。

ですが、インフラ側の何かしらの事情で消されたのか、何かしらの有効期限で

消えたのか、詳しいことは不明ですね。

ただ、明らかに共有Memcacheよりは長く保持されそう、ということは分かりました。

 

3. まとめ

以上の検証結果より、残存期間でも専用Memcacheは従来の共有Memcacheよりも

圧倒的に長い時間保持できることが分かりました。

しかし、長い時間データを保持してくれることは分かりましが、最初に触れた通り、

専用Memcacheであってもいつ突然キャッシュがクリアされるか分かりません。

そのことを踏まえると、専用Memcacheの1GB毎にかかる毎月$86.4の課金は少し

割高に感じてしまうかも知れません。

ですが、頻繁にDatastoreへのアクセスがあり、スピーディにデータを取得したいシステムの場合は、大変活躍するAPIになることでしょう。

関連記事

Google App EngineからのSpreadSheetの権限変更について

Google App Engine(以下GAE)からGoogleDocsのSpreadSheetを操

記事を読む

Search API詳細解説 Part4「Search API 詳細 検索性能編」

Search API詳細解説シリーズ タイトル Part1Search API 概要説明

記事を読む

PaaS最前線!たったの15分でできるGAE/GO入門!

はじめに 2015年7月ついにGoogle App EngineのGO言語正式サポートが決定しまし

記事を読む

Google App Engine Modules のScalingを試す

みなさんこんにちは。 前回の記事では、GAE Modulesの簡単なサンプルを配備し、動作を確

記事を読む

Search APIの「Faceted Search」を使ってみた

Search API詳細解説シリーズは完結しましたが、2015年2月19日のAppEngine SD

記事を読む

Search API詳細解説 Part3「Search APIの使い方 検索編」

Search API詳細解説シリーズ タイトル Part1Search API 概要説明

記事を読む

Prediction API入門(後編)

今回はPrediction API on GAE/J みなさん、こんにちは。Prediction

記事を読む

App Engine for PHP ベータ版から正式版へ

GCPBlogの記事によると App Engine for PHP(PHPアプリをGoogle Ap

記事を読む

GAEのautomatic scalingとbasic scalingを徹底比較!!

Google App Engine(以下GAE)(※1)は、GCPユーザならば言わずと知れた

記事を読む

GAEのスケーリング 後編 <最適化の実践>

この記事では、こちらの公式ドキュメントをもとに、GAEのスケーリングの仕組みと最適化のやり方について

記事を読む

PAGE TOP ↑