質問/問題

Tar 永続化マネージャーとは何ですか?また、どのように設定するのですか?

回答/解決策

Tar パーシスタンスマネージャー

CRX コンテンツはパーシスタンスマネージャーに保存できます。デフォルトでは、CRX1.4 をインストールすると、パーシスタンスマネージャーは TAR ファイルをリポジトリコンテンツに保存されます。

用途

Tar パーシスタンスマネージャー(TarPM)は、コンテンツを保存するために tar ファイル形式を使用するディスクベースのパーシスタンスマネージャーであり、データの作成と変更のパフォーマンスが要求される状況で役に立ちます(Tar 形式は追加専用で、書き込みが非常に効果的です)。

Tar PM のクラスター化を使用すると、アプリケーションを変更せずに単一の障害(1 台のサーバー)を削除することで、CRX コンポーネントがハードウェアおよびソフトウェア障害を解決できます。データベースサーバー(CRX でも使用可能)に基づくクラスター化ストレージとは異なり、Tar PM クラスター化はネットワークファイルシステムに基づいています。

Tar PM と RDBMS ベースの PM の比較

Tar PM とデータベースの PM の両方は、実行時またはバッチモードでトランザクション、任意のファイルシステム、および最適化をサポートしています。Tar PM は新しいテクノロジですが、データベースをベースにしたパーシスタンスマネージャーを使用すると次のような利点があります。

  • Tar ファイルは追加専用です。
  • Tar ファイルはオンラインで簡単にバックアップできます。
  • Tar は標準ファイル形式で、tar、WinZip などの既知のツールからアクセスできます。
  • Tar はプラットフォームに依存しない形式です。
  • 所有コストとライセンス費用が安い。
  • Tar PM は JCR リポジトリ専用に設計されています。
  • Tar は JCR ユースケースの RDBMS ベースのパーシスタンスマネージャーよりも高速です。
  • Tar PM は CRX の非常に単純なキーと値のペアデータ構造を活用しています。

Tar PM の設定

設定オプションは次のとおりです。

<PersistenceManager class="com.day.crx.persistence.tar.TarPersistenceManager">
    <param name="maxFileSize" value="256"/>
    <param name="autoOptimizeAt" value="2:00-5:00"/>
    <!-- since 1.4.1 -->
    <param name="bindAddress" value=""/>
    <param name="portList" value=""/>
    <param name="preferredMaster" value="false"/>
    <param name="lockClass" value="com.day.crx.util.NativeFileLock"/>
    <param name="lockTimeout" value="0"/>
    <param name="fileMode" value="rw"/>
    <param name="optimizeSleep" value="1"/>
    <param name="maxIndexBuffer" value="32"/>
</PersistenceManager>
maxFileSize (オプション、デフォルトは 256)現在のデータファイルがこの数字(MB)よりも大きくなる場合、新しいデータファイルはかなり大きくなります(つまり、ファイルの最後のエントリが非常に大きい場合、データファイルは実際には非常に大きくなる可能性があり、エントリはファイル間で分割されません)。最大ファイルサイズは 1024(1 GB)です。データファイルは実行時に開いています。Tar PM で保存するデータの量に応じて、この値を増加するか、プロセスごとに開いているファイルの制限を調整する必要があります。tar ファイルが既に存在する場合にこの値を変更すると、新しい tar ファイルはこのサイズまで増大します(既存ファイルは変更されません)。
autoOptimizeAt (オプション、デフォルトは 2:00~5:00)自動的に指定時間を最適化します。最適化を実行する必要がある場合。例:毎朝 2:00 に自動的に最適化します。索引ファイルは、必要に応じてマージされます。自動最適化を無効にするには、「-0」に値を設定します(実際には「午前零時に最適化を停止すること」を意味します)。
bindAddress クラスターノード間での同期を特定のネットワークインターフェイスを介して実行する必要がある場合。デフォルトでは、すべてのネットワークインターフェイスが使用されます。デフォルト:空(すべてのインターフェイスを使用)
portList マスターモードで使用するポートのリストです。デフォルトでは、フリーポートが使用されます。ファイアウォールを使用する場合は、開いているポートをリスト表示する必要があります。ワークスペースごとに 1 つのポートが必要です。ポートまたは範囲のリストはサポートされています。次に例を示します。9100-9110 または 9100-9110、9210-9220。デフォルト:0(任意のポート)。
preferredMaster クラスター環境でのみ適用可能。有効になっている場合、このクラスターノードは、別のクラスターノードが開始されていてもマスターになります。デフォルト:false(無効)
lockClass ロックに使用するクラスの名前。サポートされる拡張子は com.day.crx.util.NativeFileLock と com.day.crx.util.CooperativeFileLock です。ファイルのロックをサポートしないファイルシステム(たとえば、以前のバージョンの NFS の場合)を使用する場合は、協調的なロッククラスを使用する必要があります。デフォルト:com.day.crx.util.NativeFileLock
lockTimeout クラスタリングが使用される場合の、共有ファイルのロックを待機する最大時間(ミリ秒単位)。デフォルト:0(制限なし)
fileMode データファイルを開く方法を示しているファイルモード。オプションは、「rw」(読み取り/書き込み)、「r」(読み取り専用)、「rwd」(読み取り/書き込み、コンテンツは同期的に書き込まれます)、および「rws」(読み取り/書き込み、コンテンツとメタデータの変更は同期的に書き込まれます)です。必要に応じて、書き込み後に fsync を呼び出すために + を付加することもできます(ただし、書き込み速度が大幅に遅くなります)。デフォルト:読み取り書き込み用の「rw」です。
optimizeSleep (オプション、デフォルトは 1)トランザクションを最適化した後で待機するミリ秒単位の時間。浮動小数点精度がサポートされます。
maxIndexBuffer (オプション、デフォルトは 32)異常終了した後も、この多くのデータ(MB)は tar エントリのインデックスを再作成するためにスキャンする必要があります。

 

設定値はリポジトリの起動時に読み取られます。設定を変更した後にリポジトリを再起動する必要があります。注意:ワークスペースが作成された後で設定を変更すると、repository.xml および workspace.xml ファイルの両方を変更する必要があります。

Tar ファイルの最適化

TarPM の最適化」を参照してください。

一貫性のチェックと修正

Tar PM では、リポジトリの一貫性をチェックし、起動時の一貫性の問題を解決できます。一貫性の確認を有効にし、問題を自動修正するには、repository.xml および workspace.xml の次のオプションを設定し、CRX を再起動します。

<param name="consistencyCheck" value="true"/>
<param name="consistencyFix" value="true"/>

一貫性の問題を修正するには、一貫性チェックの設定も有効にする必要があります。

一貫性チェックが終了した後、関連する設定を無効にしてください。無効にしない場合、CRX の起動時に常に一貫性チェックが実行されます。

Tar ファイルが大きくなる場合

一部のデータ*.tar ファイルが非常に大きい場合は、大きなトランザクションがあります。大きなトランザクションは問題です(Tar PM だけでなく、メインメモリやその他のサブシステムの場合もあります)。添付の jsp ファイルを使用して、データ*.tar ファイルの内容を分析できます。

標準環境からクラスター環境への移行

クラスター環境に移行する最も簡単な方法は、データを書き出し、設定を変更してからデータを読み込むことです。

クラスター化から標準環境への移行

通常の環境に移行する最も簡単な方法は、データを書き出し、設定を変更してからデータを読み込むことです。

影響を受けるバージョン

CRX 1.4.1 および 1.4.2

ダウンロード

* showNodes_CRX22.zip
CRX 2.x のバージョン

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー