amarao: (Default)
[personal profile] amarao
А вот у меня такая идея: файловая система, в которой данные кодируются с избыточностью, таким образом, чтобы всё доступное место использовалось. Всегда.

Чем меньше данных на файловой системе, тем более устойчива она к повреждениям. Да, я понимаю, что она будет невероятно медленной и для записи любых данных нужно будет полностью перезаписывать всё блочное устройство, так что, вероятнее всего, она должна будет работать с кеширующим слоем сверху.

Грубо говоря, если файловая система 500Мб, и на ней хранится 25Мб данных, то файловая система обеспечивает 20-кратную избыточность. Записал ещё 25Мб? Стала 10-кратная избыточность.

Date: 2023-01-25 05:46 am (UTC)
From: [personal profile] ex0_planet
Не обязательно всё перезаписывать, достаточно дропать избыточные экстенты по одному. Да, деградация будет не плавной, а ступеньками, но это хотя бы практически реализуемо. Не уверен что существуют избыточные коды с такой особенностью, но вдруг.

В сценарии, условно, "бэкапа" когда данный носитель должен быть снят и положен на полку (и неважно сколько там данных), ну... во времена dvd был такой софт dvdisaster. Он именно это и делал — забивал свободное место избыточными кодами. Можно достать из архивов и осовременить. Не пригодилось ни разу, правда, но это у меня просто бэкапов мало.

Date: 2023-01-25 11:06 am (UTC)
From: [personal profile] ex0_planet
Это не так. Даже система просто из N избыточных копий (просто копий) этим свойством обладает: в пустую исходно ФС мы пишем файл 1.txt и N его копий (до заполнения), потом когда мы хотим записать 2.txt мы удаляем N/2 копий 1.txt и пишем туда 2.txt и N/2 его копий.

Будет ли какой-то избыточный код лучше (эффективнее? гибче?) чем просто копии я не могу сказать, но весьма вероятно что да.

Date: 2023-01-26 06:16 am (UTC)
From: [personal profile] ex0_planet
Это для любой parity-схемы так, то что можно подобрать такой паттерн выбивания блоков, который приведёт к её отказу. Что просто означает что не надо использовать parity-коды. Ну и также и то, что схема с M копиями непрактична, но это мы и так знали :)

Нужным тебе свойством, кажется, обладают (как выяснилось после непродолжительного гугления) fountain-коды, некоторые даже стандартизированы в RFC, там можно отбрасывать блоки без пересчёта, а восстанавливать исходные N блоков из N' любых других (N' слегка больше N).

Profile

amarao: (Default)
amarao

February 2026

S M T W T F S
123456 7
8910111213 14
15161718192021
22232425262728

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 26th, 2026 05:46 pm
Powered by Dreamwidth Studios