Frage / Problem

Was ist der Tar-Persistence-Manger und wie wird er konfiguriert?

Antwort / Auflösung

Tar-Persistence-Manager

In einem Persistence-Manager können Sie CRX-Inhalte speichern. Wenn Sie CRX 1.4 installieren, speichert der Persistence-Manager Repository-Inhalte standardmäßig in Tar-Dateien.

Funktion

Der Tar-Persistence-Manager (Tar-PM) ist ein festplattenbasierter Persistence-Manager, der das Tar-Format zur Speicherung von Inhalten verwendet und in Situationen nützlich ist, in denen hohe Leistung beim Erstellen und Ändern von Daten erforderlich ist (da das Tar-Format nur hinzufügt, schreibt es sehr effizient).

Tar-PM-Clustering ermöglicht CRX, Hardware- und Softwarefehler zu kompensieren, indem eine einzelne Fehlerstelle (ein Server) eliminiert wird, während Anwendungen ohne Änderungen verwendet werden. Im Gegensatz zum Clustering von Speicherplatz basierend auf einem Datenbankserver (auch in CRX verfügbar), basiert Tar-PM-Clustering auf vernetzten Dateisystemen.

Tar-PM im Vergleich zu RDBMS-basiertem PM

Sowohl Tar-Persistenzmanager (PM) als auch datenbankbasierte PMs unterstützen Transaktionen, jedes Dateisystem und die Optimierung während der Laufzeit oder im Stapelmodus. Obwohl Tar-PM eine neue Technologie ist, hat es die folgenden Vorteile gegenüber einem datenbankbasierten Persistenzmanager:

  • Tar-Dateien sind "append-only" - sie werden nur angehängt.
  • Tar-Dateien können einfach online gesichert werden.
  • Tar ist ein Standard-Dateienformat, das über bekannte Tools wie tar, WinZip usw. zugänglich ist.
  • Tar ist ein plattformunabhängiges Format.
  • Niedrige Anschaffungs- und Lizenzkosten.
  • Tar-PM wurde speziell für JCR-Repositories entwickelt.
  • Tar-PM ist schneller als RDBMS-basierte Persistenzmanager für den Einsatz mit JCR.
  • Der Tar-PM nutzt die sehr einfache Schlüsselwertpaar-Datenstruktur von CRX.

Konfigurieren des Tar-PM

Die Konfigurationsoptionen sind:

