キャッシュ定義

移動先: 案内, 検索


このページにはコアのキャッシュ定義に関する情報が含まれます。この情報はMoodleのキャッシングシステムを最大限活用したい管理者に有用です。それぞれのキャッシュに関する情報はどのバックエンドがどの定義を使用するのか決定するのに役立ちます。

規模の小さなサイトまたは単一バックエンドが適用されている単一サーバの場合、memcache等によりパフォーマンスをすぐに改善できます。
しかし、少しの計画と注意深いマッピングにより、あなたはさらにパフォーマンスを改善できます。

目次

このドキュメントの内容

コアの各キャッシュ定義にはヘッディングおよびキャッシュ説明を含みます。
名称および説明と同じく以下の情報も詳述されます:

時期:このキャッシュ定義が最初にMoodleに導入された時期です。
コンポーネントエリア: このコードが属するコードコンポーネントおよび割り当てられたエリア (ユニークで単純な名称) です。
増加: このキャッシュが固定サイズになる場合、またはサイトデータの増加に伴い増加できる場合に宣言します。恐らく、どのようにキャッシュが増加するかに関する情報です。
誰: どのユーザがキャッシュから恩恵を受けるか。
優先度: サイトでの予想されるキャッシュの使用に関する表示です。値は1から5の間です。キャッシュが固定サイズであり、アクセスされた場合にすべてのページでの使用が期待できる場合、利用できる最速のバックエンドへの割り当てが得策であると考えられるため、優先度に5が割り当てられます。反対に急速に増加すると予想され特定のページのみでアクセスされるキャッシュには優先度1が与えられます。これは特定のユーザのみ (例 教師または管理者) に適用されます。あなたのサイトにキャッシングを実装する方法を決定する場合、少なくともこのキャッシュに配慮すべきです。

大規模サイトのキャッシュ設定に関するメモ

それぞれの異なるキャッシュは個別に設定できます。また、管理者は特定のシステムのために独自に「チューニング」できます。
デフォルトではこれらのキャッシュすべてはファイルシステムを使用するよう設定されています。通常、これは小さな単一サーバのシステムに適しています。

しかし、クラスタでは共有ファイルシステムが遅いため、これらのデフォルトでは問題が発生する可能性があります。そのため、この場合、代わりにmemcachedのような速い共有キャッシュバックエンドの使用をお勧めします。多くの場合、これらのキャッシュは共有の下に動作することを前提とされている点に留意してください。
あなたは場合によってはローカルファイルシステムのような非共有キャッシュの使用を選択できます。しかし、これらのインスタンスではシステム管理の一環として、忘れずに手動でキャッシュをクリアしてください。

アプリケーションキャッシュ

アプリケーションキャッシュは共有キャッシュです。

コースのモジュールおよセクションに関する累積情報

コースモジュールに関する累積情報、「get_fast_modinfo()」と同様にコースページを表示するために使用されるセクション。
このキャッシュは「rebuild_course_cache()」内で強制的にリセットされます。

これは実運用サイトのキャッシングを最適化できる素晴らしいキャッシュです。
主にコースページおよび非常に頻繁にアクセスされる費用のかかるページのためにアクセスされます。また、コース、セクションまたは活動で情報を検索または表示する時にMoodle内で頻繁に呼ばれる関数「get_fast_modinot()」内で利用されます。

Moodle 2.6以降
コンポーネント/エリア: core, coursemodinfo
成長: 指数、コース数、コース内のセクション数およびセクション内の活動数がキャッシュサイズを決定します。
誰: 全員。このキャッシュはすべてのページでアクセスされるわけではありませんが、コースと関連付けられているため、キャッシュへのアクセスはまだ高いと予想できます。
優先度: 4

カレンダー購読

カレンダー購読をキャッシュします。
これは特定の場所に素早くアクセスするためにデータベースからカレンダー購読レコードを保存するための非常に極めてシンプルなキャッシュです。

あなたのユーザが多くのカレンダーを購読しそうにない限り、これは優先度の低いキャッシュであると考えるべきです。
保存される実データは非常に小さなものとなります。あなたに多くのカレンダー購読マッピングがある場合、このキャッシュ定義は速く小さなバックエンドにすることが理想的です。

Moodle 2.5以降
コンポーネント/エリア: core, calendar_subscriptions
成長: ユーザに作成されたカレンダー購読数により決定されます。あなたのユーザに完全に依存します。
誰: カレンダーページのカレンダーを購読している人すべて、カレンダーが表示されるブロック
優先度: 1

