Linux-Dateisystem(e) mit ACID-Garantien?

Linux-Dateisystem(e) mit ACID-Garantien?

Was kann ich tun, um ein Linux-Dateisystem mit denselben Garantien zu erhalten, die ACID für Datenbanken garantiert?

Es scheint, dass Dateisysteme noch nicht so weit fortgeschritten sind, wie ich angenommen hatte, dass sie inzwischen Industriestandard für alles wären.
Zumindest konnte ich keine Suchergebnisse dafür finden.

Das Beste, was ich finden konnte, ist, dass sie es schaffen, ihreStrukturellDaten intakt. Aber nicht der eigentliche Dateiinhalt. (Obwohl ich nicht genug über ZFS weiß, geschweige denn über Lustre.)

Gehe ich das falsch an? Ist das Dateisystem die falsche Ebene? (Vielleicht ist die Blockebene die richtige?)

Ich möchte ext4 nicht unbedingt über FUSE oder eine andere unmögliche Lovecraft-Abscheulichkeit dieser Art auf PostgreSQL laufen lassen. ;)

EDIT: Als Administrator plane ich die Einrichtung eines hochzuverlässigen Business-Servers (für Dateien,nichtDatenbanken) damit. Offensichtlich ist ein Dateisystem mit ACID-Garantien das, was ein Unternehmen in diesem Fall auf seinen Servern haben möchte. Ich kann mir keine StackExchange-Site vorstellen, die dafür besser geeignet wäre als Serverfault.

Antwort1

Ich bin mir ziemlich sicher, dass Sie das falsch angehen, es sei denn, Sie haben sehr spezielle Anforderungen. Es gibt einige wissenschaftliche Arbeiten zu ACID-Dateisystemen (siehedieses Papier), einschließlich des Amino FS (unter Verwendung von Berkeley DB als Speicher), aber:

Journaling-Dateisysteme sind transaktional und umfassen daher mindestenseine ArtAtomarität einschließen; Isolation ist auf FS-Ebene kein wirkliches Problem, da Dateisperren (normalerweise) vom Kernel (Windows) oder Anwendungscode (Unix-ähnlich, siehe die Diskussion) erzwungen werdenHierfür einige Details); und Haltbarkeit und Konsistenz sindZielejedes Dateisystems, obwohl alle Dateisysteme gewisse Nachteile mit sich bringen (ZFS legt allerdings großen Wert auf die Datenintegrität, sogar bei Hardwareproblemen).

Ich habe selbst noch nie ein FS geschrieben, daher sind Teile dieses Absatzes nur Vermutungen. Das größere Problem bei Ihrem Ansatz ist, dass die vollständige ACID-Implementierung normalerweise auf DBMS- oder Anwendungsebene erfolgt, und ichverdächtigdas hat einen guten Grund, denn es wäre schrecklich ineffizient, beispielsweise eine vollständige Isolierung sequentieller Transaktionen auf Dateien auf FS-Ebene bereitzustellen. In dem Dokument im ersten Link zeigen ihre Benchmarks, dass ihr FS-Prototyp im Vergleich zu ext3 bei fast jeder Operation deutlich langsamer ist und einen höheren Overhead aufweist.

verwandte Informationen