プロジェクト

全般

プロフィール

Bug(バグ) #1779

日記のデータ量が多いSNSで日記検索を行うとサーバが高負荷状態になる [仕様バグ]

Kiwa Sakai13年以上前に追加. ほぼ13年前に更新.

ステータス:
Fixed(完了)
優先度:
High(高め)
担当者:
対象バージョン:
開始日:
2010-11-10
期日:
2011-05-27
進捗率:

100%

3.6 で発生するか:
Yes
[QA]バグ通知済:
はい
3.8 で発生するか:
Unknown (未調査)

説明

日記のデータ量が多い状態で日記検索を行うと、サーバに非常に負荷をかけてしまう。
大規模なSNSの運営に対応させるため、改善を行うべき。

改善案

  • 日記検索の対象期間を管理画面・config で設定できるようにし、対象データを絞る
  • そもそも日記検索機能自体を「使用しない」選択が出来るようにする

実装案

  • 既存の「日記検索機能」のON/OFFを設定できるようにする
  • 新規に「日記検索対象期間機能」を追加
  • 新規の「日記検索対象期間機能」のON/OFFを設定できるようにする
  • 新規の「日記検索対象期間機能」の検索期間を設定できるようにする
  • 「設定」は設定ファイルで行えるようにする

実装内容

実装案との変更点
  • 各設定は設定ファイルではなく管理画面で行えるようにする
  • 「日記検索機能」「日記検索対象期間機能」の設定は管理画面での日記検索(/pc_backend.php/monitoring/diary)には反映させない
  • 「日記検索対象期間機能」の入力は0以上の数値(整数)とする

関連するチケット

関連している opDiaryPlugin - Enhancement(機能追加・改善) #1542: 日記検索を設定ファイルで無効にできるようにする New(新規) 2010-08-31

関係しているリビジョン

リビジョン 66843eeb (差分)
Yuya Watanabeほぼ13年前に追加

