Hallo,
Mein Problem: jetzt geht nach Punkt 4 das Licht aus und die Datei /und oder das Log sind noch nicht auf der Festplatte gelandet, sonden schwirren noch irgendeinem Cache rum (Rechner stehen zwar im teuren Rechenzentrum - aber man weiss ja nie...)
Man kann das Puffern beim Mounten per Option auch abschalten, was aber auf Kosten der Performance geht.
Risiken zu minimeren. Kann ich explizit auf die Platte schreiben (Sync) und wirklich darauf vertrauen, dass die Daten weggeschreiben wurden???
Journaling File System lautet die Antwort. Die merken sich im Plattenlog (wird ungepuffert geschrieben), was sie aendern und wie es vorher aussah. Wenn sie mit Aendern fertig sind, dann melden sie dass ans Log.
Sollte der Strom beim Aendern ausfallen, dann merken sie, dass im Log eine nicht beendete Operation liegt und bringen sie wieder auf den alten Stand (Aenderung also weg, aber Dateisystem konsistent).
ext3 nimmt meines Wissens nach sogar Data Journaling vor, was bedeutet, dass es sich auch merkt, was es gerade schreibt. Sollte also die Anforderung kommen etwas zu schreiben, dann landet auch das zu schreibende im Log, wodurch die Aenderungen sogar bei Stromausfall getaetigt werden, sofern es das Skript vorher geschafft hat, das zu schreibende an das System weiterzureichen.
Wie machen das die teuren dicken TRX-Server?
Die verwenden wahrscheinlich transaktionsfaehige Datenbanken (oder arbeiten nach diesem Prinzip): alles wird erst geschrieben, wenn alles fertig ist. Sollte waehrend der Operation der Strom ausfallen, so kommt das "Schreib-alles-auf-die-Platte"-Signal nicht und nichts geschieht. Die ganze Aktion hat quasi nie stattgefunden :-)
mfg, Fabian