Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Wenn das hier soweit getestet und für gut befunden ist - jein Der wesentliche Unterbau in lib.db sollte eigentlich (TM) durch db_addon jetzt schon genutzt werden, ich habe da aber noch nicht reingeschaut. Ich würde dir Bescheid geben, wenn ich das für "an der Zeit" halte, dann können wir schauen, was ggf. angepasst werden sollte.
Ich hätte mal eine Frage, falls hier genügend Leute mitlesen, die eine Meinung bilden und äußern wollen
Im Moment ist ja das alte database_maxage von "nur löschen" zu "löschen oder aggregieren (sum, max, min, avg, int, last, ...)" geworden. Es wurde der Wunsch geäußert, dies mehrstufig zu ermöglichen, z.B. die ersten 6 Monate täglich, von 6-12 Monaten wöchentlich, und danach zweiwöchentlich.
Da wir ja mittlerweile die Möglichkeit haben (hätten - das müssten Plugins erst noch einbauen), Daten als "nicht verfügbar" zu kennzeichnen, könnten auch kurze oder längere Ausfälle in den Daten in der Datenbank gespeichert werden. Wenn jetzt aggregiert wird - z.B. avg - dann gehen diese Lücken in der Datenbasis verloren.
Gäbe es ein Interesse daran, die Rohdaten von aggregierten Daten "extern" aufzubewahren, um so etwas nachträglich nachvollziehen zu können?
Ich finde diese Option persönlich nicht notwendig - ob meine Heizungsanbindung vor 9 Monaten mal einen Tag offline war oder nicht, ist mir nach so langer Zeit wahrscheinlich egal, aber bevor ich mich endgültig für oder gegen eine entsprechende Implementierung entscheide, wollte ich mal nach Meinungen fragen.
Die mehrstufige Aggregierung zum weiteren Platzsparen auf der Platte baue ich mit ein.
Weil ich umfangreiches Feedback erhalten habe, und in der Hoffnung, dass das hier auch gelesen wird -
Es ist nicht unwahrscheinlich, dass (zumindest anfänglich) viele Warnungen oder sogar Fehler von lib.db oder plugins.database ausgeworfen werden. DAS IST NORMAL!
Warum? Weil diese Fehler in der Vergangenheit einfach geschluckt/verworfen wurden. Jetzt werden sie ausgegeben, und das kann als Anhalt genommen werden, ggf. das Datenbanksystem oder auch die eigene Datenbank zu prüfen (Leistung, Speicher, DB zu groß?).
Dazu kommt, dass nach dem Start z.B. maxage_compaction losläuft. Bei SQLite kann dies dazu führen, dass die Datenbank für längere Zeit (Stunden?!) durch maxage_compaction blockiert wird, wenn viele Daten gelöscht oder aggregiert werden müssen.
Bei MySQL/MariaDB können ein unglücklich provisionierter Datenbankserver oder eine zu große Datenbank zu häufigen Timeout-Fehlern führen. In dem Fall empfehle ich zuerst, den DB-Server zu optimieren (Speicherplatz, Plattenplatz, Swap), und dann die Datenbank zu verkleinern.
Beispiel:
Ich habe mein Swap von 8 GB (= phys. RAM) auf HDD auf 16 GB auf SSD umgestellt. Das allein war schon ein riesiger Performancegewinn.
Meine Datenbank von 19 GB (ca. 190 Mio Zeilen) auf 4 GB (32 Mio Zeilen) zu verkleinern hat dazu geführt, dass der DB-Server effektiv kein Swap mehr benötigt und den verfügbaren Speicher auch nicht mehr auslastet. Seitdem habe ich auch keine Warnungen mehr, vorher ständig Timeouts.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar