Seite 1 von 1

Write delay bei externer HSQL-DB eine ganze Minute?

Verfasst: Sa 12. Sep 2015, 17:42
von Freischreiber
Hallo,

habe gerade etwas herumgespielt an meinen Datenbanktabellen und festgestellt, daß bei Änderungen an den Datentabellen die Zeitstempel der HSQL-Dateien sich erstmal gar nicht ändern!

Die .data-Datei wird beim Schließen der Datenbankdatei aktualisiert, vorher nicht. Das gehört wohl so.

Änderungen bis zum Schließen werden in der .log-Datei gespeichert, aber erst nach einer Minute Wartezeit!

Wenn ich einmalig das SQL-Kommando "SET FILES WRITE DELAY TRUE" an die DB schicke, geht die Wartezeit auf den HSQL-Standardwert von einer halben Sekunde herunter, was bei einem Crash natürlich besser ist.

Ich frage mich jetzt: woher kommt die standardmäßige Minute bei Libreoffice? Ich habe hier: https://wiki.openoffice.org/wiki/FAQ_(B ... eliable.3F die Angabe gefunden: "Base sets this write-delay buffer to 60 seconds for all 'embedded databases' files..."

Aber warum bei externen DBs?

Gruß
Freischreiber

Re: Write delay bei externer HSQL-DB eine ganze Minute?

Verfasst: Sa 12. Sep 2015, 20:52
von F3K Total
Hi,
schau mal in die .script- Datei einer frischen .odb, letzte Zeile meine ich.
Gruss R

Re: Write delay bei externer HSQL-DB eine ganze Minute?

Verfasst: So 13. Sep 2015, 09:06
von Freischreiber

Code: Alles auswählen

SET WRITE_DELAY 60
Okay, und beim Splitten der ursprünglich eingebetteten DB wird das mitkopiert.

Seltsam nur, daß in meiner .script-Datei dieser Eintrag nicht mehr existiert, dort steht (vor dem Ändern auf 500ms) nur

Code: Alles auswählen

SET FILES WRITE DELAY 60
Das schreibt die neuere HSQL-Version wahrscheinlich anders als die 1.8...

Aber wie auch immer: Ist das nicht eine richtig schlechte Einstellung? Eine Minute Wartezeit, bis die Daten wirklich auf der Festplatte landen? Wenn man per Knopfdruck ein Dokument speichert, geht man doch davon aus, daß das jetzt passiert. Ist das nicht bei einer eingebetteten DB auch eine Fehlerquelle für Packfehler und Datenverlust beim Schließen?

Besorgt
Freischreiber

PS: Eine Frage noch: Darf man die .script-Datei direkt editieren, anstelle von SQL-Befehlen?

Re: Write delay bei externer HSQL-DB eine ganze Minute?

Verfasst: So 13. Sep 2015, 19:30
von F3K Total
Freischreiber hat geschrieben:PS: Eine Frage noch: Darf man die .script-Datei direkt editieren, anstelle von SQL-Befehlen?
Wie wäre es, wenn du mal ganz mutig bist, und es an einer KOPIE der Datenbank ausprobierst?

Gruß R

Re: Write delay bei externer HSQL-DB eine ganze Minute?

Verfasst: Mo 14. Sep 2015, 08:16
von Freischreiber
Hallo R,

wenn ich mutig wäre, würdest du hier kaum noch etwas von mir sehen... es hätte ja sein können du weißt es und sagst es einfach. Dieser pädagogische Ansatz ist sehr anstrengend für mich. :mrgreen:

Gruß
Freischreiber

Re: Write delay bei externer HSQL-DB eine ganze Minute?

Verfasst: Mo 14. Sep 2015, 17:03
von F3K Total
Tja, wir müssen wohl an deinem Selbstvertrauen arbeiten! :lol:
Es ist immer bequemer andere loszuschicken, ist allerdings für die anderen anstrengender. Wie ist denn nun DEIN Ergebnis?
Gruß R

Re: Write delay bei externer HSQL-DB eine ganze Minute?

Verfasst: Di 15. Sep 2015, 09:15
von Freischreiber
Tja, wir müssen wohl an deinem Selbstvertrauen arbeiten!
Gute Idee: Du könntest z. B. zugeben, daß die Frage nach dem Write delay eine gute Frage war - oder einfach deine Meinung dazu sagen. Wäre es nicht wirklich besser, der Wert wäre immer bei einer halben Sekunde?
Wie ist denn nun DEIN Ergebnis?
Also, ich habe es mit "SET FILES BACKUP INCREMENT TRUE" versucht, auch eine Einstellung, die ich per SQL geändert hatte, und im Editor die script-Datei auf "...FALSE" abgeändert. Danach wird wieder eine .backup-Datei geschrieben. Daraus schließe ich: sie ist editierbar. :o

Nur verstehen tu ich es nicht ganz. Weiter unten in der .script-Datei sind "CREATE CACHED TABLE..."-Einträge. Das sieht für mich aus wie ein Protokoll, was einmal mit der DB passiert ist. Oder werden die Tabellen bei jedem Start neu erzeugt?

Gruß
Freischreiber

Re: Write delay bei externer HSQL-DB eine ganze Minute?

Verfasst: Di 15. Sep 2015, 21:14
von F3K Total
Hallo Freischreiber,
ich weiß es nicht. Wenn du gerne sofort schreiben willst, dann setze den Write-delay doch auf 0.
Und ja, die .script ist editierbar, ist aber gefährlich, wenn man nicht genau weiß was man macht, kann zur Zerstörung der DB führen.
Ich habe durch Try and Error meine Wege gefunden.
Freischreiber hat geschrieben:Oder werden die Tabellen bei jedem Start neu erzeugt?
Was heißt erzeugt, sie sind ja nicht aus Materie, also muss die Datenbankstruktur dem Rechner beim Laden mitgeteilt werden. Daher nehme ich an, dass die Script-Datei eben genau diese Struktur beinhaltet. Wenn du weiteres wissen willst, suche im Internet nach dem HSQL DB Forum, da kannst Du deine Fragen dazu stellen.
Gruß R