Nein, das kann man nicht umgehen.
Diese Anwendung würde auch keinen Reboot in einem ungünstigen Moment überleben - sie muss an den entsprechenden Stellen fsync/fdatasync und Konsorten aufrufen, um sicherzustellen, daß der stable storage konsistent ist.
Wenn's _nur_ im Betriebssystemcache hängt, die Applikation also schon dem write() Syscall übergeben hat, kannst Du das entsprechende FS vermutlich auch mal mit der "sync" Option mounten, um den Datenverlust zu minimieren - die Performance leidet darunter aber ebenfalls _extrem_. Zusätzlich würde ich vermuten, daß die Daten dann zwar schneller, aber nachwievor nicht konsistent geschrieben werden - das reduziert das Zeitfenster, aber eliminiert nicht das Problem.
Transaktionen dem Nutzer zu bestätigen und dabei noch im Speicher zu halten ist grob fahrlässige Programmierung. Bei einem kommerziellen Produkt würde ich es mal mit der Produkthaftung probieren.
Wo finde ich denn weitere Informationen (also was muss ich bei Google eingeben ;-) ) zu diesem heiklen Thema und zur Programmierung dazu ? Es müsste ja irgendwie lösbar sein denke ich mal. Ralph