Узнав о том, как файловые системы используют транзакции и журналы, чтобы убедиться, что диск находится в атомарном состоянии даже после сбоя системы, мне стало любопытно, как файловые системы справляются с параллелизмом (и я предполагаю, что это может распространяться и на базы данных. ).
В принципе, что нужно помнить о параллельных файловых системах? Они такие, какими я их сейчас описал?
Прежде всего, «параллельная файловая система» не является стандартным отраслевым термином. Я не уверен, что такое существует, если вы не говорите о распределенных файловых системах. Итак, я предполагаю, что вы имеете в виду одновременный доступ к файлам на уровне файловой системы.
Файловые системы обычно имеют дело с параллелизмом, используя блокировку (т.е. НЕ имея дело с параллелизмом). То есть предполагается, что если я пишу в файл, то никто другой не будет писать в тот же файл одновременно. Если вы хотите отказаться от блокировки, то вы, вероятно, принимаете последствия и, вероятно, имеете дело со своим собственным параллелизмом.
Помните, что файловая система на самом деле гарантирует только целостность самой файловой системы, а НЕ целостность ваших файлов. Если ваши файлы изменяются, то это ваша вина. ФС только говорит, что это не будет источник ваших проблем; не то чтобы у вас не было своей вины.
Элементы, которые будет защищать файловая система, включают записи каталогов, права доступа к файлам и метаданные, карты распределения и многие другие вещи, которые вам не нужны. И тот факт, что вам не нужно о них заботиться, показывает, что файловая система работает правильно.
Обратите внимание, что журналы файловой системы МОГУТ теоретически использоваться для защиты содержимого файлов в определенной степени. Но накладные расходы будут непосильными, а производительность - ужасной.