Yellowfinは頻繁にリクエストされるオブジェクトを管理し、Yellowfinデータベース(リポジトリデータベース)へのリクエストを最小限に抑えるために、多くのオブジェクトをLRU(Least Recently Used)メモリ・キャッシュに保存します。LRUキャッシュには最大サイズとタイムアウトがあります。要素はタイムアウトを過ぎるか、キャッシュが最大サイズに達して強制的に削除されるまでキャッシュに保持されます。
これらのキャッシュ・タイムアウトとサイズのパラメーターは、成長するYellowfinの使用環境を最適化するために変更することができます。最適なパフォーマンスを維持するためには、インスタンスの成長に合わせてこれらのパラメーターを調整することが重要です。現在のキャッシュのデフォルトとステータスは、Yellowfin の標準的な URL の最後に info_cache.jsp を追加することで表示できます。
例えば:localhost:7373/info_cache.jsp
のようになります。
キャッシュの種類に関わらず効果的なキャッシュを持つことは、エンドユーザーにとって高いパフォーマンスにつながります。キャッシュが有効に活用されるとYellowfinはリポジトリデータベースやデータソースに頻繁にアクセスする必要がなくなり、ネットワークやCPUのリソースを消費しなくなります。トレードオフとしては多くのものが入っている大きなキャッシュはRAMを消費します。環境を分析しシステムとビジネスのニーズに沿った効果的なキャッシュ戦略を実行するのはシステム/Yellowfinの管理者にとって重要です。
ここでは、Yellowfinのキャッシュとその設定可能なパラメータの一覧を紹介します。
Prime content caches
Prime content cachesは、最近使用したコンテンツ(レポート/ダッシュボード)のキャッシュです。起動時にキャッシュされます。
パラメーター:
- Prime content caches(Integer): 最近使用したレポートとダッシュボードの合計数です。デフォルト:25
※Prime content cachesは7.4.6より追加されたキャッシュ項目となりますので、ご使用のバージョンをご確認ください。また、デフォルト値を変更する方法について、こちらをご参照ください。
Report Data Cache
Report Data Cacheは、SQLの結果セットのキャッシュです。ビューのデフォルトキャッシュ期間が設定されている場合に適用されます。レポートデータをキャッシュするには、ビューキャッシュをオンにする必要があります。
パラメーター:
- ReportCacheSize (Integer):キャッシュするレポートセットの数です。デフォルト:20データセット
- ReportCacheMaxAge (Integer Milliseconds):キャッシュの最大保持期間です。これを超えた古いキャッシュは削除されます。デフォルト:24時間(8640000ms)
Report Definition Cache
Report Definition Cacheは、各レポートのメタデータのキャッシュです。Report Definition Cacheはレポート自体のデータではなく、レポートの構成に関する情報しか格納されていないため、Report Data Cacheとは異なります。
パラメーター:
- ReportDefinitionCacheSize (Integer):キャッシュするレポート定義の数です。デフォルト:1000
- ReportDefinitionCacheTimeout (Integer Milliseconds):キャッシュの最大保持期間です。これを超えた古いキャッシュは削除されます。デフォルト:24時間(8640000ms)
Dashboard Definition Cache
Dashboard Definition Cacheは、各ダッシュボードタブのメタデータのキャッシュです。
パラメーター:
- DashboardDefinitionCacheSize (Integer):キャッシュするダッシュボード定義の数です。デフォルト:1000
- DashboardDefinitionCacheTimeout (Integer Milliseconds):キャッシュの最大保持期間です。これを超えた古いキャッシュは削除されます。デフォルト:24時間(86400000ms)
Person Cache
PersonCacheには、プロファイル、権限、設定などを含むユーザーに関する情報が格納されます。
パラメーター:
- PersonCacheSize (Integer):キャッシュするユーザー情報の数です。デフォルト:1000(人)
- PersonCacheMaxAge (Integer Milliseconds):キャッシュの最大保持期間です。これを超えた古いキャッシュは削除されます。デフォルト:12時間(43200000ms)
Cached Filter Cache
Cached Filter Cacheは、キャッシュされたフィルターのキャッシュです。
パラメーター:
- CachedFilterCacheSize (Integer):キャッシュするフィルターの数です。フィルターの入力欄1つあたりの数で、クライアントソースフィルターは含まれません。キャッシュの方法に依存しますが、ユーザーごとにキャッシュされることもあります。入力欄ごとに、フィルターの値がキャッシュされます。デフォルト:100
- CachedFilterCachePeriod (Integer Milliseconds):キャッシュの最大保持期間です。これを超えた古いキャッシュは削除されます。デフォルト:24時間(86400000ms)
- MetaCachedSize (Integer):キャッシュする階層(従属関係)定義の数です。デフォルト:1000
- MetaCachedPeriod (Integer Milliseconds):キャッシュの最大期間です。これを超えた古いキャッシュは削除されます。デフォルト:24時間(86400000ms)
- CachedFilterBatchSize (Integer):フィルターをキャッシュする時に、一度にキャッシュする行数です。デフォルト:100
- CachedFilterCacheMethod (Code):
- NO_CACHE :メモリへキャッシュせず、都度データベースから読み込みます。
- CACHE_BY_USER:ユーザーごとに値をキャッシュします。
- CACHE_BY_SOURCE_FILTER:ソースフィルタの値毎にキャッシュします。
デフォルト:CACHE_BY_USER
- CachedFilterJoinMethod (Code):
- DATABASE:YellowfinDBに対する1つのクエリーをデータベースでデータ結合します。
- JAVA:YellowfinDBに対して複数の簡単なクエリーを実行し、JAVAでデータを結合します。
デフォルト:DATABASE
View Cache
ViewCacheは、ビューオブジェクトのキャッシュです。各ビューのキャッシュの設定は、ビュービルダーの「準備」ステップのビューオプション>パフォーマンスにあります。
Geometry Cache
ジオメトリキャッシュとは、マップのレポートで使用するジオメトリのキャッシュです。
パラメーター:
- GeometryCacheSize (Integer):メモリにキャッシュするシェイプの数です。デフォルト:4000
Report Thumbnail Cache
ReportThumbnailCacheは 、閲覧ページに表示されるレポートサムネイルイメージのキャッシュです。
パラメーター:
- ReportThumbnailCacheSize (Integer):メモリにキャッシュするレポートサムネイルイメージの数です。デフォルト:1000
Image Cache
ImageCacheは、よく使用する画像のキャッシュです。一般的にユーザーがアップロードした画像です。
パラメーター:
- ImageCacheSize (Integer Bytes):メモリにキャッシュするイメージのサイズです。デフォルト:52428800 bytes (54 megabytes)
Translation Cache
Translation Cacheは、よく使用するコンテンツ翻訳のテキストのキャッシュです。一般的にユーザーが設定した翻訳です。
パラメーター:
- TranslationCacheSize (Integer):キャッシュされる翻訳オブジェクトの数です。デフォルト:50000
- TranslationCacheMaxAge (Integer Milliseconds):キャッシュの最大保持期間です。これを超えた古いキャッシュは削除されます。デフォルト:24時間(86400000ms)
LDAP DN Cache
LDAPDNCacheは、よく使用するLDAP情報のキャッシュです。LDAP認証を使用する環境のみ有効です。
パラメーター:
- LDAPDNCacheSize (Integer):キャッシュするLDAPオブジェクトの数です。デフォルト:300000
- LDAPDNCacheMaxAge (Integer Milliseconds):キャッシュの最大保持期間です。これを超えた古いキャッシュは削除されます。デフォルト:25時間(90000000 ms)
Event Cache
EventCacheは、よくアクセスするイベント情報のキャッシュです。例えば:よくアクセスするページ、アクション、メソッドです。
パラメーター:
- EventCacheSize (Integer) :キャッシュするイベントオブジェクトの数です。デフォルト:100000
- EventCacheMaxDays (Integer):キャッシュするイベントの日数です。
Text Entity Cache
TexzEntityCacheは、Yellowfinのコラボレーションでよく使用するテキストアイテムです。例えば:ストーリーボード、タイムライン、とディスカッションストリートです。
パラメーター:
- TextEntityCacheSize (Integer):キャッシュするテキストオブジェクトの数です。デフォルト:10000
- TextEntityCacheMaxAge (Integer Milliseconds):キャッシュの最大保持期間です。これを超えた古いキャッシュは削除されます。デフォルト:12時間(43200000ms)
パラメーターを追加/編集する方法:
上記の各パラメータをweb.xmlに追加することができます。 各パラメータは以下の形式で追加してください。
[VALUE]
例:
CachedFilterJoinMethod DATABASE
MIStartup servletの下に追加します。
(新しいパラメータは、com.hof.mi.servlet.MIStartupの下に追加することができます。)
<servlet-class>com.hof.mi.servlet.MIStartup</servlet-class>
<init-param>
<param-name>CachedFilterJoinMethod</param-name>
<param-value>DATABASE</param-value>
</init-param>
Yellowfinを起動したときに、追加したパラメーターが反映されていることを確認することができます。
| Initialising CachedFilterCache... OK
| Cache Method: CACHE_BY_USER
| Cached Filter Cache Size: 100
| Cached Filter Query Cache Size: 100
| Cached Filter Meta Cache Size: 1000
| Cached Filter Cache Period: 86400000 ms
| Cached Filter Query Cache Period: 86400000 ms
| Cached Filter Meta Cache Period: 86400000 ms
また、ブラウザで info_cache.jsp ページを読み込むと、現在のキャッシュの統計情報を見ることができます。