Файловая система(ы) Linux с гарантиями ACID?

Файловая система(ы) Linux с гарантиями ACID?

Что я могу сделать, чтобы получить файловую систему Linux с такими же гарантиями, как гарантии ACID для баз данных?

Похоже, файловые системы не продвинулись до той точки, которая, как я предполагал, станет отраслевым стандартом для всего к настоящему времени.
По крайней мере, я не смог найти никаких результатов поиска по этому поводу.

Лучшее, что я смог найти, это то, что им удается сохранять своиструктурныйДанные нетронуты. Но не фактическое содержимое файла. (Хотя я не очень хорошо разбираюсь в ZFS, не говоря уже о Lustre.)

Я неправильно подхожу к этому? Файловая система — это не тот уровень? (Может быть, блочный уровень — это правильный?)

Мне совсем не хочется запускать ext4 поверх PostgreSQL через FUSE или какую-то другую невозможную Лавкрафтовскую мерзость. ;)

EDIT: Как администратор, я планирую настроить высоконадежный бизнес-сервер (для файлов,нет(базы данных) с ним. Очевидно, что файловая система с гарантиями ACID — это то, что бизнес хочет на своих серверах в этом случае. Я не могу придумать ни одного сайта StackExchange, более подходящего для этого, чем serverfault.

решение1

Я почти уверен, что вы подходите к этому неправильно, если только у вас нет очень специфических требований. Была проделана некоторая академическая работа вокруг файловых систем ACID (см.Эта бумага), включая Amino FS (используя Berkeley DB в качестве хранилища), но:

Журналируемые файловые системы являются транзакционными и поэтому включают в себя как минимумвродевключают атомарность; изоляция на самом деле не является проблемой на уровне файловой системы, поскольку блокировки файлов (обычно) принудительно применяются ядром (Windows) или кодом приложения (Unix-подобным, см. обсуждениездесьдля некоторых подробностей); а также долговечность и последовательностьцелилюбой файловой системы, хотя все файловые системы имеют некоторые компромиссы (хотя ZFS уделяет особое внимание целостности данных даже при возникновении проблем с оборудованием).

Я никогда не писал FS сам, поэтому части этого параграфа являются догадками. Большая проблема с вашим подходом в том, что быть полностью ACID обычно обрабатывается на уровне СУБД или приложения, и яподозреватьНа то есть веская причина, поскольку было бы ужасно неэффективно обеспечивать, например, полную изоляцию последовательных транзакций в файлах на уровне FS. В статье по первой ссылке их бенчмарки показывают, что их прототип FS значительно медленнее с более высокими накладными расходами для почти каждой операции по сравнению с ext3.

Связанный контент