*

Search API詳細解説 Part5「Search API 詳細 反映速度編」

公開日: : 最終更新日:2015/04/17 投稿者: GAE

Search API詳細解説シリーズ

タイトル
Part1 Search API 概要説明
Part2 Search APIの使い方 登録・削除編
Part3 Search APIの使い方 検索編
Part4 Search API 詳細 検索性能編
Part5 Search API 詳細 反映速度編(このページです)
Part6 Search API 詳細 限界値編

みなさん、こんにちは。
前回はSearch APIの検索性能を調査し、検索に引っかかる単語、引っかからない単語の規則性が少しは分かったかと思います。
今回はPart5「Search API 詳細 反映速度編」と題しまして、大量のDocumentの登録を実行してから、どれくらいの時間で登録できて、検索に反映されるのかを調べたいと思います。

Search APIのDBはDatastore同様に「Eventual consistency」を使っています。
「Eventual consistency」なので、登録したDocumentは複数のデータセンターで管理されています。
そのため、大量データを登録・削除処理を行った場合は、更新遅延が発生する場合が考えられます。
※参考URL: https://cloud.google.com/appengine/docs/java/search/#Java_Consistency
本記事では、その遅延が一体どれほどのものなのか、200件、500件、1000件のデータの登録を行って調べます。

データの用意と調査方法

登録するDocumentのFieldの値と構成は、Part2の「1.Documentの登録」のサンプルコードの値をそのまま使います。
調査方法は、登録用のプログラムと検索用のプログラムを用意し、JMeter 2.12を使ってそれぞれの処理URLにリクエストを投げます。

 調査結果

登録件数

(件)

登録

検索
開始時間 完了時間 処理時間(秒) 完了時間

遅延時間(秒)

200 2015-01-20 14:34:41.271 2015-01-20 14:34:42.959 1.688 2015-01-20 14:34:43.303 0.344
500 2015-01-20  14:59:27.808 2015-01-20 14:59:33.199 5.391 2015-01-20 14:59:33.633 0.434
1000 2015-01-20 15:22:51.632 2015-01-20 15:22:57.640 6.008 2015-01-20 15:22:58.472 0.832

※1. 検索完了時間は登録件数と検索結果の件数が一致した時間。
※2. 登録処理時間 = 登録完了時間 – 登録開始時間
※3. 検索遅延時間 = 検索完了時間 – 登録完了時間
※4. 一度の登録処理の件数は200件です。
・200件の場合は1回登録処理を実施
・500件の場合は3回登録処理を実施
・1000件の場合は5回登録処理を実施

全パターンで言えることですが、登録処理時間はDatastoreと比べてもだいぶ遅い印象ですね。
200件と500件の登録処理時間の差は3.703秒と差はありますが、500件と1000件の登録処理時間の差は0.617秒と、処理時間の差に大きな開きがありますね。
検索遅延時間の場合は、200件と500件は時間差は0.9秒ですが、500件と1000件の時間差は0.398秒ですし……。
この差の開きの要因は何でしょうか……?
ともあれ、登録処理時間、検索遅延時間にばらつきがあるとはいえ、登録件数が増えれば、それぞれの処理時間・遅延時間は増えているので今回のこの結果はある程度正しいのではないでしょうか。

登録するDocumentのサイズやField数によっても登録処理時間、検索遅延時間は変わるかと思いますが、今回くらいのデータであれば1000件登録しても1秒以内に検索できるようになるようなので、更新頻度の多いデータの検索にも十分実用に耐えられるように思えます。

Search API詳細解説シリーズ

タイトル
Part1 Search API 概要説明
Part2 Search APIの使い方 登録・削除編
Part3 Search APIの使い方 検索編
Part4 Search API 詳細 検索性能編
Part5 Search API 詳細 反映速度編(このページです)
Part6 Search API 詳細 限界値編

関連記事

PageSpeedの動作を検証

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

記事を読む

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

前回のGAEの「専用Memcacheは共有Memcacheよりも本当に性能が高いのか検証する」が投稿

記事を読む

東京リージョン内でのGAE・GCS・GCE間の通信はこのくらいだった

11月8日に Google Cloud Platform にて待ちに待った日本リージョンがリ

記事を読む

AppEngineでTwilioを試してみた(基本編)

AppEngineでTwilioを試してみた(基本編) AppEngineでTwilioを試し

記事を読む

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

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

記事を読む

AppEngine Security Scan Tool

AppEngine Security Scan Toolが利用出来るようになりました。ついては、GA

記事を読む

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

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

記事を読む

Google App Engine コンソールの小技

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

記事を読む

GAEでWordPressを動かす

これは2014年時点での記事になります。 2015年版の記事がありますのでそちらをご参照下さい。

記事を読む

GAEのスケーリング 前編 <仕組みについて>

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

記事を読む

PAGE TOP ↑