高度な複数サーバサイトに関するメモ

  • キャッシュとは - 「event_subscriptions」テーブルのレコードエントリです。様々なカレンダー購読に対応します。
  • キャッシュが更新されるタイミング - カレンダー購読が更新または削除される時
  • アクセス頻度 - カレンダー投稿詳細が取得されるたび
  • いつキャッシュが完全に削除されるか - これは不要です。

用語リンク [mod_glossary]

用語集フィルタの用語をキャッシュします。

用語はサイトまたはコースに関してキャッシュされます。コースIDがコースのキーとして使用される場合、「0」はサイト用語のキーとして使用されます。
キャッシュ内のそれぞれのアイテムは2つのアイテムにより構成される配列です。最初の配列は用語集、2番目の配列は用語です。
実際に保存されるデータは最小となります。仮に大きなサイトであっても、このキャッシュに必要なストレージは比較的小さなものとなります。

重要 このキャッシュをローカルキャッシュにはできません。共有キャッシュにしてください。

Moodle 2.7 (MDL-44366) 以降
コンポーネント/エリア: mod_glossary, concepts
成長: 実験的、用語集数および用語集内のアイテム数がこのキャッシュのサイズを決定します。
誰: 用語集フィルタが有効にされた場合、誰でも。
優先度: 3

設定

サイト設定をキャッシュします。これはコアおよびすべてのプラグインのための管理設定です。

このキャッシュはMoodle内のすべてのページおいてユーザの状況および作業完了に関わらず毎回アクセスされます。
あなたが利用できる最も速いバックエンドにこのキャッシュをマッピングしてください。

Moodle 2.4以降
コンポーネント/エリア: core, config
成長: 固定、アイテム数はコアの設定数およびインストール済みプラグインすべてとなります。これは設定の導入時または削除時のみ増減します。
誰: 誰でも、エラーなしですべてのページ。
優先度: 5

高度な複数サーバサイトに関するメモ

  • 共有キャッシュ必須
  • 設定を取得するため、このキャッシュは頻繁にアクセスされます。

コースカテゴリツリー

これは完全なコースカテゴリツリーをキャッシュします。

多くの場合、これはコースカテゴリ構造の操作時に使用されます。完全なツリーまたはツリーの一部が表示される状況でのアクセスを期待できます。
これにはフロントページで表示するよう設定できるエレメントを含みます。
あなたがMoodleでどのように設定したか、何を表示するように設定したかにより使われ方が決定されます。

Moodle 2.5 (MDL-38147) 以降
コンポーネント/エリア: core, coursecattree
成長: 固定、あなたのサイトのコースカテゴリに制限されます。コース作成中、このサイトは顕著に大きくなりますが、日々の利用で変化することはありません。
誰: 誰でも.
優先度: 3

高度な複数サーバサイトに関するメモ

  • 要共有キャッシュ
  • changesincoursecatイベントがトリガーされた場合、無効にされます。

コースグループ情報

コースのグルーピング情報をキャッシュします。

コースに関する情報が非常にシンプルな形でキャッシュされます。コースにグループが設定されて使用される場合のみ使用されます。
このキャッシュは1ページあたり1~2クエリの保存を期待できます。

Moodle 2.5 (MDL-34398) 以降
コンポーネント/エリア: core, groupdata
成長: 固定、コース数およびコース内のグループ数がキャッシュサイズを決定します。
誰: コース内グループにアクセスするユーザすべてが使用されます。
優先度: 2

高度な複数サーバサイトに関するメモ

  • コースのグループデータの取得時に更新されます。
  • 共有キャッシュに必要です。

データベースメタ情報

カラムに関する情報を含むデータベーステーブルのメタ情報をキャッシュします。

このキャッシュは優先キャッシュです。Moodle内のほとんどのページでアクセスされるため、その運用は高価なものとなる可能性があります。
それぞれのエントリはキーとしてテーブル名を使用します。また、キャッシュデータはデータベーステーブルの構造です。

Moodle 2.4 (MDL-25290) 以降
コンポーネント/エリア: core, databasemeta
成長: 固定、データベーステーブル数がキャッシュサイズを決定します。プラグインのアップグレードおよびインストール・削除時のみ変更できます。
誰: 誰でも
優先度: 5

高度な複数サーバサイトに関するメモ

  • 共有キャッシュに必要です。
  • 共有しない場合、一時テーブルの作成を含むデータベース構造変更後にキャッシュを無効にする必要があります。

イベント無効化

このキャッシュはMoodle 2.7で導入されたMUC APIのイベント無効化を管理するため使用されます。

