Ищите лучший алгоритм для взятия файла, разбивайте его на N частей, добавьте части M избыточности и затем сохраните файл в N + M разных местах. Обычно файлы будут большими.Как лучше всего разбить файл на N частей с M избыточными частями, так что любой N из N + M частей достаточно, чтобы восстановить его?
Например: 1GB-файл можно разделить на 32-разрядные части (32), иметь (8) дополнительные 32MB части, а избыточную структуру 1.25GB хранить на 40 различных участках. Целью было бы воссоздать файл из любых (32) действительных частей. Независимый хеш оригинальной (32) части будет доступен для проверки правильности правильной реконструкции.
Если это выполнимо, я считаю, что это обеспечит функциональный эквивалент наличия 8 зеркальных копий для накладных расходов всего на 25% (плюс время вычисления), не так ли?
Я нашел алгоритм Рабина 1989 года, который, как представляется, делает это. Интересно, знал ли кто-нибудь о чем-то лучше/быстрее?
Я признаю, что это похоже на то, как работают Raid 5 и Raid 6 - ища такой подход, расширить его до 8 + блоков четности и выполнить его на уровне файла.
Похоже, вы говорите о [секретном обмене] (https://en.wikipedia.org/wiki/Secret_sharing), я думаю, вы имели в виду алгоритм Рабина? Есть ли что-то, что заставляет вас поверить, что кто-то улучшил это? – jthill
Вы ссылаетесь на эту статью? http://web.engr.oregonstate.edu/~yavuza/Courses/Fall2014_AdvNetSec/ResearchPapers/RegularPapers/IDA.pdf –
http://stackoverflow.com/questions/252555/how-does-cauchy-reed-solomon-algorithm работа кажется актуальной. – rici