プロジェクト

全般

プロフィール

Enhancement(機能追加・改善) #1674

未完了

DBレプリケーション運用時に、参照系クエリの参照先を明示的にmasterに切り替えたい

Naoya Tozuka さんが約14年前に追加. 12年以上前に更新.

ステータス:
New(新規)
優先度:
Normal(通常)
担当者:
-
対象バージョン:
開始日:
2010-10-14
期日:
進捗率:

0%

予定工数:

説明

OpenPNE3の運用でMySQLのレプリケーション機能を利用する場合、スレーブ遅延の影響を回避するためにSELECTクエリの参照先を明示的にmasterに切り替えたい場合があります。

github.com/tozuka/OpenPNE3.git の topic-force-master-201010 ブランチに

  • コード中の特定の区間でSELECTクエリの参照先を強制的にmasterに
  • アクション単位で   〃

するためのパッチをコミットしています (1d875793f7a6d614ce82) 。取り込みをお願いします。

本パッチの用法

1. コード中の特定の区間で強制的にmaster参照

masterを強制参照したい区間を

  opDoctrineQuery::beginForcingMasterConnection();

  ...

  opDoctrineQuery::endForcingMasterConnection();
で囲みます。

アクション終了までmaster強制参照のままでよい場合は endForcing... は不要です。

アクション全体でmasterを強制参照したい場合は次の「アクション単位で…」をご検討ください。

2. アクション単位で強制的にmaster参照

masterを強制参照したいアクションについて、apps/XX_frontend/config/routing.yml 等適切な箇所で

someModule_someAction:
  url: /someModule/someAction
  class: opForceMasterRoute
  param: { module: someModule, action: someAction }
のように記述してください。(記述例は config/routing.yml.sample にあります)

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