これはMoodle内で頻繁に使用されるものではありません。編集時および複数キャッシュの削除が必要な場合に使用されます。複数キャッシュすべてが共有されるものではなく、次回ユーザがキャッシュに接触した時点で削除できます。全体のキャッシュサイズは相対的に大きくありません。また、これらのキャッシュはページアクセス時に頻繁にチェックされるため、キャッシュを速いバックエンドにマップすることをお勧めします。

Moodle 2.4 (MDL-25290) 以降
コンポーネント/エリア: core, eventinvalidation
成長: 固定、イベントは定義により購読されます。また、プラグインのアップグレード、インストールおよび削除中のみ変更されます。
誰: 誰でも。操作によりイベントが発動されます。キャッシュが切断された場合、ユーザが次回ページにアクセスするまで反映されません。
優先度: 4

高度な複数サーバサイトに関するメモ

  • 無効なものが発生した場合、すぐに削除されるのと同時にタイムスタンプ付きのイベントレコードが作成されます。
  • 共有キャッシュを必要とします。

イベントオブザーバ

このキャッシュはイベントオブザーバのリストを保存するため使用されます。

インストールおよび更新でイベントオブザーバリストの初期化中に更新されます。
このキャッシュはイベント発生時にアクセスされます。

Moodle 2.6 (MDL-39846) 以降
コンポーネント/エリア: core, observers
成長: ?
誰: ?
優先度: ?

高度な複数サーバサイトに関するメモ

  • 共有キャッシュを必要とします。

特定ユーザの外部バッジ

外部バッジの保存に使用されます。

Moodle 2.5.2, 2.6 (MDL-40924) 以降
コンポーネント/エリア: core, externalbadges
成長: ?
誰: ?
優先度: ?

条件付き利用制限の評価のための評定アイテムキャッシュ [availability_grade, items]

条件付き利用の目的でコース評定アイテムのキャッシュに使用されます。

注意: このキャッシュでは3600秒 (1時間) のTTL (Time To Live 生存期間) を設定します。

'Moodle 2.7 (MDL-44070) 以降
コンポーネント/エリア: availability_grade, items
成長: ?
誰: ?
優先度: ?

HTML Purifier - クリーニング済みコンテンツ

これは問題の可能性のあるデータをクリーニングした後のMoodleすべての部分のテキスト (フォーラム、リソース、説明等) キャッシュです。

キャッシュはユーザに関連するテキストおよびテキストのコンテクストをクリーニングします。

ヒント: このデータはクラスタノードのローカルキャッシュに安全に保存できます。

Moodle 2.4.2, 2.5 (MDL-36297) 以降
コンポーネント/エリア: core, htmlpurifier
成長: 急激、通常はユーザ+コンテクストの組み合わせでクリーニングされたコンテンツが1回保存されます。
誰: 誰でも
優先度: 3


高度な複数サーバサイトに関するメモ Moodle 2.5

  • これは共有キャッシュを要求します。
  • 共有されない場合、すべてのアップグレード後または「$CFG->allowobjectembed」設定の変更後、手動で削除する必要があります。

Moodle 2.6およびそれ以降において

  • これはローカルまたはストアノードキャッシュで正常に動作します。あなたは特別に何かする必要はありません。

言語ストリングキャッシュ

言語ストリングキャッシュはMoodle内で最も重要なキャッシュの1つであり、Moodleで使用される言語ファイルすべてをキャッシュします。

有限個の言語および言語ファイルがあり、ほとんどすべてのMoodle内ページでアクセスされるため、言語ストリングキャッシュはサイズを固定します。
これは設定の中でも最も重要なキャッシュであり、あなたが利用できる最速のバックエンドにマップしてください。

言語ストリングは改訂版、言語および言語コンポーネントのハッシュをキーとして使用します。付随するファイル内の配列にあるのがデータです。
後に続く言語ファイル内のストリング読み込みをスピードアップするため、このキャッシュでは静的アクセラレーションが使用されます。通常、ストリングのリクエストは1つずつであり、しばしば少ない数の言語ファイルからのみリクエストされるため、これは重要な点です。

ヒント: キャッシュの使用は「管理者 + マネージャ」および「教師 + 学生間」で大きく異なります。より多くの操作および異なるコンポーネントおよびプラグインに関わることのできる管理者およびマネージャは教師または学生が必要とする言語ファイル数以上にページにアクセスするための言語を必要とします。
キャッシュ設定をテストする場合、あなたが学生ロールとしてテストしていることを確認してください。

Moodle 2.4 (MDL-25290) 以降


