LINUX.ORG.RU

История изменений

Исправление intelfx, (текущая версия) :

Полноценного CoW не требуется. Атомарности можно достичь блокировкой ожидания доступа пока идёт запись нового блока/экстента и пометка старого как пустой.

Ну то есть ты придумал CoW?

Собственно как сейчас в ехт2-4 работает механизм изменения размера файла в середине без полной перезаписи?

Это всё очень здорово, только extent splitting означает, что начало и конец старого экстента сами по себе остаются валидными экстентами. У FALLOC_FL_COLLAPSE_RANGE есть соответствующее ограничение на выравнивание границ операции. А если экстент сжат, то ты не можешь просто обрубить его в произвольном месте и сказать «теперь начало этого экстента здесь».

Для работы со сжатыми экстентами тебе нужна совсем другая структура данных, и ФС с этой структурой данных будет иметь совсем другие свойства. То есть это будет не ext4.

Исправление intelfx, :

Полноценного CoW не требуется. Атомарности можно достичь блокировкой ожидания доступа пока идёт запись нового блока/экстента и пометка старого как пустой.

Ну то есть ты придумал CoW?

Собственно как сейчас в ехт2-4 работает механизм изменения размера файла в середине без полной перезаписи?

Это всё очень здорово, только extent splitting означает, что начало и конец старого экстента сами по себе остаются валидными экстентами. Если экстент сжат, то ты не можешь просто обрубить его в произвольном месте и сказать «теперь начало этого экстента здесь».

Для работы со сжатыми экстентами тебе нужна совсем другая структура данных, и ФС с этой структурой данных будет иметь совсем другие свойства. То есть это будет не ext4.

Исходная версия intelfx, :

Полноценного CoW не требуется. Атомарности можно достичь блокировкой ожидания доступа пока идёт запись нового блока/экстента и пометка старого как пустой.

Ну то есть ты придумал CoW?

Собственно как сейчас в ехт2-4 работает механизм изменения размера файла в середине без полной перезаписи?

Это всё очень здорово, только extent splitting означает, что начало и конец старого экстента сами по себе остаются валидными экстентами. Если экстент сжат, то ты не можешь просто обрубить его в произвольном месте и сказать «теперь начало этого экстента здесь».

Для работы со сжатыми экстентами тебе нужна совсем другая структура данных, и ФС с этой структурой данных будет иметь совсем другие свойства.