*

専用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になることでしょう。

関連記事

Cloud Loggingの利用方法

はじめに 本記事はGoogle Cloud Platformの公式ページで公開されている「Goog

記事を読む

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

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

記事を読む

GAE/JからBigQueryへのStream Insert

今回はGAE/JからBigQueryへのStream Insertを試してみます。 BigQuer

記事を読む

15分でできる!!GAE/GOで高速REST APIを構築するための簡単手順 〜前編〜

iOSやAndroid等のクライアントアプリを開発する場合、サーバ側の開発も必要となるケースは多

記事を読む

PageSpeedの動作を検証

皆さん、こんにちは。 突然ですが、皆さんはPageSpeedというサービスをご存知でしょうか?

記事を読む

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

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

記事を読む

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

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

記事を読む

Google App Engine コンソールの小技

みなさんご存知、GAEのコンソールにはさまざまな機能があります。 あなたがデプロイしたアプリケ

記事を読む

GCEにPuttyから簡単接続する

年末ではありますが、先日ちょっとGCE(Google Compute Engine)を触る機会がまた

記事を読む

Datastoreモデル変更の影響調査

GoogleAppEngine(以下GAEと呼称)に限らず、開発を行なっていると『テーブルの構造を変

記事を読む

PAGE TOP ↑