コンポーネント/エリア: core, string
成長: 固定サイズ。それぞれの言語ストリングはここでキャッシュされます。キャッシュサイズは固定されますが、あなたのサイトで利用可能な言語数により決定されます。
誰: 誰でも、Moodle内の閲覧可能なページすべて。
優先度: 5

高度な複数サーバサイトに関するメモ

  • サイト間で共有された場合、言語の修正も共有されてしまうことに留意してください。

Moodle 2.4およびMoodle 2.6:

  • 共有キャッシュを推奨します。
  • キャッシュが共有されていない場合、ローカル言語パックの編集、アップグレード中の言語パックの更新、言語のインストールまたはアンインストール等の言語ストリング変更後に手動でキャッシュをクリアしてください。

Moodle 2.6およびそれ以降:

  • ローカルおよび共有ノードキャッシュが十分に動作するため、あなたが特別にする必要のあることはありません。

利用可能な言語一覧

利用可能な言語一覧をキャッシュします。

この言語一覧は言語一覧がページでリクエストされるたびに使用されます。

このため、キャッシュは1つ以上の言語がインストールされたMoodle内の多くのページでアクセスされます。 複数の言語がインストールされているサイトの場合でも固定サイズの小さなキャッシュであるため、あなたは利用可能な速いバックエンドにマッピングしても良いでしょう。

Since: Moodle 2.6 (MDL-41019)
コンポーネント/エリア: core, langmenu
成長: 固定、サイトにインストールされている言語数により決定されます。
誰: 誰でも
優先度: 4

コース連絡先一覧

コース連絡先をキャッシュするため使用されます。

コース連絡先はMoodle全体のいくつかの場所に表示されます。これは多くの場合、公開情報だと考えられ、すべてのユーザが閲覧できます。.
コースの連絡先一覧の処理は高価ですが、コース連絡先一覧は選択されたページでのみ表示されます。

Moodle 2.5 (MDL-38596) 以降
コンポーネント/エリア: core, coursecontacts
成長: コース数およびコース連絡先ロールのユーザ数により、このキャッシュのサイズが決定されます。
誰: 誰でも。コース連絡先は公開情報であり、Moodle内の誰でもアクセスできる数箇所に表示されます。
優先度: 3

高度な複数サーバサイトに関するメモ

  • これはコース表示および検索時にアクセスされます。
  • 要共有キャッシュ

プラグイン情報マネージャ

インストール済みプラグインのキャッシュ情報、有効にされているプラグインおよび現在のプラグインが表示されます。

管理インターフェースでサイトのプラグインを管理する場合、このキャッシュは頻繁に使用されます。
主にこのページにアクセスする人がこのキャッシュの存在に恩恵を受けます。

注意: これは共有キャッシュである必要があります。

Since: Moodle 2.5 (MDL-34401)
コンポーネント/エリア: core, plugin_manager
成長: 固定、プラグイン数がキャッシュのサイズを決定します。
誰: 主に管理者
優先度: 2

プラグイン情報 - ベース

  • このキャッシュはplugininfo_baseクラスで使用されプラグイン情報を保持します。
  • これはディスクからプラグインを読み込み/チェックする際にアクセスされます。
  • 共有キャッシュを必要とします。

プラグイン情報 - 活動モジュール

  • このキャッシュはplugininfo_modで使用されモジュールテーブルへのアクセスを提供します。
  • これはモジュールを読み込み/チェックする際にアクセスされます。
  • 共有キャッシュを必要とします。

プラグイン情報 - ブロック

  • このキャッシュはplugininfo_blockクラスで使用されブロックテーブル内レコードへのアクセスを提供します。
  • 共有キャッシュを必要とします。

プラグイン情報 - フィルタ

  • このキャッシュはplugininfo_filterクラスで使用されインストール済みフィルタすべてのフィルタ名を保持します。
  • これはインストール済みフィルタの読み込み/チェックする際にアクセスされます。
  • 共有キャッシュを必要とします。

プラグイン情報 - リポジトリ

  • このキャッシュはplugininfo_repositoriesクラスで使用されリポジトリテーブルのレコードアクセスを提供します。
  • これは有効にされたリポジトリの読み込み中にアクセスされます。
  • 共有キャッシュを必要とします。

プラグイン情報 - ポートフォリオ

  • このキャッシュはplugininfo_portfolioクラスで使用され有効化されたポートフォリオプラグインの一覧を保存します。
  • このキャッシュはポートフォリオが有効にされているかどうかの確認時にアクセスされます。
  • 共有キャッシュを必要とします。

問題定義

問題定義をキャッシュします。これは問題バンククラスに使用されます。

