История изменений
Исправление 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 означает, что начало и конец старого экстента сами по себе остаются валидными экстентами. Если экстент сжат, то ты не можешь просто обрубить его в произвольном месте и сказать «теперь начало этого экстента здесь».
Для работы со сжатыми экстентами тебе нужна совсем другая структура данных, и ФС с этой структурой данных будет иметь совсем другие свойства.