НАДЕЖНОЕ ЭФФЕКТИВНОЕ ХРАНЕНИЕ В ОДНОРАНГОВЫХ УЗЛАХ

1. Реализованный компьютером способ кодирования файлов, которые должны быть сохранены в распределенной сети, содержащий действия:
вычисление диапазонов оптимального размера файла, соответствующих различному количеству фрагментов с отказоустойчивым кодированием и исправлением ошибок (ERC), причем каждое количество фрагментов является оптимальным количеством фрагментов для соответствующего диапазона размеров файла (902);
ввод файла заданного размера файла (904);
если размер файла меньше, чем диапазон размеров файла для самого малого ERC количества фрагментов, равного двум, кодирование файла без использования отказоустойчивого кодирования с исправлением ошибок (906, 908);
если размер файла входного файла соответствует диапазону размеров файла, кодирование файла, используя отказоустойчивое кодирование с исправлением ошибок и оптимальное количество фрагментов, соответствующее диапазону размеров файла входного файла (906, 910).
2. Реализуемый компьютером способ по п.1, дополнительно содержащий этап процесса посылки кодированного файла к одному или более одноранговым узлам в распределенной сети.
3. Реализуемый компьютером способ по п.1, дополнительно содержащий вычисление количества одноранговых узлов, в которых кодированный файл должен быть сохранен согласно надежности однорангового узла и требуемой надежности контента файла.
4. Реализуемый компьютером способ по п.1, в котором вычисление диапазонов оптимального размера файла, соответствующего различному количеству фрагментов отказоустойчивого кодирования с исправлением ошибок (ERC), содержит действия: определение границы между различными количествами фрагментов в качестве оптимального размера файла, подходящего для конкретного ERC количества фрагментов.
5. Реализуемый компьютером способ по п.1, дополнительно содержащий действия:
получение набора фрагментов файла кодированного файла, равного или большего, чем количество фрагментов, на которые файл разбит для кодирования; и
декодирование фрагментов кодированного файла посредством отказоустойчивого декодирования с исправлением ошибок, если файл был отказоустойчиво кодирован с исправлением ошибок, чтобы получить декодированную версию кодированного файла; и
декодирование кодированных фрагментов без отказоустойчивого декодирования с исправлением ошибок, если файл не был отказоустойчиво кодирован с исправлением ошибок, чтобы получить декодированную версию кодированного файла.
6. Реализуемый компьютером способ по п.1, в котором отказоустойчивое кодирование с исправлением ошибок, используемое при кодировании файла, является кодированием Рида-Соломона.
7. Реализуемый компьютером способ по п.6, в котором:
если размер файла меньше, чем приблизительно 10 Кб, отказоустойчивое кодирование с исправлением ошибок не используется;
если размер файла приблизительно равен 10-33 Кб, оптимальное количество фрагментов равно двум;
если размер файла равен приблизительно 33-100 Кб, оптимальное количество фрагментов равно четырем;
если размер файла равен приблизительно 100-310 Кб, оптимальное количество фрагментов равно восьми;
если размер файла равен приблизительно 310-950 Кб, оптимальное количество фрагментов равно шестнадцати;
если размер файла равен приблизительно 950 Кб-2,9 Мб, оптимальное количество фрагментов равно тридцати двум;
если размер файла равен приблизительно 2,9-8,9 Мб, оптимальное количество фрагментов равно шестидесяти четырем;
если размер файла равно приблизительно 8,9-26 Мб, оптимальное количество фрагментов равно ста двадцати восьми; и
если размер файла больше, чем приблизительно 26 Мб, оптимальное количество фрагментов равно двумстам пятидесяти шести.
8. Считываемый компьютером носитель, имеющий выполняемые компьютером команды для выполнения способа по п.1.
9. Система повышения надежности хранения и эффективности одноранговой сети, содержащая
компьютер общего назначения;
компьютерную программу, содержащую программные модули, выполняемые вычислительным устройством общего назначения, причем вычислительное устройство управляется программными модулями компьютерной программы для того, чтобы
определять оптимальное количество фрагментов для кодирования файла заданного размера с отказоустойчивым кодированием с исправлением ошибок (1010);
если оптимальное количество фрагментов для кодирования файла посредством отказоустойчивого кодирования с исправлением ошибок равно одному, не кодируют файл посредством отказоустойчивого кодирования с исправлением ошибок (1010); и
если оптимальное количество фрагментов больше, чем один, кодируют файл посредством разбиения файла на оптимальное количество фрагментов и кодируют файл посредством отказоустойчивого кодирования с исправлением ошибок (1010).
10. Система по п.9, дополнительно содержащая программный модуль для вычисления количества одноранговых узлов, в которых кодированные фрагменты файла должны быть сохранены согласно надежности однорангового узла и требуемой надежности контента файла.
11. Система по п.10, дополнительно содержащая программный модуль для распределения файла, кодированного посредством отказоустойчивого кодирования с исправлением ошибок, одному или более одноранговым узлам в сети.
12. Система по п.11, в которой программный модуль для распределения файла содержит подмодули для:
определения надежности каждого однорангового узла в распределенной сети;
определения размера файла и
использования одного или более одноранговых узлов с надлежащей надежностью, как определено размером файла, для распределения файла.
13. Система по п.12, в которой программный модуль для распределения файла содержит подмодули для:
если файл является большим, использования одноранговых узлов, чья надежность ниже заданного порога, чтобы распределить большой файл; и
если файл является небольшим, использования одноранговых узлов, чья надежность выше заданного порога, для распределения файла.
14. Система по п.11, в которой программный модуль для распределения файла содержит подмодули для:
определения надежности каждого однорангового узла в распределенной сети;
определения, является ли файл статическим;
если файл является статическим, использования одноранговых узлов, чья надежность ниже заданного порога, чтобы распределить файл; и
если файл является нестатический, использования одноранговых узлов, чья надежность выше заданного порога, чтобы распределить файл.
15. Система по п.11, в которой программный модуль для распределения файла содержит подмодули для:
определения надежности каждого однорангового узла в распределенной сети;
контроля изменений файла;
сначала распределения файла более надежным одноранговым узлам;
если наблюдается, чтобы файл не изменяется, перераспределения файла менее надежным одноранговым узлам.
16. Система по п.9, дополнительно содержащая программный модуль для повышения эффективности распределенной сети, используя сервер, дополнительно содержащая подмодули для:
резервного копирования всех динамических файлов в распределенной сети на сервер;
периодической проверки одноранговых узлов и сервера в распределенной сети, чтобы увидеть, изменились ли динамические файлы, резервно скопированные на сервер;
если динамические файлы не изменились, обозначают эти файлы как статические и связывают их вместе в большой файл; и
распределяют большой файл с отказоустойчивым кодированием с исправлением ошибок распределенной сети.
17. Система по п.9, в которой программный модуль для определения оптимального количества фрагментов для кодирования файла заданного размера посредством отказоустойчивого кодирования с исправлением ошибок содержит подмодули для:
определения диапазона оптимального размера файла для каждого возможного количества фрагментов с отказоустойчивым кодированием с исправлением ошибок, при этом каждое количество фрагментов является оптимальным количеством фрагментов для соответствующего диапазона;
определения, в какой диапазон размеров файла попадает размер входного файла; и
использования в качестве оптимального количества фрагментов, соответствующих диапазону оптимального размера файла, в который попадает размер входного файла.
18. Реализуемый компьютером способ декодирования кодированного файла, сохраненного в распределенной сети, содержащий этапы:
извлечение набора фрагментов кодированного файла, равного или большего, чем количество фрагментов, которые использовались для кодирования файла, причем файл был отказоустойчиво кодирован с исправлением ошибок с оптимальным количеством фрагментов для заданного размера файла; и
декодирование кодированных фрагментов посредством отказоустойчивого декодирования с исправлением ошибок, чтобы получить декодированную версию кодированного файла.
19. Реализуемый компьютером способ по п.18, в котором по меньшей мере некоторые из кодированных фрагментов извлекают из носителя хранения данных одного или более одноранговых узлов в распределенной сети.
20. Реализуемый компьютером способ по п.18, в котором по меньшей мере некоторые из кодированных фрагментов извлекают из носителя хранения данных сервера в распределенной сети.