add enable/disable setting for diary search (refs #1779)

リビジョン 2a2722cc (差分)
Yuya Watanabeほぼ13年前に追加

fixed coding standards and remove unnecessary code (fixed #1779)

リビジョン 48a2a975 (差分)
Yuya Watanabeほぼ13年前に追加

fixed complicated code (fixed #1779)

リビジョン dccdd3bf (差分)
Yuya Watanabeほぼ13年前に追加

fixed using pc_backend settings to enable/disable search (fixed #1779)

リビジョン e16a88ed (差分)
Yuya Watanabeほぼ13年前に追加

fixed English and the order of settings (fixed #1779)

リビジョン d14a6e3c (差分)
Yuya Watanabeほぼ13年前に追加

fixed English (fixes #1779)

リビジョン fbbc1c04
Rimpei Ogawaほぼ13年前に追加

Merge pull request #6 from nise-nabe/search-enh

add enable/disable setting for diary search (refs #1779)

リビジョン f99cfd02 (差分)
Yuya Watanabeほぼ13年前に追加

add default value to SnsConfig (fixes #1779)

リビジョン 9e9e323c
Rimpei Ogawaほぼ13年前に追加

Merge pull request #8 from nise-nabe/search-enh

add default value to SnsConfig (fixes #1779)

リビジョン 78f377a5 (差分)
Yuya Watanabeほぼ13年前に追加

fixed not to reflect to pc_backend diary search (fixes #1779)

リビジョン 63499d56 (差分)
Yuya Watanabeほぼ13年前に追加

fixed to validate input value of search period (fixes #1779)

リビジョン 9b6863d2 (差分)
Yuya Watanabeほぼ13年前に追加

fixed English and changed validator to use Integer (fixes #1779)

リビジョン 33acfb44
Rimpei Ogawaほぼ13年前に追加

Merge pull request #10 from nise-nabe/search-enh

fixed English and changed validator to use Integer (fixes #1779)

履歴

#1 Kousuke Ebihara13年以上前に更新

  • 優先度Normal(通常) から High(高め) に変更

#2 Kousuke Ebihara13年以上前に更新

  • [QA]バグ通知済いいえ にセット

#3 Kousuke Ebihara13年以上前に更新

  • [QA]バグ通知済いいえ から はい に変更

#4 Shingo Yamadaほぼ13年前に更新

  • 担当者Rimpei Ogawa にセット

#5 Shingo Yamadaほぼ13年前に更新

  • 期日2011-05-27 にセット

#6 Yuya Watanabeほぼ13年前に更新

  • ステータスNew(新規) から Pending Review(レビュー待ち) に変更
  • 担当者Rimpei Ogawa から Yuya Watanabe に変更
  • 進捗率0 から 50 に変更

下記のコミットで修正しました。
https://github.com/nise-nabe/opDiaryPlugin/commit/66843eeb76fe64b9b409f39e4e736c223fc0dc28

具体的には,以下の点を修正しました。
・日記検索のON/OFF
・日記検索がOFFの場合にPC/モバイルともに検索窓を表示しない
・日記検索がOFFの場合にPC/モバイルともに検索ページが404を返す

・日記検索対象期間のON/OFF
・日記検索対象期間の設定
・日記検索対象期間がONの場合に検索結果を指定された期間以内の日記で返す

#7 Yuya Watanabeほぼ13年前に更新

設定関連を管理画面で行えるように修正しました。
https://github.com/nise-nabe/opDiaryPlugin/compare/master...dccdd3bf7aeabe19845c

#8 Rimpei Ogawaほぼ13年前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更
  • 対象バージョンv1.3.2 にセット

https://github.com/balibali/opDiaryPlugin/pull/6
でコメントしています。

#9 Yuya Watanabeほぼ13年前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更

コメント内容を反映した修正を行いました。
https://github.com/nise-nabe/opDiaryPlugin/compare/master...e16a88ed

#10 匿名ユーザー がほぼ13年前に更新

更新履歴 e16a88ed93683c6863c5f60e687588c134922b5a で適用されました。

#11 Naoya Tozukaほぼ13年前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

英文の中で、他動詞であるenableを形容詞のように用いるのは誤りです。
有効になっている、という状態を表すのであれば enabled としてください。

#12 Yuya Watanabeほぼ13年前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更

下記コミットで指摘部分含む英文を修正しました
https://github.com/nise-nabe/opDiaryPlugin/commit/d14a6e3c91769149a53aa8171c5f63ad9365dafc

以下が全体の修正となります
https://github.com/nise-nabe/opDiaryPlugin/compare/master...d14a6e3

#13 Yuya Watanabeほぼ13年前に更新

更新履歴 d14a6e3c91769149a53aa8171c5f63ad9365dafc で適用されました。

#14 Rimpei Ogawaほぼ13年前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

SnsConfig の設定値取得時にデフォルト値を設定していない箇所があるため、DB上に設定値がない場合にデフォルト値が適用されていない箇所があります。

例えば、 Doctrine::getTable('SnsConfig')->get('op_diary_plugin_search_enable') としている箇所はDB上に値がない場合に null となり、結果検索機能がデフォルトで使用できない状態になっています。

SnsConfigTable の仕様がいまいちかもしれないですが、呼び出し箇所全てに第2引数のデフォルト値を設定するようにしてください。

#15 Rimpei Ogawaほぼ13年前に更新

テストを実施してもらえるようなので master ブランチに変更をマージしました。

#16 Yuya Watanabeほぼ13年前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更

SnsConfigのデフォルト値について指摘部分の修正を行いました。

https://github.com/balibali/opDiaryPlugin/pull/8

#17 Yuya Watanabeほぼ13年前に更新

更新履歴 f99cfd02d23281cd092114def93aa004cdfd5f0a で適用されました。

#18 Rimpei Ogawaほぼ13年前に更新

更新履歴 9e9e323c1dca3953bf37713554968b1802725365 で適用されました。

#19 isao sanoほぼ13年前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

検索対象期間に負の数字を入れて設定できます。
現状負の数字で設定できることで問題は起きておりませんが、今後この事に関連した問題が起きる可能性を考慮して差し戻し致します。

#20 isao sanoほぼ13年前に更新

仕様では
「検索有効設定」と「検索対象期間設定」は、管理画面での日記検索には反映されないということでしたが、
「検索対象期間設定」に関してのみ、管理画面の日記検索でも「検索対象期間設定」で設定した期間内での検索となります。

仕様と異なるため、バグとして報告いたします。

#21 Yuya Watanabeほぼ13年前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更
各コメントにおける指摘部分を下記のように修正しました。
  • コメント19 入力可能な最小値を設定する
  • コメント20 ページャ取得の際にpc_backendについては検索対象期間を反映させない

https://github.com/balibali/opDiaryPlugin/pull/9

#22 Yuya Watanabeほぼ13年前に更新

更新履歴 63499d56ec580c42e7fd0010ba330e6218de02e6 で適用されました。

#23 Yuya Watanabeほぼ13年前に更新

更新履歴 78f377a5a97945afae0cb75a7a4023e18a93dc97 で適用されました。

#24 Rimpei Ogawaほぼ13年前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

管理画面で入力する search_period について、整数以外が入力できる必要はないと思いますので sfValidatorNumber ではなく sfValidatorInteger を使ってください。また、0の入力を許可するのであれば "Please input more than 0." の文言を修正してください。

#25 Yuya Watanabeほぼ13年前に更新

コメント24の指摘を下記pull requestにて修正しました。

https://github.com/balibali/opDiaryPlugin/pull/10

#26 Yuya Watanabeほぼ13年前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更

#27 Yuya Watanabeほぼ13年前に更新

更新履歴 9b6863d2359ad7e73ee5eaf3473e10c842116e86 で適用されました。

#28 Rimpei Ogawaほぼ13年前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

修正確認しました。

#29 Rimpei Ogawaほぼ13年前に更新

  • ステータスPending Testing(テスト待ち) から Pending Review(レビュー待ち) に変更
  • 進捗率70 から 50 に変更

更新履歴 33acfb446ccf4ab7aef7fef014954fb0b80c5d40 で適用されました。

#30 Rimpei Ogawaほぼ13年前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

#31 Mutsumi Imamuraほぼ13年前に更新

  • ステータスPending Testing(テスト待ち) から Fixed(完了) に変更
  • 進捗率70 から 100 に変更

テスト完了しました。問題ありません。

他の形式にエクスポート: Atom PDF