スマートグループキャッシュの再構築におけるデッドロック

私はCiviに精通していないため、事前に申し訳ありませんが、私はチームで最も経験豊富なメンバーではありません。

私たちは、実行するたびにCPUが完全に最大になるRebuild Smart Group
Cacheジョブで問題に遭遇しているようです。ログの問題を深く見て、次のような結果が得られました。

[info] $Fatal Error Details = Array
(
    [callback] => Array
        (
            [0] => CRM_Core_Error
            [1] => exceptionHandler
        )

    [code] => -1
    [message] => DB Error: unknown error
    [mode] => 16
    [debug_info] =>
    DELETE  g
      FROM  civicrm_group_contact_cache g
      WHERE  g.group_id = 120  [nativecode=1213 ** Deadlock found when trying to get lock; try restarting transaction]
    [type] => DB_Error
    [user_info] =>
    DELETE  g
      FROM  civicrm_group_contact_cache g
      WHERE  g.group_id = 120  [nativecode=1213 ** Deadlock found when trying to get lock; try restarting transaction]
    [to_string] => [db_error: message="DB Error: unknown error" code=-1 mode=callback callback=CRM_Core_Error::exceptionHandler prefix="" info="
    DELETE  g
      FROM  civicrm_group_contact_cache g
      WHERE  g.group_id = 120  [nativecode=1213 ** Deadlock found when trying to get lock; try restarting transaction]"]
)

それはまた、クエリで起こった

       [user_info] => INSERT IGNORE INTO civicrm_group_contact_cache (contact_id, group_id)
        SELECT DISTINCT id, group_id FROM civicrm_temp_group_contact_cache910
       [nativecode=1213 ** Deadlock found when trying to get lock; try restarting transaction]

これは、 https://civicrm.org/に関連していますか?ブログ/
eileen/478-group-contact-cache-deadlocks-improvement

?ブログ投稿に記載されているキャッシングの設定を変更することで軽減されますか?

ベストアンサー

それはかなりそれを要約する。 civicrm/admin/setting/search?reset = 1でSmart
Groupのキャッシュタイムアウトを変更し、スケジュールされたジョブの制限を設定すると同時に、各ジョブの実行ごとにXグループだけが考慮されるようにして同様の問題を修正しました。

別の状況では、私たちは以下を行った(チケットシステムから貼り付けた)。

  • set cache clearing to deterministic drush cvapi setting.create
    smart_group_cache_refresh_mode=deterministic
  • created a scheduled job to run always
    job.group_cache_flush

Outcome was clearing the civicrm_group_contact_cache after the 5
minute time we allow caches to be valid.

This should resolve deadlocks that occur during cache clearing.
It will not resolve deadlocks that may occur during cache
rebuilding

うまくいけば、それらは進歩の方法のいくつかのアイデアを与える

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です