Moodle 2.4 (MDL-34399) 以降
コンポーネント/エリア: core, questiondata
成長: ?
誰: ?
優先度: ?

高度な複数サーバサイトに関するメモ

  • これは問題の読み込みおよび編集時に更新されます。
  • データ保証を必要としません。
  • 共有キャッシュを必要とします。

条件による利用可否を評価するためのユーザ評定キャッシュ


コンポーネント/エリア: core, gradecondition
成長:
誰:
優先度:

条件による利用可否を評価するためのユーザ評定キャッシュ [availability_grade, scores]

条件による利用可否のユーザ評定をキャッシュする目的で使用されます。

注意:' このキャッシュでは3600 (1時間) のTTL (Time To Live 生存時間) を設定します。

Moodle 2.7 (MDL-44070) 以降
コンポーネント/エリア: availability, scores
成長: ?
誰: ?
優先度: ?

YUIモジュール定義

JSキャッシングが有効にされた場合、Moodle内で使用されるシフタYUIモジュールの情報をキャッシュします。

Moodle 2.5 (MDL-38391) 以降
コンポーネント/エリア: core, yuimodules
成長: 固定、Moodle数、コアおよびプラグイン内のYUIモジュール。これはプラグインのアップグレード、インストールまたは削除時に変更されます。
誰: 誰でも。Moodle 2.8現在、Moodle YUIモジュールが使用されるページのほとんどで使用されます。
優先度: 5

高度な複数サーバサイトに関するメモ

  • 共有キャッシュを必要とします。

セッションキャッシュ

このデータキャッシュはサイトを閲覧しているユーザに属します。

特定ユーザのためのコースカテゴリ一覧

現在のユーザに表示されるコースカテゴリデータを保持するため使用されます。カテゴリ一覧の表示に役立ちます。
これはコースカテゴリ管理中にも使用されます。

Moodle 2.5 (MDL-38147) 以降
コンポーネント/エリア: core, coursecat
成長: ユーザの閲覧可能なサイトのカテゴリ数およびコース数が現在のユーザのキャッシュサイズを決定します。
誰: 誰でも。複数のフロントページエレメントで使用されます。

高度な複数サーバサイトに関するメモ

  • 共有キャッシュを必要とします。
  • 「changesincoursecat」または「changesincourse」イベントが発生した時点で無効にされます。

Moodle内でユーザの選択を保持するために使用されるデータ

ユーザのログイン中に保持する必要のある選択をキャッシュします。これにはユーザがコースカテゴリ管理ページで「どのカテゴリを広げたのか」のような状態を含みます。
存在期間に制限のあるユーザプリファレンスのようなものであると考えてください。

Moodle 2.6 (MDL-42299) 以降
コンポーネント/エリア: core, userselections
成長: 急激。「カテゴリを広げる」のような機能にどれだけユーザが関係を持ったかに依存します。
誰: ログイン済みユーザ

フォルダ名キャッシュ [repository_skydrive]

?

Moodle 2.6 (MDL-30740) 以降
コンポーネント/エリア: repository_skydrive, foldername
成長: ?
誰: ?
優先度: ?

リクエストキャッシュ

ここのキャッシュはリクエストの生存期間のみ存在します。また、閲覧しているユーザのみ利用できます。

コースカテゴリレコード

ユーザの閲覧可能なコースカテゴリ一覧をキャッシュします。

Moodle 2.5 (MDL-38147) 以降
コンポーネント/エリア: core, coursecatrecords
成長: 固定。ユーザが閲覧可能なサイトのコースカテゴリ数がコースカテゴリレコードを決定します。
誰: 誰でも

高度な複数サーバサイトに関するメモ

  • これはコースカテゴリを表示する際にアクセスされます。
  • changesincoursecatイベントが発動された場合、無効にされます。
  • 要ローカルキャッシュ

ヘルパキャッシング [tool_uploadcourse]

Moodle 2.6 (MDL-13114) 以降
コンポーネント/エリア: tool_uploadcourse, helper
成長: ?
誰: Administrators
優先度: ?

リポジトリインスタンスデータ

リポジトリ読み込み時、繰り返しのデータベースコールを避けるため、設定済みリポジトリのデータをキャッシュする目的で使用されます。

Moodle 2.5 (MDL-34346) 以降
コンポーネント/エリア: core, repositories
成長: ?
誰: 1つまたはそれ以上のリポジトリにアクセスできるログイン済みユーザ
優先度: ?

高度な複数サーバサイトに関するメモ

  • 要ローカルキャッシュ

詳細情報

関連情報

  • MDL-59142 - MCUの後処理CSSのキャッシュ Cache post-processed CSS in MUC