<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 (optional, standardmäßig 256). Wenn der aktuelle Datensatz des Diagramms größer als diese Zahl (in MB) ist, wird eine neue Datei erstellt (das bedeutet, dass eine Datei tatsächlich viel größer sein kann, wenn der letzte Eintrag in einer Datei sehr groß ist, da Einträge nicht zwischen Dateien aufgeteilt werden). Die maximale Dateigröße beträgt 1024 (1 GB). Dateien bleiben während der Laufzeit geöffnet. Je nach Datenmenge, die in Tar-PM gespeichert wird, muss dieser Wert erhöht werden oder die Höchstanzahl der offenen Dateien pro Prozess muss angepasst werden. Wenn dieser Wert geändert wird, wenn bereits Tar-Dateien vorhanden sind, so werden neue Tar-Dateien bis auf diese Größe anwachsen (bereits vorhandene Dateien werden nicht geändert).
autoOptimizeAt (optional, standardmäßig 2:00-5:00). Automatische Optimierung zur vorgegebenen Zeit. Wann die Optimierung ausgeführt werden soll. Beispiel: 2:00 für eine automatische Optimierung jeden Morgen um zwei. Die Indexdateien werden bei Bedarf auch zusammengeführt. Um die automatische Optimierung zu deaktivieren, setzen Sie den Wert auf "-0" (was tatsächlich bedeutet: "Optimierung um Mitternacht beenden").
bindAddress Wenn die Synchronisation zwischen Clusterknoten über eine bestimmte Netzwerkschnittstelle durchgeführt werden sollte. Standardmäßig werden alle Netzwerkschnittstellen verwendet. Standard: "empty" (alle Schnittstellen verwenden).
portList Die Liste von Ports zur Verwendung im Mastermodus: Standardmäßig wird jeder freie Port verwendet. Wenn Sie eine Firewall verwenden, müssen die offenen Ports aufgelistet werden. Ein Port pro Arbeitsplatz ist erforderlich. Eine Liste der Port oder Portbereiche wird unterstützt, z. B.: 9100-9110 or 9100-9110,9210-9220. Standard: 0 (beliebiger Port).
preferredMaster Nur anwendbar in einer Clusterumgebung. Wenn aktiviert, versucht dieser Clusterknoten, Master zu werden, selbst wenn ein anderer Clusterknoten zuvor gestartet wurde. Default: false (not enabled)
lockClass Der Name der für die Sperrung zu verwendenden Klasse. Unterstützt werden com.day.crx.util.NativeFileLock und com.day.crx.util.CooperativeFileLock. Wenn ein Dateisystem, das Dateisperrung nicht unterstützt (z. B. einige ältere Versionen von NFS), verwendet wird, sollte die gemeinsame Sperrklasse verwendet werden. Default: com.day.crx.util.NativeFileLock
lockTimeout Wenn Clustering verwendet wird, die höchstmögliche Wartezeit (in Millisekunden), um die freigegebenen Dateien zu sperren. Standard: 0 (keine Obergrenze).
fileMode Der Dateienmodus, wie die Dateien geöffnet werden. Optionen sind "rw" (read-write), "r" (read-only), "rwd" (read-write, content is written synchronously), and "rws" (Lesen-Schreiben, Inhalt und Metadatenveränderungen werden synchron geschrieben). Optional kann a + hinzugefügt werden, um fsync nach dem Schreiben aufzurufen (dies wird den Schreibvorgang jedoch erheblich verlangsamen). Standard: „rw“ für lesen-schreiben.
optimizeSleep (optional, Standard ist 1) Die Anzahl an Millisekunden, die nach Optimierung einer Transaktion gewartet werden soll. Gleitkomma-Genauigkeit wird unterstützt.
maxIndexBuffer (optional, Standard ist 32) Nach einem Programmabbruch muss höchstens diese Menge an Daten (in Megabytes) gescannt werden, um den Tar-Indexeintrag wiederherzustellen.

 

Konfigurationswerte werden gelesen, wenn das Repository gestartet wird. Das heißt, dass Sie das Repository neu starten sollten, nachdem Sie die Konfiguration geändert haben.Hinweis: Wenn Sie die Konfiguration ändern, nachdem ein Arbeitsbereich bereits erstellt wurde, müssen Sie die beiden Dateien repository.xml und workspace.xml ändern.

Tar-Dateien optimieren

Siehe TarPM-Optimierung.

Konsistenzprüfung und Fehlerbehebung

Der Tar-PM kann beim Starten die Repository-Konsistenz überprüfen und Konsistenzprobleme korrigieren. Um Konsistenzprüfung und die automatische Fehlerbehebung zu aktivieren, die folgenden Optionen in repository.xml und workspace.xml festlegen und CRX neu starten:

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

Um Konsistenzprobleme zu beheben, muss die Konsistenzprüfungseinstellung ebenfalls aktiviert sein.

Nachdem die Konsistenzprüfung abgeschlossen ist, die relevanten Einstellungen deaktivieren. Sonst wird die Konsistenzprüfung beim Starten von CRX immer ausgeführt.

Wenn Tar-Dateien sehr groß werden

Wenn beliebige data* .tar-Dateien sehr groß sind, kommt es zu großen Transaktionen. Große Transaktionen sind ein Problem (in jedem Fall - nicht nur für den Tar-PM, sondern auch für den Hauptspeicher und andere Teilsysteme). Sie können mithilfe der jsp-Datei im Anhang analysieren, was sich in einer data*.tar-Datei befindet.

Migration von normaler Umgebung zu Clusterumgebung

Der einfachste Weg, um zu einer Clusterumgebung zu migrieren, ist es, die Daten zu exportieren, die Konfiguration zu ändern und dann die Daten zu importieren.

Migration von Clusterumgebung zu normaler Umgebung

Der einfachste Weg, um zu einer normalen Umgebung zu migrieren, ist es, die Daten zu exportieren, die Konfiguration zu ändern und dann die Daten zu importieren.

Betroffene Versionen

CRX 1.4.1 und 1.4.2

Herunterladen

* showNodes_CRX22.zip
Version für CRX 2.x.

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie