Allgemeine Konfiguration für alle Backends
Dieses Kapitel enthält die gemeinsamen Einstellungen für die Datenbanken PostgreSQL® und MS SQL®. Diese Liste von Werten sind Schlüssel-Wert-Paare für die Konfiguration dieser Einstellungen. Die Namen (Schlüssel) werden vom Backend im Backendprofil vordefiniert - siehe Konfiguration des Backendprofils. Die weiteren Kapitel sind datenbankspezifisch für die drei verschiedenen Datenbanken InfluxDB®, PostgreSQL® und MS SQL®.
Logger für PostgreSQL® und MS SQL®
- logger.level - die Stufe der Lognachrichten, die das Backend produzieren. Mögliche Werte sind: "trace", "debug", and "info", "warn" und "error". Der Defaultwert ist: "info".
- logger.logProtobufMessages - Setzen Sie dieses Flag auf 1, um protobuf-Nachrichten vom/zum Frontend zu loggen. Der Defaultwert ist: 0.
- logger.logToStdOut - Setzen Sie dieses Flag auf 1, um Parameter der DB-Abfragen zu loggen. Der Defaultwert ist: 0.
- logger.logSql - Setzen Sie dieses Flag auf 1, um SQL-Nachrichten in die Datenbank zu loggen. Der Defaultwert ist: 0.
- logger.logSqlBindedParameters - Setzen Sie dieses Flag auf 1, um Parameter der DB-Abfragen zu loggen. Der Defaultwert ist: 0
Backendkonfiguration für PostgreSQL® und MS SQL®
- backend.readThreadsNumber - Größe der Threadpools für Lesethreads.
Die Standardeinstellung ist die Anzahl der CPU-Kerne, die auf dem Computer verfügbar sind.. Das Backend teilt die Read Requests gemäß der Archivgruppen der angeforderten Elemente.
Jede Anforderung für die vorgegebene Archivgruppe arbeitet in einem separaten Thread. Die Größe des Threadpools definiert die maximalen Threads, die gleichzeitig verwendet werden können, um Read Requests zu bearbeiten.
Wenn ein Wert kleiner als eins angegeben wird, wird der Defaultwert verwendet.
Für neue PostgreSQL®-Datenbanken, die über ein neues Projekt erstellt werden, wird der Eintragmax_parallel_workersin der Dateipostgresql.confauf die Anzahl der auf dem Computer laufenden Kerne gesetzt.Anschließend wird die Anzahl der Lesethreads im PostgreSQL®-Backend (
backend.readThreadsNumber) an diese Zahl angepasst. Dies geschieht nur für das Standard-Backend_NGA_B_PostgreSQLBackendund wird weder für andere Backends noch für bestehende Projekte angepasst.Mit diesen Einstellungen wird die Performance für viele parallele Requests verbessert. Beispielsweise in Projekten mit vielen Datenpunktfunktionen.
- backend.writeThreadsNumber - Größe der Threadpools für
Schreibthreads.
Der Defaultwert ist: 50. Wenn ein Wert kleiner als eins angegeben wird, wird der Defaultwert verwendet.
- db.timeoutToConnect - Gibt den Zeitraum in Sekunden an, der für die Verbindung zur Datenbank zur Verfügung steht. Der Standardwert beträgt 5 Sekunden. Wenn der Verbindungsaufbau länger als diese Zeit dauert, gilt die Datenbank als nicht verfügbar und der Verbindungsversuch wird abgebrochen.
- db.timeoutForQuery - Gibt an, wie viele Sekunden auf eine Antwort von der Datenbank gewartet wird, bevor die Abfrage mit einem Timeout-Fehler abgebrochen wird. Der Standardwert ist 0, was bedeutet, dass kein Zeitlimit besteht (unbegrenztes Warten).
- backend.updateElementsForQueriesOnPassive - Der
Standardwert ist true. Wenn der passive Server Abfragen ausführt,
liest jede Abfrage die ELEMENTS-Tabelle erneut.
Bei großen Projekten (mit über 100.000 archivierten DPEs) kann dieser Vorgang zeitaufwändig sein, was den Durchsatz der Abfragen verringert und die Last auf dem passiven Server erhöht.
Wenn diese Einstellung auf false gesetzt ist, wird das Update übersprungen, was die Performance verbessert. Sie sollten dies jedoch nur zur Laufzeit auf false setzen, wenn keine neuen DPEs mehr erstellt oder aktualisiert werden.
Andernfalls funktionieren Abfragen für neue DPEs nicht, bis Sie diesen Eintrag wieder auf true setzen. In solchen Fällen können Sie nach dem Ausführen einer einzelnen Abfrage für die neuen DPEs den Eintrag wieder auf false setzen. Diese Einstellung hat keinen Einfluss auf DirectRead.
- backend.allQuerysCanSkipCacheUpdate - Der
Standardwert ist false. Wenn auf false gesetzt, lesen
DirectRead und der passive Server die ELEMENTS-Tabelle bei jeder Abfrage
erneut ein.
Wenn dieser Eintrag auf true gesetzt ist, wird der Cache nur alle 30 Sekunden aktualisiert, was die Leistung verbessert.
Das bedeutet jedoch, dass das System während dieser 30 Sekunden den alten Cache verwendet und neu erstellte DPEs erst abgefragt werden können, wenn der Cache aktualisiert wurde.
Wenn der Wert false ist (Standard), wird dieses Caching nur bei Importer-Lesevorgängen verwendet, da sich DPEs während des Imports nicht ändern.
Wenn der Wert true ist, verwendet jede Abfrage dieses Caching. In diesem Fall müssen Sie darauf achten, DPEs während des 30-Sekunden-Intervalls nicht zu ändern, da dies zu unerwarteten Ergebnissen führen kann..
