*

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 詳細 限界値編

関連記事

GAE/GOでTwitter Botを作ってみる~前編~

TwitterやFacebookのような有名サービスと連携したアプリを開発する場合、開発者は

記事を読む

Cloud Loggingの利用方法

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

記事を読む

PageSpeedの動作を検証

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

記事を読む

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

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

記事を読む

GCP愛を語る

RGCP(GCP好き以外お断り) 技術的な話ばかりの中のAdventCalendarですが、本

記事を読む

たったの15分でできるGAE/GO入門 標準APIその1

知っておけば必ず開発が楽になる! GAE/Go入門の本連載ですが、前回は第一弾として「PaaS最前

記事を読む

東京リージョンによってGAEの速度は早くなったのか!?

ついにGAEに東京リージョンが新設されました!!サービス開始からGAEを触れていたユーザにと

記事を読む

Search API詳細解説 Part2「Search APIの使い方 登録・削除編」

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

記事を読む

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

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

記事を読む

Google App Engine Modules in Javaを試す WebToolsPlatform編

みなさんこんにちは。 2013年の7月に、Google App Engine1.8.2がリリー

記事を読む

PAGE TOP ↑