RU2435206C2 - Надежное эффективное хранение в одноранговых узлах - Google Patents

Надежное эффективное хранение в одноранговых узлах Download PDF

Info

Publication number
RU2435206C2
RU2435206C2 RU2008134366/08A RU2008134366A RU2435206C2 RU 2435206 C2 RU2435206 C2 RU 2435206C2 RU 2008134366/08 A RU2008134366/08 A RU 2008134366/08A RU 2008134366 A RU2008134366 A RU 2008134366A RU 2435206 C2 RU2435206 C2 RU 2435206C2
Authority
RU
Russia
Prior art keywords
file
fragments
peer
reliability
encoded
Prior art date
Application number
RU2008134366/08A
Other languages
English (en)
Other versions
RU2008134366A (ru
Inventor
Цзинь ЛИ (US)
Цзинь ЛИ
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2008134366A publication Critical patent/RU2008134366A/ru
Application granted granted Critical
Publication of RU2435206C2 publication Critical patent/RU2435206C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Abstract

Изобретение относится к области хранения данных в сети одноранговых узлов. Техническим результатом является повышение эффективности и надежности сохранения данных в сети одноранговых узлов. Система хранения с адаптивным кодированием использует адаптивный отказоустойчивый код с исправлением ошибок (ERC), изменяет количество фрагментов, используемых для кодирования, согласно размеру распределенного файла. Адаптивное ERC может значительно повышать эффективность и надежность Р2Р хранения. Ряд процедур для приложений Р2Р хранения также могут быть реализованы. В одном варианте осуществления маленькие динамические файлы данных направляются более надежным одноранговым узлам или даже серверу, в то время как большие и статические файлы сохраняют, используя емкость запоминающего устройства ненадежных одноранговых узлов. Также, для получения сбалансированного вклада и выгоды, одноранговый узел должен хранить то же самое количество контента, которое сохранено в Р2Р сети. В результате ненадежным одноранговым узлам позволяют распределять меньшее количество данных, а более надежным одноранговым узлам позволяют распределять большее количество. Также, меньшим файлам назначают более высокую стоимость распределения и большим файлам назначают более низкую стоимость распределения. 4 н. и 16 з.п. ф-лы, 13 ил., 1 табл.

Description

В приложении для одноранговых узлов (P2P) одноранговые узлы вносят с собой сетевую пропускную способность и/или ресурсы хранения на жестких дисках, когда они присоединяются к службе P2P. С ростом требований к P2P-системе емкость системы также растет. Это находится в остром контрасте с системой клиент-сервер, где емкость сервера фиксирована и оплачивается поставщиком системы клиент-сервер. В результате система P2P является более экономичной для работы, чем система клиент-сервер, и является лучшей, так как является масштабируемой.
В P2P систему одноранговый узел привносит не только пропускную способность, но также и пространство памяти (хранения), чтобы обслуживать другие одноранговые узлы. Общее пространство хранения, внесенное одноранговыми узлами, формирует облако распределенного хранения. Данные могут быть сохранены в него и могут быть извлечены из этого облака. P2P память может использоваться для ряда приложений. Одним является распределенное резервное копирование. Одноранговый узел может выполнять резервное копирование своих собственных данных в P2P-облако. Когда одноранговый узел дает сбой, данные могут быть восстановлены из этого облака. Другим P2P приложением является доступ к распределенным данным. Так как клиент может извлекать данные одновременно из множества одноранговых узлов, хранящих данные, извлечение в P2P может иметь более высокую производительность по сравнению с извлечением данных из единственного источника. Другим приложением является просмотр кинофильма по требованию. Сервер мультимедийной информации может "питать" P2P облако файлами кинофильмов с использованием приоритетов. Когда клиент просматривает кинофильм, он может передавать в виде потока кинофильм как из P2P облака, так и из сервера, таким образом уменьшая нагрузку сервера, уменьшая трафик на сетевой магистрали и улучшая качество передаваемого в виде потока кинофильма.
Хотя одноранговые узлы в P2P-сети могут действовать подобно серверам, они отличаются от коммерческих серверов Web/баз данных по одному важному аспекту: надежности. Поскольку одноранговым узлом обычно является обычный компьютер, который поддерживает P2P приложение своим зарезервированным местом на жестком диске и незанятой полосой частот, он является гораздо менее надежным, чем типичный сервер. Пользователь может выбрать выключение компьютера однорангового узла или P2P приложение время от времени. Обязательная необходимость, например, выгрузка/загрузка большого файла, может отбирать у однорангового узла необходимую полосу частот для P2P-действия. Компьютер однорангового узла может быть переведен в автономный режим (off-line) из-за необходимости модернизировать или обновить программное обеспечение/аппаратное обеспечение или из-за вирусной атаки. Компьютерное аппаратное обеспечение и сетевая линия связи однорангового узла также неотъемлемо являются намного более ненадежными, чем типичный серверный компьютер и его коммерческие сетевые линии связи, которые предназначены для обеспечения надежности. В то время как коммерческие кластеры сервер/сервер предназначены для надежности "шесть девяток" (с интенсивностью отказов 10-6, при такой интенсивности каждый год разрешается приблизительно 30 секунд простоя), хороший одноранговый узел потребителя может иметь надежность только "две девятки" (интенсивность отказов 10-2 или приблизительно 15 минут времени простоя каждый день), и не является редкостью для одноранговых узлов иметь только 50% (половину времени) или даже надежность 10% (снижение на 90% времени).
Большинство приложений P2P, например резервное копирование и извлечение данных P2P, хочет поддерживать такой же уровень надежности для P2P хранения, что и для сервера (надежность "шесть девяток"). Вопрос состоит в том, как сформировать надежное эффективное P2P-хранилище, используя минимальные полосы частот и ресурсы хранения одноранговых узлов.
Сущность изобретения
Представлены система и способ хранения с адаптивным кодированием для эффективного и надежного сохранения данных в сети одноранговых узлов (P2P). Упомянутые система и способ хранения с адаптивным кодированием регулируют количество фрагментов для отказоустойчивого кодирования с исправлением ошибок (ERC), причем число фрагментов ERC основано на размере файла, сохраненного и распределенного.
Ряд вариантов осуществления системы хранения с адаптивным кодированием использует процедуры для повышения эффективности и надежности P2P сети. Например, в одном варианте осуществления малые динамические данные направляют более надежным одноранговым узлам или даже серверу, если доступна поддержка компонентов сервера. Также в другом варианте осуществления для сбалансированной P2P сети одноранговым узлам, которые являются ненадежными и распределяющими меньшие файлы, разрешено распределение меньшего количества данных.
Следует заметить, что хотя вышеописанные ограничения в существующем одноранговом запоминающем устройстве и системах распределения, описанные в разделе уровня техники, могут быть разрешены конкретной реализацией системы хранения с адаптивным кодированием согласно настоящему изобретению, эти система и процесс никоим образом не ограничены реализациями, которые только решают какой-либо или все отмеченные недостатки. Вместо этого, существующая система и процесс имеют намного более широкое применение, как очевидно из нижеследующего описания.
Также следует заметить, что этот раздел сущности изобретения обеспечивается, чтобы представить выбор концепций в упрощенной форме, которые описаны ниже в подробном описании. Этот раздел сущности изобретения не предназначен для идентификации ключевых признаков или существенных признаков заявленного изобретения, и при этом не предназначен для использования в качестве помощи при определении объема заявленного предмета изобретения.
Краткое описание чертежей
Конкретные признаки, аспекты и преимущества системы хранения с адаптивным кодированием станут лучше поняты со ссылками на нижеследующее описание, прилагаемую формулу изобретения и сопроводительные чертежи, на которых:
Фиг. 1 является общей диаграммой системы, изображающей вычислительное устройство общего назначения, образующего примерную систему, реализующую систему и способ хранения с адаптивным кодированием, как описано в настоящем описании.
Фиг. 2 иллюстрирует примерную одноранговую (P2P) сеть, которая может использоваться с системой и способом хранения с адаптивным кодированием, как описано здесь.
Фиг. 3 является графиком, иллюстрирующим количество хранящих информацию одноранговых узлов для достижения требуемой надежности 10-6.
Фиг. 4 является графиком, иллюстрирующим надежность однорангового узла и требуемый коэффициент дублирования.
Фиг. 5 является графиком, иллюстрирующим количество хранящих информацию одноранговых узлов, необходимых для достижения требуемой надежности 10-6, с использованием отказоустойчивого кодирования с исправлением ошибок.
Фиг. 6 является графиком, иллюстрирующим количество ERC фрагментов и связанный подходящий размер файла для хранения информации в P2P сети.
Фиг. 7 обеспечивает график, изображающий использование полосы частот между одноранговыми узлами в P2P конфигурации с адаптивным ERC и фиксированным ERC (при одноранговом узле с надежностью=50%).
Фиг. 8 обеспечивает график, изображающий использование полосы частот между одноранговыми узлами в P2P конфигурации с адаптивным ERC и фиксированным ERC (при одноранговом узле с надежностью=99%).
Фиг.9 изображает один вариант осуществления способа сохранения с адаптивным кодированием.
Фиг. 10 изображает примерную схему последовательности операций, показывающую, как методика хранения с адаптивным кодированием используется в P2P сети.
Фиг. 11 изображает вариант осуществления системы и процесса хранения с адаптивным кодированием, который осуществляет процедуру для оптимизации эффективности хранения P2P сети.
Фиг. 12 изображает другой вариант осуществления системы и способа хранения с адаптивным кодированием, который реализует процедуры для оптимизации эффективности хранения P2P системы.
Фиг. 13 изображает вариант осуществления системы и способа хранения с адаптивным кодированием, который использует резервную копию P2P с серверной поддержкой.
Подробное описание
В нижеследующем описании предпочтительных вариантов осуществления настоящей системы хранения с адаптивным кодированием ссылка делается на сопроводительные чертежи, которые формируют его часть, и на которых показываются посредством иллюстрации конкретные варианты осуществления, в которых система хранения с адаптивным кодированием может быть реализована. Понимается, что другие варианты осуществления могут использоваться, и структурные изменения могут быть сделаны без отхода от сущности настоящей системы хранения с адаптивным кодированием.
1.0 Примерная среда
Фиг. 1 иллюстрирует пример подходящей среды 100 вычислительной системы, в которой может быть осуществлено изобретение. Среда 100 вычислительной системы является только одним примером подходящей вычислительной среды и не предназначена, чтобы предложить какое-либо ограничение относительно объема использования или функциональных возможностей изобретения. Вычислительная среда 100 не должна интерпретироваться как имеющая какую-либо зависимость или требования, относящиеся к какому-либо или комбинации компонентов, проиллюстрированных в примерной среде 100.
Изобретение работает с множеством других вычислительных системных сред или конфигураций общего назначения или специализированных. Примеры известных вычислительных систем, сред и/или конфигураций, которые могут быть подходящими для использования с изобретением, включают в себя, но не ограничиваются ими, персональные компьютеры, серверные компьютеры, карманный, портативный или мобильный компьютер или устройства связи, такие как сотовые телефоны и персональные цифровые ассистенты (ПЦА, PDA), мультипроцессорные системы, основанные на микропроцессорах системы, телевизионные приставки, программируемую бытовую электронику, сетевые персональные компьютеры, мини-компьютеры, универсальные компьютеры, распределенные вычислительные среды, которые включают в себя любую из вышеупомянутых систем или устройств, и т.п.
Изобретение может быть описано в общем контексте выполняемых компьютером команд, таких как программные модули, выполняемые компьютером в комбинации с аппаратными модулями, включающими в себя компоненты набора микрофонов 198. В общем случае программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Изобретение также может быть осуществлено в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки, которые связаны через систему коммуникаций. В распределенной вычислительной среде программные модули могут быть расположены как в локальных, так и удаленных компьютерных носителях памяти, включая запоминающие устройства памяти. Со ссылками на фиг. 1 примерная система для осуществления изобретения включает в себя вычислительное устройство общего назначения в форме компьютера 110.
Компоненты компьютера 110 могут включать в себя, но не ограничиваться ими, процессор 120, системную память 130 и системную шину 121, которая подсоединяет различные элементы системы, включая системную память, к процессору 120. Системная шина 121 может быть любой из нескольких типов шинных структур, включающих в себя шину памяти или контроллер памяти, периферийную шину и локальную шину, используя любую из ряда архитектур шины. В качестве примера, а не ограничения, такие архитектуры включают в себя шину архитектуры промышленного стандарта (ISA), шину микро-канальной архитектуры, (MCA), расширенную шину ISA (EISA), локальную шину Ассоциации Стандартов Видео Электроники (VESA) и шину связи периферийных компонентов (PCI), также известную как шина Mezzanine.
Компьютер 110 типично включает в себя ряд считываемых компьютером носителей. Считываемыми компьютером носителями могут быть любые доступные носители, к которым может обращаться компьютер 110, и включают в себя как энергозависимые, так и энергонезависимые носители, сменные и несменные носители. В качестве примера, а не ограничения, считываемые компьютером носители могут охватывать компьютерные носители хранения и коммуникационные носители. Компьютерные носители хранения включают в себя энергозависимые и энергонезависимые сменные и несменные носители, осуществленные любым способом или технологией для хранения информации, например, считываемых компьютером команд, структур данных, программных модулей или других данных.
Компьютерные носители хранения включают в себя, но не ограничиваются ими, ОЗУ, ПЗУ, ППЗУ, ЭППЗУ, ЭСППЗУ, флэш-память или память другой технологии; CD ROM, цифровые универсальные диски (DVD), или другую оптическую память на дисках; магнитные кассеты, магнитную ленту, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства; или любую другую среду, которая может использоваться, чтобы хранить требуемую информацию и к которой можно обращаться компьютером 110. Коммуникационные носители типично реализуют считываемые компьютером команды, структуры данных, программные модули или другие данные в модулируемом сигнале данных, таком как несущая или другой транспортный механизм, и включают в себя любую среду доставки информации. Термин "модулированный сигнал данных" означает сигнал, который имеет одну или более из его характеристик, установленную или измененную таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, коммуникационные носители включают в себя проводную среду, например проводную сеть или непосредственное проводное соединение, и беспроводные носители, такие как акустические, РЧ, инфракрасные, и другие беспроводные среды (носители). Комбинации любых из вышеупомянутых также должны быть включены в понятие считываемых компьютером носителей.
Системная память 130 включает в себя компьютерные носители памяти в форме энергозависимой и/или энергонезависимой памяти, такие как запоминающее устройство только для чтения (ПЗУ) 131 и оперативное запоминающее устройство (ОЗУ) 132. Базовая система ввода-вывода 133 (BIOS), содержащая основные подпрограммы, которые помогают передавать информацию между элементами в компьютере 110, например, в течение запуска, обычно сохраняется в ПЗУ 131. ОЗУ 132 обычно содержит данные и/или программные модули, которые являются немедленно доступными для и/или в настоящее время обрабатываемыми процессором 120. В качестве примера, а не ограничения, Фиг. 1 иллюстрирует операционную систему 134, прикладные программы 135, другие программные модули 136 и программные данные 137.
Компьютер 110 может также включать в себя другие сменные/несменные, энергозависимые/энергонезависимые компьютерные носители памяти. В качестве примера только, Фиг. 1 иллюстрирует накопитель 141 на жестких дисках, который считывает с или записывает на несменные энергонезависимые магнитные носители, накопитель 151 на магнитном диске, который считывает с или записывает на сменный энергонезависимый магнитный диск 152, и накопитель 155 на оптических дисках, который считывает с или записывает на сменный энергонезависимый оптический диск 156 типа CD ROM или другие оптические носители. Другие сменные/несменные, энергозависимые/энергонезависимые компьютерные носители памяти, которые могут использоваться в примерной среде, включают в себя, но не ограничиваются ими, кассеты магнитной ленты, платы флэш-памяти, цифровые универсальные диски, цифровую видеоленту, твердотельное ОЗУ, твердотельное ПЗУ и т.п. Накопитель 141 на жестких дисках обычно соединяется с системной шиной 121 через интерфейс несменных ЗУ, например, интерфейс 140, а накопитель 151 на магнитном диске и накопитель 155 на оптических дисках обычно соединяются с системной шиной 121 интерфейсом сменных ЗУ, типа интерфейса 150.
Диски и их связанные компьютерные носители хранения, описанные выше и проиллюстрированные на Фиг. 1, обеспечивают хранение считываемых компьютером команд, структур данных, программных модулей и других данных для компьютера 110. На фиг. 1, например, накопитель 141 на жестких дисках проиллюстрирован как хранящий операционную систему 144, прикладные программы 145, другие программные модули 146 и программные данные 147. Следует заметить, что эти компоненты могут или быть теми же самыми, или отличными от операционной системы 134, прикладных программ 135, других программных модулей 136 и программных данных 137. Операционная система 144, прикладные программы 145, другие программные модули 146 и программные данные 147 имеют различные ссылочные позиции, чтобы проиллюстрировать, что как минимум они являются различными копиями. Пользователь может вводить команды и информацию в компьютер 110 через устройства ввода, например, клавиатуру 162, и устройства 161 управления позицией, обычно называемые как мышь, шаровой указатель или сенсорный экран.
Другие устройства ввода (не показаны) могут включать в себя джойстик, игровую клавиатуру, спутниковую антенну, сканер, радиоприемник и телевизионный приемник или приемник вещаемого видео, или подобные. Эти и другие устройства ввода часто соединяются с процессором 120 через проводной или беспроводный пользовательский интерфейс 160, который подсоединен к системной шине 121, но могут быть соединены посредством другого обычного интерфейса и шинными структурами, такими как, например, параллельный порт, игровой порт, универсальная последовательная шина (USB), интерфейс IEEE 1394, беспроводный интерфейс Bluetooth (TM), беспроводный интерфейс IEEE 802.11 и т.д. Кроме того, компьютер 110 может также включать в себя устройство ввода речи или звука, например, микрофон или набор микрофонов 198, а также громкоговоритель 197 или другое устройство вывода звука, подсоединенное через аудио интерфейс 199, снова включая в себя обычные проводные или беспроводные интерфейсы, такие как, например, параллельный порт, последовательный порт, USB, IEEE 1394, Bluetooth (TM) и т.д.
Монитор 191 или другой тип устройства отображения также связан с системной шиной 121 через интерфейс, такой как видеоинтерфейс 190. В дополнение к монитору компьютеры могут также включать в себя другие периферийные устройства вывода, например, принтер 196, который может быть связан через интерфейс 195 периферийных устройств вывода.
Компьютер 110 может работать в сетевой среде, используя логические соединения с одним или более удаленными компьютерами, таким как удаленный компьютер 180. Удаленным компьютером 180 может быть персональный компьютер, сервер, маршрутизатор, сеть ПК, устройство однорангового узла, или другой обычный сетевой узел, и обычно включает в себя многие или все элементы, описанные выше относительно компьютера 110, хотя только запоминающее устройство памяти 181 было проиллюстрировано на фиг. 1. Логические соединения, изображенные на фиг. 1, включают в себя локальную сеть (LAN) 171 и глобальную сеть (WAN) 173, но могут также включать в себя другие сети. Такие сетевые среды являются обычными в офисах, корпоративных сетях, интранет и Интернет.
При использовании в сетевой среде LAN компьютер 110 связан с LAN 171 через сетевой интерфейс или адаптер 170. При использовании в глобальной сети WAN компьютер 110 обычно включает в себя модем 172 или другие средства для установления связи по WAN 173, типа Интернет. Модем 172, который может быть внутренним или внешним, может быть связан с системной шиной 121 через пользовательский интерфейс 160 ввода или другой соответствующий механизм. В сетевой среде программные модули, изображенные относительно компьютера 110 или его частей, могут быть сохранены в удаленном запоминающем устройстве памяти. В качестве примера, а не ограничения, Фиг. 1 иллюстрирует удаленные прикладные программы 185 как постоянно находящиеся на ЗУ 181. Следует заметить, что показанные сетевые соединения являются примерными и могут использоваться другие средства установления линии связи между компьютерами.
В общем случае система хранения с адаптивным кодированием работает в P2P сети, такой как сеть, проиллюстрированная на Фиг. 2. Для конкретного сеанса передачи данных в виде потока, "сервер" 200 определен как узел в P2P сети, который выдает данные или передаваемую в виде потока информацию; "клиент" (или приемник) 210 определен как узел, который в настоящее время запрашивает данные; и "обслуживающий одноранговый узел" 220 определен как узел, который обслуживает клиента полной или частичной копией данных.
Вообще, сервер 200, клиент 210 и обслуживающие одноранговые узлы 220 - все являются узлами конечного пользователя, связанными с сетью, такой как Интернет. Поскольку сервер 200 всегда способен к обслуживанию данных, серверный узел также действует как обслуживающий одноранговый узел 220. Серверный узел 200 может также выполнять административные функции, которые не могут быть выполнены обслуживающими одноранговыми узлами 220, например, поддержание списка доступных обслуживающих одноранговых узлов, выполнение функций управления цифровыми правами (DRM) и так далее. Кроме того, как и с обычными P2P схемами, система хранения с адаптивным кодированием, описанная здесь, извлекает выгоду из повышенной эффективности по мере того, как разворачивается все больше одноранговых узлов 220. В частности, когда количество одноранговых узлов 220 увеличивается, нагрузка на сервер 200 данных уменьшается, таким образом становясь менее дорогой в работе, в то время как каждый клиентский узел 210 будет способен принять намного лучшее качество данных в течение конкретного сеанса связи передачи данных.
Кроме того, должно быть ясно, что роль конкретных узлов может изменяться. Например, конкретный узел может действовать как клиент 210 в одной конкретной передаче данных, в то же время действуя как обслуживающий одноранговый узел 220 в другом сеансе связи. Кроме того, конкретные узлы могут одновременно действовать и как клиентские узлы 210 и серверы 200 или обслуживающие одноранговые узлы 220, чтобы одновременно посылать один или более файлов данных или частей этих файлов, в то же время принимая другие данные от одного или более других обслуживающих одноранговых узлов.
В течение передачи данных клиент 200 сначала определяет местонахождение ряда одноранговых узлов 220, которые хранят некоторые или все требуемые данные, и затем принимает данные от множества одноранговых узлов (которые могут включать в себя сервер 200). Следовательно, каждый обслуживающий одноранговый узел 220 действует так, чтобы помочь серверу 200, сокращая общую нагрузку, посредством обслуживания части запроса по загрузке для клиента 210. В результате клиент 210, особенно в случае, когда имеется множество клиентов, может часто принимать намного лучшее качество данных, так как имеется значительно большая пропускная способность обслуживания, доступная, когда имеются много обслуживающих одноранговых узлов 220, чтобы помочь серверу 200.
После описания выше примерной рабочей среды, оставшиеся части этого раздела описания будут посвящены описанию программных модулей, воплощающих систему и процесс хранения с адаптивным кодированием.
2.0 Надежное эффективное одноранговое хранение
Система хранения с адаптивным кодированием обеспечивает адаптивную отказоустойчивую схему кодирования с исправлением ошибок (ERC), которая адаптивно решает, использовать ли ERC кодирование, и использует оптимальное количество фрагментов, которые нужно использовать для ERC кодирования для заданного размера файла для оптимальной надежности и эффективности. Количество фрагментов, используемых для ERC кодирования файла, будет называться "количество ERC фрагментов" для целей настоящего описания. Нижеследующие параграфы предоставляют описание эффективности и надежности однорангового (P2P) (запоминающего устройства) хранения и использования ERC в P2P сетях, а также описание количества используемых ERC фрагментов. Ниже описаны различные варианты осуществления системы и процесса (способа) хранения с адаптивным кодированием.
2.1 Надежность при P2P хранении: избыточность данных
Решение adhoc (для данного конкретного случая) привнести надежность в систему с ненадежными частями состоит в том, чтобы использовать избыточность. Если каждый отдельный одноранговый узел в сети имеет надежность p, чтобы достичь требуемой надежности p 0, можно просто продублировать информацию в n одноранговых узлов:
n=log(1-p 0)/log(1-p),
Figure 00000001
(1)
где n - количество одноранговых узлов, хранящих информацию. Во время извлечения клиент может входить в контакт с хранящими информацию одноранговыми узлами "один за другим". Пока один из хранящих информацию одноранговых узлов находится в оперативном режиме (on-line), информация может быть надежно извлечена.
Хотя и достигает надежности, простая стратегия дублирования не эффективна. Фиг. 3 показывает в виде графика количество хранящих информацию одноранговых узлов, необходимых, чтобы достичь надежности "шесть девяток". При надежности однорангового узла 50 % требуется копировать и сохранять информацию в 20 одноранговых узлах. Это ведет к более чем 20-кратному размеру полосы частот и объема памяти для распределения и хранения информации. Очевидно, эффективность была пожертвована в обмен на надежность информации.
2.2 Отказоустойчивое кодирование с исправлением ошибок в P2P
Чтобы повысить эффективность при поддержании одной и той же надежности, ERC может быть полезным инструментом. ERC разбивает первоначальный файл на k первоначальных фрагментов {xi}, i=0;…, k-1, каждый из которых является вектором по полю Галуа GF(q), где q - порядок поля. Скажем, при кодировании файла, который имеет длину 64 Кбайт, при использовании q=216 и k=16 каждый фрагмент будет размером 4 Кбайт и будет состоять из 2K слов, причем каждое слово является элементом GF(216). ERC затем формирует кодированные фрагменты из первоначальных фрагментов. ERC кодированный фрагмент формируется посредством операции:
Figure 00000002
,
где cj является кодированным фрагментом, Gj является k-мерным порождающим вектором, и уравнение (2) является матричным перемножением, все на GF(q). Во время декодирования одноранговый узел собирает m кодированных фрагментов, где m - количество, равное или немного большее k, и пытается декодировать k первоначальных фрагментов. Это эквивалентно решению уравнения:
Figure 00000003
Figure 00000003
Figure 00000004
=
Figure 00000005
Figure 00000006
Figure 00000007
(3)
Если эта матрица, сформированная порождающими векторами, имеет полный ранг k, первоначальные сообщения могут быть восстановлены.
Имеются много доступных ERC. Особенно интересным является код Рида-Соломона (RS). RS код использует структурные порождающие векторы и является разделимым на максимальное расстояние (MDS). В результате любые k различных кодированных фрагментов будут способны декодировать первоначальные фрагменты. Другое преимущество RS кода состоит в том, что кодированный фрагмент может быть легко идентифицирован и управляться индексом j порождающего вектора, таким образом облегчая обнаружение дублированных RS кодов. В нижеследующем описании ERC, принимается, что используется код RS. Однако система хранения с адаптивным кодированием может быть осуществлена с любым количеством обычных ERC.
2.3 ERC: Количество фрагментов
Используя ERC в P2P (одноранговой системе) хранении, файл данных распределяется к большему количеству одноранговых узлов, но каждый одноранговый узел должен только хранить один кодированный фрагмент, который имеет размер 1/k первоначального файла, приводя к общему сокращению полосы частот и объему памяти, требуемым для достижения того же уровня надежности, и таким образом повышая эффективность. Пусть n1 есть количество одноранговых узлов, которым кодированные фрагменты должны быть распределены, чтобы достичь некоторого требуемого уровня надежности. Так как RS код является кодом MDS, k одноранговых узлов, хранящие k различных кодированных фрагментов, будут достаточны для восстановления первоначального файла. Вероятность, что имеется точно m доступных одноранговых узлов, может быть рассчитана через биноминальное распределение:
p(m,n 1 )=
Figure 00000008
p m (1-p)
Figure 00000009
Figure 00000010
(4)
Можно таким образом вычислить n1 из p, p 0 и k как:
n1=
Figure 00000011
Figure 00000012
Figure 00000013
(5)
Коэффициент дублирования r определяется как:
r=n1/k
Figure 00000014
(6)
Коэффициент дублирования r является хорошим индикатором эффективности, поскольку r копий файлов должны быть распределены и сохранены в P2P (одноранговом) "облаке".
На фиг. 4 показан требуемый коэффициент дублирования, чтобы достичь надежности "шесть девяток" для различного количества k ERC фрагментов. Заметим, что использование ERC сильно уменьшает требуемый коэффициент дублирования. Сравнивая не-ERC (k=1) и ERC количество фрагментов k=256, требуемый коэффициент дублирования уменьшается от r=132 до r=13,1 для надежности однорангового узла 10%, от r=20 до r=2,5 для надежности однорангового узла 50% и от r=3 до r=1,05 для надежности однорангового узла 99%. ERC может улучшать эффективность без того, чтобы жертвовать надежностью.
Также заметим, что большее количество ERC фрагментов дополнительно уменьшает коэффициент дублирования. При надежности однорангового узла 50% изменение от k=8 до 16, 32, 64, 128 и 256 ведет к сокращению коэффициента дублирования от r=5,75 до 4,375, 3,53, 3,02, 2,68 и 2,48. Соответствующее повышение эффективности - 24%, 19%, 15%, 11% и 8%, соответственно. Это, кажется, предлагает, что нужно использовать большее количество ERC фрагментов для большей эффективности.
Однако большее количество ERC фрагментов подразумевает, что необходимо больше одноранговых узлов, чтобы хранить и извлекать кодированные фрагменты. На фиг. 5 показано количество одноранговых узлов, которые необходимы для хранения кодированных фрагментов, чтобы достичь надежности "шесть девяток", в виде графика. Снова при надежности однорангового узла 50%, изменение от k=8 до 16, 32, 64, 128 и 256 увеличивает количество хранящих информацию одноранговых узлов от n1=46 до 70, 113, 193, 343 и 630. Каждое удвоение k приводит к 52%, 61%, 71%, 78%, 84% увеличению одноранговых узлов, необходимых для хранения информации. Удвоение k также требует по меньшей мере двойного количества одноранговых узлов, с которыми нужно войти в контакт в течение извлечения информации.
В большинстве практических P2P сетей, установление соединения между одноранговыми узлами требует нетривиального количества накладных (служебных) расходов. Одна часть служебных расходов может быть приписана извлечению надлежащей идентификационной информации однорангового узла и обнаружению надлежащего тракта маршрутизации (например, посредством распределенной хеш-таблицы (DHT)). Другая часть служебных расходов вызвана необходимостью вызвать некоторые алгоритмы преобразования сетевого адреса (NAT), например, STUN (простой обход UDP посредством NAT), если один или оба одноранговых узлов "находятся" позади NAT. В предположении, что среднее число служебных расходов для установления соединения между двумя одноранговыми узлами равно служебные_расходы (установлено равным 16 Кб в этом примере), можно вычислить полную сетевую пропускную способность, необходимую для сохранения файла размера s, равную:
Пропускная_способность_хранения=s*r+n1*служебные_расходы
Figure 00000015
(7)
С учетом уравнения (7) очевидно, что большее количество ERC фрагментов не всегда ведет к лучшей эффективности. Вместо этого для маленького файла малое количество ERC фрагментов или даже не-ERC должно использоваться. Вычисляют полную пропускную способность, требуемую в уравнении (7) для различных размеров файла и ERC количества фрагментов, и составляют график кривых, показанных на фиг. 6. Граница между различным ERC количеством фрагментов является диапазоном оптимального размера файла, подходящим для конкретного ERC количества фрагментов. Например, нижняя кривая на Фиг. 6 иллюстрирует границу размера файла, ниже которой должно использоваться не-ERC и выше которой должно использоваться ERC с количеством фрагментов k=2. Интересное наблюдение состоит в том, что граница размера файла является относительно нечувствительной для доступности однорангового узла, что очень упрощает выбор оптимального параметра ERC-фрагмента. Вообще, для файла меньшего, чем приблизительно 10 Кб, ERC не должно использоваться. Для ERC с количеством фрагментов k=2, 4, 8, 16, 32, 128 и 256 наиболее подходящий диапазон размера файла составляет приблизительно 10-33 Кб, 33-100 Кб, 100-310 Кб, 310-950 Кб, 950 Кб-2,9 Мб, 2,9 Мб-8,9 Мб, 8,9-26 Мб, >26 Мб, соответственно.
2.4 Схема адаптивного ERC
Система и способ хранения с адаптивным кодированием адаптивно выбирают соответствующее количество ERC фрагментов для эффективного сохранения контента в P2P сети надежным образом. Используя кривую границы файла, установленную на фиг. 6, один вариант осуществления системы адаптивно выбирает - использовать не-ERC и ERC с количеством фрагментов k=2, 4, 8, 16, 32, 64, 128, 256 для различных размеров файла. Адаптивный ERC подход сравнивается с фиксированным параметром ERC, и эта разность в использовании сетевой полосы частот показывается на фиг. 7 и Фиг. 8, где надежность однорангового узла равна 50% и 99%, соответственно. По сравнению с использованием фиксированного ERC количества фрагментов k=1 (не-ERC), 8, 32 и 256, адаптивный способ ERC может улучшить эффективность в среднем на 61%, 26%, 25% и 50% для надежности однорангового узла, равной 50%, и на 50%, 18%, 29% и 57% для надежности однорангового узла, равной 99%. Повышение эффективности является существенным.
В наиболее общем смысле один вариант осуществления процесса сохранения с адаптивным кодированием показывается на фиг. 9. Как показано на этапе 902 процесса, система хранения с адаптивным кодированием вычисляет границы оптимального размера файла для различного количества фрагментов. Подают (вводят) файл с заданным размером файла, подлежащий кодированию (этап 904 процесса). Выполняется проверка относительно того, соответствует ли размер входного файла кодированию без исправления ошибок (k=1), как показано на этапе 906 процесса. Если размер входного файла не соответствует ERC, файл кодируют без использования ERC (этап 908 процесса). Если размер файла соответствует диапазону размеров файла ERC, файл кодируют, используя кодирование ERC и количество фрагментов, соответствующих размеру файла входного файла, которое является оптимальным количеством фрагментов для файла этого размера (этап 910 процесса).
Главное применение процесса адаптивного ERC, описанного здесь, заключается в P2P (одноранговом) резервном копировании или восстановлении. Одноранговый узел может выполнять резервное копирование файлов на другие одноранговые узлы в сети и затем восстанавливать эти файлы, извлекая их из одноранговых узлов в сети в случае, если они потеряны (например, в случае, если они потеряны при аварийном отказе компьютера). В общем случае Фиг. 10 иллюстрирует примерную операционную блок-схему последовательности операций, показывающую, как методика хранения с адаптивным кодированием может использоваться в P2P системе. Следует заметить, что любые прямоугольники и взаимосвязи между прямоугольниками, которые представлены ломаными или пунктирными линиями на фиг. 10, представляют альтернативные варианты осуществления системы хранения с адаптивным кодированием, описанной ниже, и что любой или все эти альтернативные варианты осуществления, которые описаны ниже, могут использоваться в комбинации с другими альтернативными вариантами осуществления, которые описаны в данном документе.
В частности, как проиллюстрировано на фиг. 10, до операции по передаче данных, например, когда требуется выполнять резервное копирование данных в одноранговые узлы в сети, сервер 200 или одноранговый узел 220 кодирует 1000 данные, которые должны быть переданы другим одноранговым узлам для хранения. Система хранения с адаптивным кодированием способна работать с любым из ряда обычных кодеков, такими, как, например, MPEG 1/2/4, WMA, WMV и т.д. Кроме того, в течение процесса 1000 кодирования сервер 200 или одноранговый узел 220 также формирует как заголовок данных, так и сопутствующий файл, содержащий структуру данных.
Как описано выше, в одном варианте осуществления, как только данные закодированы 1000, закодированные пакеты данных разбиваются 1005 на ряд модулей данных фиксированного размера. Далее, как и с закодированными данными, заголовок данных и структура данных также разбиваются 1005 на ряд модулей данных того же самого фиксированного размера, который используется для разбиения кодированных пакетов данных. Разбиение 1005 этой информации на модули данных фиксированной длины позволяют одноранговым узлам предварительно распределить блоки памяти до операций по передаче данных, таким образом избегая в вычислительном отношении дорогих операций по распределению памяти в течение процесса передачи данных. Далее, использование меньших модулей (блоков) данных позволяет использовать более тонкое управление клиентом или одноранговым узлом, сохраняющим данные, по точной величине полосы частот, расходуемой каждым одноранговым узлом, чтобы удовлетворить клиентские запросы модулей данных во время операций передачи данных.
В дополнение к разбиению 1005 закодированные данные, заголовок данных и структура данных на меньшие модули данных, если используется отказоустойчивое кодирование с исправлением ошибок, используется дополнительный уровень кодирования, чтобы обеспечить увеличенную избыточность в обычной P2P среде, где обслуживающие одноранговые узлы являются неотъемлемо ненадежными. В частности, как описано выше, в одном варианте осуществления, если определено, что гибкое кодирование с исправлением ошибок является подходящим для файла данных, модули данных дополнительно разделяют на ряд блоков данных и используется процесс 1010 отказоустойчивого кодирования с исправлением ошибок, чтобы кодировать файл.
Использование такого кодирования 1010 гарантирует, что один или более одноранговых узлов будут иметь блоки данных, необходимые для восстановления конкретных модулей данных, в то же время упрощая требования в отношении клиента, чтобы идентифицировать, какой из одноранговых узлов содержит необходимые данные. Дополнительно, в одном варианте осуществления ключи отказоустойчивого кодирования с исправлением ошибок, используемые каждым обслуживающим одноранговым узлом 220, автоматически назначают для каждого однорангового узла сервером 200. Однако, в другом варианте осуществления каждый обслуживающий одноранговый узел 220 просто выбирает ключи отказоустойчивого кодирования с исправлением ошибок случайным образом. Эти ключи затем извлекаются клиентом 210, когда каждый одноранговый узел 220 первоначально выполняет контакт с клиентом.
Как только файл данных был первоначально закодирован 1000, разбит на модули данных 1005, и возможно дополнительно закодирован с исправлением ошибок 1010, получившиеся модули данных или блоки данных затем распределяются 1015 различным одноранговым узлам 220. Это распределение 1015 может быть преднамеренным в том смысле, что блоки или пакеты кодированных данных просто подаются полностью или частично ряду одноранговых узлов, где они затем кэшируется или сохраняются для будущей передачи данных при вызове клиентом, который желает извлечь данные.
Как только данные были распределены 1015 к обслуживающим одноранговым узлам 220, клиент 210 затем готов начать выдавать запросы данных этим одноранговым узлам в случае, когда клиент желает извлечь эти данные из запоминающего устройства. Далее, как отмечено выше, сервер 200 может также действовать как одноранговый узел 220 с целью передачи данных клиенту 210.
В этот момент клиент 210 начинает сеанс передачи данных посредством первого извлечения списка доступных обслуживающих одноранговых узлов 220. Этот список извлекают непосредственно из сервера 200, из одного из одноранговых узлов 220 или используя обычный способ с распределенной хеш-таблицей (DHT) для идентификации потенциальных обслуживающих одноранговых узлов. Как только клиент 1010 извлек список одноранговых узлов, клиент затем соединяется с каждым обслуживающим одноранговым узлом 220 и извлекает 1025 список доступных файлов из каждого однорангового узла. Как только клиент 210 извлек список доступных файлов каждого однорангового узла 220, клиент затем извлекает 1035 заголовок данных и структуру данных для данных, которые должны быть переданы, из одного или более одноранговых узлов посредством запрашивания модулей данных, соответствующих этой информации, из одного или более одноранговых узлов через сетевое соединение между клиентом и такими одноранговыми узлами.
Заголовок данных в общем случае содержит глобальную информацию, описывающую данные, например, количество каналов в данных, свойства и характеристики (частота дискретизации аудио, частота кадров/разрешение видео) каждого канала, используемые кодеки, владельца прав автора/авторских прав носителей, и так далее. Следовательно, извлечение заголовка данных в начале сеанса передачи данных позволяет клиенту 220 устанавливать или инициализировать 1040 необходимые инструментальные средства, чтобы декодировать 1065 впоследствии принимаемые пакеты до приема этих пакетов в течение сеанса передачи данных.
Далее, после извлечения 1035 структуры данных конкретных данных клиент анализирует эту структуру данных и вычисляет идентификаторы 1045 модулей данных из модулей данных переданных данных, которые должны быть запрошены во время процесса передачи данных. Клиент 210 затем запрашивает эти модули данных 1050 один за другим от одного или более одноранговых узлов 220.
Наконец, как только все модули данных, составляющие конкретный пакет данных, были извлечены в соответствии с запросом 1050 клиентом 210, эти пакеты данных повторно собираются 1055 в первоначальный пакет данных. Повторно собранные пакеты данных затем декодируются 1060 и могут быть восстановлены 1065 на клиенте 210.
3.0 Одноранговое хранение: политики и стратегии структуры
В дополнение к настройке ERC количества фрагментов на основании размера файла, который должен быть сохранен в P2P сети, эффективность может также быть повышена. Различные варианты осуществления системы хранения с адаптивным кодированием, описанной здесь, предназначены для повышения эффективности хранения, используя некоторые стратегии, которые описаны ниже. Эти стратегии могут использоваться вместе с системой хранения с адаптивным кодированием или использоваться в любой P2P сети.
3.1 Стоимость P2P хранения
В этом разделе хранение файла в P2P сети сравнивается с хранением файла непосредственно в сервере с надежностью "шесть девяток". Заметим, что P2P решение уменьшает полосу частот и стоимость сервера, но требует, чтобы одноранговый узел использовал большую полосу частот, чтобы распределить файл в запоминающее устройство P2P. Полное использование сетевой полосы частот увеличивается в P2P решении. Увеличение в ширине полосы для загрузки для клиента может рассматриваться как стоимость P2P системы хранения. Эта стоимость для различных значений надежности однорангового узла и размеров файла сведена в таблицу.
Стоимость увеличенного использования полосы частот в P2P
Размер файла
Надежность 10 Кб 100 Кб 1 Мб 10 Мб 100 Мб
10% 332,9 79,1 29,5 16,5 12,5
50% 51,0 12,11 4,34 2,23 1,56
99% 9,4 1,87 0,65 0,22 0,09
Заметим, что стоимость использования P2P хранения мала, если надежность однорангового узла высока и размер файла большой. Например, хранение 100 Мб файла в одноранговых узлах с надежностью 99% включает стоимость только 9%. Однако, когда надежность однорангового узла низка и размер файла мал, стоимость может быть существенной.
3-2 Политики P2P хранения
Из таблицы можно вывести следующую политику использования "облака" P2P запоминающих устройств.
a. Нужно использовать ненадежные одноранговые узлы для сохранения больших файлов и использовать надежные одноранговые узлы для сохранения маленьких файлов. Стоимость для P2P системы должен быть меньшей, если распределять большие файлы ненадежным одноранговым узлам и назначать меньшие файлы надежным одноранговым узлам.
b. Нужно использовать ненадежные одноранговые узлы для сохранения статических файлов и использовать надежные одноранговые узлы для сохранения динамических файлов. Вызывают те файлы, которые не изменяются как статические, и вызывают те файлы, которые постоянно изменяются как динамические. Множество маленьких статических файлов могут быть связаны в большой статический файл и сохранены в облаке P2P запоминающих устройств. Та же самая стратегия не эффективна для динамических файлов, поскольку изменение единственного файла требует, чтобы полный объединенный файл был обновлен.
Вывод этой политики состоит в том, что если использовать P2P сеть для хранения состояния приложения, информации состояния однорангового узла и так далее, нужно передавать информацию наиболее надежным одноранговым узлам сети. Если имеется ограничение, что файл, который содержит состояние приложения, должен быть помещен только в высоконадежные одноранговые узлы (в сущности, высоконадежные одноранговые узлы формируют подсеть, которые составляют ядра расширенной P2P сети), можно значительно уменьшить этот коэффициент дублирования и стоимость обновления файла состояния и повысить эффективность.
c. Ненадежным одноранговым узлам должно быть разрешено распределение меньше, и надежным одноранговым узлам должно быть разрешено распределять больше.
d. Меньшим файлам должна быть назначена более высокая стоимость распределения, а большим файлам должна быть назначена более низкая стоимость распределения.
Политики c) и d) предназначены для резервного P2P копирования и приложений поиска (извлечения), где одноранговый узел может распределять контент в P2P облако хранения, и хранить контент для других одноранговых узлов. Сбалансированная P2P сеть хранения должна позволять каждому одноранговому узлу балансировать его вклад и выгоду. В предыдущих работах было указано, что полоса частот является первичным ресурсом в приложении P2P хранения. Пусть вкладом однорангового узла является количество кодированных фрагментов, которые он принимает и хранит для других одноранговых узлов. Пусть выгода однорангового узла есть объем контента, который он распределяет в P2P облако. Учитывая, что низкая надежность ведет к более избыточному хранению данных, нужно налагать штраф на ненадежные одноранговые узлы так, чтобы им было разрешено распределять меньше, и вознаграждать надежные одноранговые узлы так, чтобы им было разрешено распределять больше. Такая политика может иметь положительную выгоду в P2P экономии, поскольку она может поощрять пользователя сохранять P2P приложение интерактивно, таким образом повышая общую надежность P2P сети и уменьшая требуемый коэффициент дублирования.
Можно также налагать штраф на распределение маленького файла посредством назначения ему высокой стоимости распределения, требуя, чтобы одноранговый узел пропорционально давал больший вклад; и вознаграждать распределение большого файла посредством назначения ему низкой стоимости распределения, позволяя одноранговому узлу пропорционально вносить меньший вклад. В качестве вывода, P2P приложения резервного копирования должны быть разработаны так, чтобы минимизировать частоту резервного копирования. Вместо немедленного обновления файла сразу после его изменения, можно рассматривать связывание множества изменений в большой файл и обновлять его только однажды, скажем каждую полночь, в P2P облако запоминающих устройств.
Один вариант осуществления системы и способа хранения с адаптивным кодированием, которые разработаны согласно вышеупомянутым политикам, показан на фиг. 11. Как показано на этапе 1102 процесса, определяется надежность каждого однорангового узла в распределенной или P2P сети. Вводят файл, который должен быть распределен или сохранен (этап 1104 процесса). Оценивают размер файла (этап 1106 процесса), и стоимость распределения назначают файлу на основании ожидаемой полосы частот сохранения в уравнении (7) (этап 1108 процесса). Если файл является большим файлом, может быть назначена более высокая стоимость распределения. Если файл маленький, файлу может быть назначен более низкая стоимость распределения. На основании размера файла система хранения с адаптивным кодированием выберет одноранговые узлы с надлежащей надежностью, чтобы сохранить файл (этап 1110 процесса). То есть используются одноранговые узлы, чья надежность ниже заданного порога, чтобы хранить и распределять большой файл, и используются одноранговые узлы, чья надежность выше заданного порога, чтобы сохранить и распределить маленький файл.
Другой вариант осуществления системы и способа хранения с адаптивным кодированием, которые разработаны согласно вышеупомянутым политикам, показан на фиг. 12. Как показано на этапе 1202 процесса, определяется надежность каждого однорангового узла в распределенной или P2P сети. Вводится файл, который должен быть распределен или сохранен (этап 1204 процесса). Этот файл сравнивают с тем же самым файлом, который был предварительно сохранен, чтобы определить, является ли файл статическим или динамическим (этап 1206 процесса). Первый раз, когда файл сохраняют, принимается, что файл является динамическим. Если частые наблюдаются изменения к файлу, этот файл остается обозначенным как динамический. Если наблюдается, что файл не изменяется в течение длительного периода времени, файл обозначают как статический. Динамические файлы сохраняют в высоконадежных одноранговых узлах (этап 1210 процесса). (Таким образом, сначала файлы должны быть сохранены в серверах или высоконадежных одноранговых узлах.) Как только наблюдается, что файлы не изменяются и они станут статическими, эти статические файлы будут перераспределены и сохранены в одноранговых узлах более низкой надежности.
Следует заметить, что варианты осуществления, показанные на фиг. 11 и 12, могут использоваться поодиночке или в комбинации, чтобы повысить общую эффективность и надежность распределенной или одноранговой сети.
3.3 P2P хранение с поддержкой компонента сервера
Если компонент сервера используется в дополнении P2P сети, можно использовать P2P хранение для больших и статических файлов, и использовать этот сервер для маленьких, динамических файлов. Так как имеются большие файлы, которые потребляют большинство ресурса сервера, P2P хранение хорошо дополняет сервер.
Как показано на фиг. 13, один вариант осуществления системы и процесса хранения с адаптивным кодированием использует резервное копирование P2P с серверной поддержкой. Как показано на фиг. 13, динамические файлы в сети копируются в сервер (этап 1302 процесса). Клиент и/или сервер могут затем автоматически обнаруживать те динамические файлы, которые не изменяются больше и превращаются в статические файлы (этап 1304, 1306 процесса). Эти обнаруженные статические файлы затем могут быть связаны вместе в большой файл, как показано на этапе 1308 процесса, и распределены с ERC в P2P облако хранения (этап 1310 процесса). Это эффективно увеличивает размер файла, сохраненного в P2P облаке. В объединении с ERC большого количества фрагментов это может повысить эффективность.
Вариант осуществления, показанный на фиг. 13, может использоваться поодиночке или в комбинации с вариантами осуществления, показанными на фиг. 11 и 12, чтобы повысить общую эффективность и надежность распределенной или одноранговой сети. Следует также заметить, что этот вариант осуществления может использоваться как с гибким кодированием с исправлением ошибок и без него.
Следует заметить, что любой или все вышеупомянутые альтернативные варианты осуществления могут использоваться в любой комбинации, требуемой для формирования дополнительных гибридных вариантов осуществления. Хотя предмет изобретения был описан на языке, специфическом для структурных особенностей и/или методологических действий, должно быть понятно, что предмет, определенный в прилагаемой формуле изобретения, не обязательно ограничен конкретными признаками или действиями, описанными выше. Вместо этого, конкретные признаки и действия, описанные выше, раскрыты как формы примера осуществления формулы изобретения.

Claims (20)

1. Реализованный компьютером способ кодирования файлов, которые должны быть сохранены в распределенной сети, содержащий действия:
вычисление диапазонов оптимального размера файла, соответствующих различному количеству фрагментов с отказоустойчивым кодированием и исправлением ошибок (ERC), причем каждое количество фрагментов с отказоустойчивым кодированием и исправлением ошибок является оптимальным количеством фрагментов для соответствующего диапазона размеров файла;
ввод файла заданного размера файла из набора файлов разных размеров;
для заданного входного файла, если размер этого файла меньше, чем диапазон размеров файла для самого малого количества ERC фрагментов, равного двум, кодирование заданного входного файла без использования отказоустойчивого кодирования с исправлением ошибок;
для заданного входного файла, если размер файла входного файла соответствует диапазону размеров файла, кодирование заданного входного файла, используя отказоустойчивое кодирование с исправлением ошибок и оптимальное количество фрагментов, соответствующее диапазону размеров файла входного файла.
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. Система повышения надежности хранения и эффективности одноранговой сети, содержащая:
вычислительное устройство общего назначения;
компьютерную программу, содержащую программные модули, выполняемые упомянутым вычислительным устройством общего назначения, причем вычислительное устройство управляется программными модулями компьютерной программы для того, чтобы
определять оптимальное количество фрагментов для кодирования файла заданного размера из набора файлов различных размеров с помощью отказоустойчивого кодирования с исправлением ошибок;
если оптимальное количество фрагментов для кодирования файла посредством отказоустойчивого кодирования с исправлением ошибок равно одному, не кодируют файл посредством отказоустойчивого кодирования с исправлением ошибок; и
если оптимальное количество фрагментов больше, чем один, кодируют файл посредством разбиения файла на оптимальное количество фрагментов и кодируют файл посредством отказоустойчивого кодирования с исправлением ошибок.
10. Система по п.9, дополнительно содержащая программный модуль для вычисления количества одноранговых узлов, в которых кодированные фрагменты файла должны быть сохранены, согласно надежности однорангового узла и требуемой надежности контента файла.
11. Система по п.10, дополнительно содержащая программный модуль для распределения файла, кодированного посредством отказоустойчивого кодирования с исправлением ошибок, одному или более одноранговым узлам в сети.
12. Система по п.11, в которой программный модуль для распределения файла содержит подмодули для:
определения надежности каждого однорангового узла в распределенной сети;
определения размера файла; и
использования одного или более одноранговых узлов с надлежащей надежностью, как определено размером файла, для распределения файла.
13. Система по п.12, в которой программный модуль для распределения файла содержит подмодули для:
если файл является большим, использования одноранговых узлов, чья надежность ниже заданного порога, чтобы распределить большой файл; и
если файл не является большим, использования одноранговых узлов, чья надежность выше заданного порога, для распределения файла.
14. Система по п.11, в которой программный модуль для распределения файла содержит подмодули для:
определения надежности каждого однорангового узла в распределенной сети;
определения, является ли файл статическим;
если файл является статическим, использования одноранговых узлов, чья надежность ниже заданного порога, чтобы распределить файл; и
если файл не является статическим, использования одноранговых узлов, чья надежность выше заданного порога, чтобы распределить файл.
15. Система по п.11, в которой программный модуль для распределения файла содержит подмодули для:
определения надежности каждого однорангового узла в распределенной сети;
контроля изменений файла;
сначала распределения файла более надежным одноранговым узлам;
если наблюдается, чтобы файл не изменяется, перераспределения файла менее надежным одноранговым узлам.
16. Система по п.9, дополнительно содержащая программный модуль для повышения эффективности распределенной сети, используя сервер, дополнительно содержащая подмодули для:
резервного копирования всех динамических файлов в распределенной сети на сервер;
периодической проверки одноранговых узлов и сервера в распределенной сети, чтобы увидеть, изменились ли динамические файлы, резервно скопированные на сервер;
если динамические файлы не изменились, обозначают эти файлы как статические и связывают их вместе в большой файл; и
распределяют большой файл с отказоустойчивым кодированием с исправлением ошибок распределенной сети.
17. Система по п.9, в которой программный модуль для определения оптимального количества фрагментов для кодирования файла заданного размера посредством отказоустойчивого кодирования с исправлением ошибок содержит подмодули для:
определения диапазона оптимального размера файла для каждого возможного количества фрагментов с отказоустойчивым кодированием с исправлением ошибок, при этом каждое количество фрагментов является оптимальным количеством фрагментов для соответствующего диапазона;
определения, в какой диапазон размеров файла попадает размер входного файла; и
использования в качестве оптимального количества фрагментов, соответствующих диапазону оптимального размера файла, в который попадает размер входного файла.
18. Реализуемый компьютером способ декодирования кодированного файла, сохраненного в распределенной сети, содержащий этапы:
извлечение набора фрагментов кодированного файла, равного или большего, чем количество фрагментов, которые использовались для кодирования файла, причем файл был отказоустойчиво кодирован с исправлением ошибок с оптимальным количеством фрагментов для заданного размера файла и сохранен в количестве одноранговых узлов, которое было определено согласно надежности однорангового узла и требуемой надежности контента файла; и
декодирование кодированных фрагментов посредством отказоустойчивого декодирования с исправлением ошибок, чтобы получить декодированную версию кодированного файла.
19. Реализуемый компьютером способ по п.18, в котором по меньшей мере некоторые из кодированных фрагментов извлекают из носителя хранения данных одного или более одноранговых узлов в распределенной сети.
20. Реализуемый компьютером способ по п.18, в котором по меньшей мере некоторые из кодированных фрагментов извлекают из носителя хранения данных сервера в распределенной сети.
RU2008134366/08A 2006-02-22 2007-02-13 Надежное эффективное хранение в одноранговых узлах RU2435206C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/359,276 US9047310B2 (en) 2006-02-22 2006-02-22 Reliable, efficient peer-to-peer storage
US11/359,276 2006-02-22

Publications (2)

Publication Number Publication Date
RU2008134366A RU2008134366A (ru) 2010-02-27
RU2435206C2 true RU2435206C2 (ru) 2011-11-27

Family

ID=38459372

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2008134366/08A RU2435206C2 (ru) 2006-02-22 2007-02-13 Надежное эффективное хранение в одноранговых узлах

Country Status (11)

Country Link
US (1) US9047310B2 (ru)
EP (1) EP1999615B1 (ru)
JP (1) JP5214472B2 (ru)
KR (1) KR101432314B1 (ru)
CN (1) CN101390075B (ru)
AU (1) AU2007221340A1 (ru)
BR (1) BRPI0708199A2 (ru)
CA (1) CA2642158C (ru)
ES (1) ES2671700T3 (ru)
RU (1) RU2435206C2 (ru)
WO (1) WO2007100509A1 (ru)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2605674C2 (ru) * 2015-05-29 2016-12-27 Сиа "Квик Ресто" Система автоматизации предприятий сферы торговли, общественного питания и услуг
US10749669B2 (en) 2017-02-17 2020-08-18 Alibaba Group Holding Limited Blockchain system and data storage method and apparatus
US20230237435A1 (en) * 2022-01-24 2023-07-27 My Job Matcher, Inc. D/B/A Job.Com Apparatuses and methods for parsing and comparing video resume duplications

Families Citing this family (110)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509322B2 (en) 2001-01-11 2009-03-24 F5 Networks, Inc. Aggregated lock management for locking aggregated files in a switched file system
US8239354B2 (en) 2005-03-03 2012-08-07 F5 Networks, Inc. System and method for managing small-size files in an aggregated file system
AU2002249939A1 (en) 2001-01-11 2002-07-24 Z-Force Communications, Inc. File switch and switched file system
US8195760B2 (en) 2001-01-11 2012-06-05 F5 Networks, Inc. File aggregation in a switched file system
US7512673B2 (en) * 2001-01-11 2009-03-31 Attune Systems, Inc. Rule based aggregation of files and transactions in a switched file system
US20040133606A1 (en) * 2003-01-02 2004-07-08 Z-Force Communications, Inc. Directory aggregation for files distributed over a plurality of servers in a switched file system
US8458754B2 (en) 2001-01-22 2013-06-04 Sony Computer Entertainment Inc. Method and system for providing instant start multimedia content
US7711847B2 (en) * 2002-04-26 2010-05-04 Sony Computer Entertainment America Inc. Managing users in a multi-user network game environment
US20030217135A1 (en) * 2002-05-17 2003-11-20 Masayuki Chatani Dynamic player management
US8560707B2 (en) * 2007-10-05 2013-10-15 Sony Computer Entertainment America Llc Seamless host migration based on NAT type
US8131802B2 (en) 2007-10-05 2012-03-06 Sony Computer Entertainment America Llc Systems and methods for seamless host migration
US8224985B2 (en) 2005-10-04 2012-07-17 Sony Computer Entertainment Inc. Peer-to-peer communication traversing symmetric network address translators
US8060626B2 (en) 2008-09-22 2011-11-15 Sony Computer Entertainment America Llc. Method for host selection based on discovered NAT type
US7885970B2 (en) 2005-01-20 2011-02-08 F5 Networks, Inc. Scalable system for partitioning and accessing metadata over multiple servers
US7958347B1 (en) 2005-02-04 2011-06-07 F5 Networks, Inc. Methods and apparatus for implementing authentication
US7783600B1 (en) * 2006-02-27 2010-08-24 Symantec Operating Corporation Redundancy management service for peer-to-peer networks
US8417746B1 (en) 2006-04-03 2013-04-09 F5 Networks, Inc. File system management with enhanced searchability
US7797670B2 (en) * 2006-04-14 2010-09-14 Apple Inc. Mirrored file system
US20090182955A1 (en) * 2006-09-08 2009-07-16 Rao Cherukuri Application configuration across client devices of a local system
US7814146B2 (en) * 2006-12-05 2010-10-12 International Business Machines Corporation File fragment trading based on rarity values in a segmented file sharing system
US8775562B2 (en) * 2006-12-05 2014-07-08 International Business Machines Corporation Mapping file fragments to file information and tagging in a segmented file sharing system
US8131673B2 (en) * 2006-12-05 2012-03-06 International Business Machines Corporation Background file sharing in a segmented peer-to-peer file sharing network
US8140625B2 (en) * 2007-02-20 2012-03-20 Nec Laboratories America, Inc. Method for operating a fixed prefix peer to peer network
US8090792B2 (en) * 2007-03-08 2012-01-03 Nec Laboratories America, Inc. Method and system for a self managing and scalable grid storage
US20090077097A1 (en) * 2007-04-16 2009-03-19 Attune Systems, Inc. File Aggregation in a Switched File System
WO2008147973A2 (en) 2007-05-25 2008-12-04 Attune Systems, Inc. Remote file virtualization in a switched file system
US7995478B2 (en) 2007-05-30 2011-08-09 Sony Computer Entertainment Inc. Network communication with path MTU size discovery
US7933273B2 (en) * 2007-07-27 2011-04-26 Sony Computer Entertainment Inc. Cooperative NAT behavior discovery
US9483405B2 (en) 2007-09-20 2016-11-01 Sony Interactive Entertainment Inc. Simplified run-time program translation for emulating complex processor pipelines
US8180747B2 (en) 2007-11-12 2012-05-15 F5 Networks, Inc. Load sharing cluster file systems
US8117244B2 (en) * 2007-11-12 2012-02-14 F5 Networks, Inc. Non-disruptive file migration
US8548953B2 (en) 2007-11-12 2013-10-01 F5 Networks, Inc. File deduplication using storage tiers
US7908393B2 (en) 2007-12-04 2011-03-15 Sony Computer Entertainment Inc. Network bandwidth detection, distribution and traffic prioritization
US8352785B1 (en) 2007-12-13 2013-01-08 F5 Networks, Inc. Methods for generating a unified virtual snapshot and systems thereof
US7752168B2 (en) * 2008-02-07 2010-07-06 Novell, Inc. Method for coordinating peer-to-peer replicated backup and versioning based on usage metrics acquired from peer client
US7856506B2 (en) 2008-03-05 2010-12-21 Sony Computer Entertainment Inc. Traversal of symmetric network address translator for multiple simultaneous connections
EP2139205B1 (en) * 2008-06-27 2012-10-31 Alcatel Lucent Method of redundant data storage
US8549582B1 (en) 2008-07-11 2013-10-01 F5 Networks, Inc. Methods for handling a multi-protocol content name and systems thereof
US8335889B2 (en) * 2008-09-11 2012-12-18 Nec Laboratories America, Inc. Content addressable storage systems and methods employing searchable blocks
US7992037B2 (en) * 2008-09-11 2011-08-02 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
US20100088520A1 (en) * 2008-10-02 2010-04-08 Microsoft Corporation Protocol for determining availability of peers in a peer-to-peer storage system
US8051205B2 (en) * 2008-10-13 2011-11-01 Applied Micro Circuits Corporation Peer-to-peer distributed storage
US20100174968A1 (en) * 2009-01-02 2010-07-08 Microsoft Corporation Heirarchical erasure coding
US20100257403A1 (en) * 2009-04-03 2010-10-07 Microsoft Corporation Restoration of a system from a set of full and partial delta system snapshots across a distributed system
US8560639B2 (en) * 2009-04-24 2013-10-15 Microsoft Corporation Dynamic placement of replica data
US8769055B2 (en) 2009-04-24 2014-07-01 Microsoft Corporation Distributed backup and versioning
US8769049B2 (en) 2009-04-24 2014-07-01 Microsoft Corporation Intelligent tiers of backup data
US8935366B2 (en) * 2009-04-24 2015-01-13 Microsoft Corporation Hybrid distributed and cloud backup architecture
US8370294B2 (en) * 2009-05-06 2013-02-05 Microsoft Corporation File stashing for storage media
US8280958B2 (en) * 2009-07-13 2012-10-02 International Business Machines Corporation List passing in a background file sharing network
US8204791B2 (en) * 2009-07-13 2012-06-19 International Business Machines Corporation File fragment pricing in a segmented file sharing network
US8458287B2 (en) * 2009-07-31 2013-06-04 Microsoft Corporation Erasure coded storage aggregation in data centers
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US8126987B2 (en) 2009-11-16 2012-02-28 Sony Computer Entertainment Inc. Mediation of content-related services
US8204860B1 (en) 2010-02-09 2012-06-19 F5 Networks, Inc. Methods and systems for snapshot reconstitution
US9195500B1 (en) 2010-02-09 2015-11-24 F5 Networks, Inc. Methods for seamless storage importing and devices thereof
US8631269B2 (en) * 2010-05-21 2014-01-14 Indian Institute Of Science Methods and system for replacing a failed node in a distributed storage network
US8433759B2 (en) 2010-05-24 2013-04-30 Sony Computer Entertainment America Llc Direction-conscious information sharing
US8347100B1 (en) 2010-07-14 2013-01-01 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
US8555323B2 (en) * 2010-09-28 2013-10-08 The Chinese University Of Hong Kong Methods for replicating media contents and P2P VoD systems
US9286298B1 (en) 2010-10-14 2016-03-15 F5 Networks, Inc. Methods for enhancing management of backup data sets and devices thereof
US8504535B1 (en) * 2010-12-20 2013-08-06 Amazon Technologies, Inc. Erasure coding and redundant replication
US8396836B1 (en) 2011-06-30 2013-03-12 F5 Networks, Inc. System for mitigating file virtualization storage import latency
US9432454B2 (en) * 2011-08-29 2016-08-30 At&T Intellectual Property I, L.P. Cloud-to-cloud peering
US9141679B2 (en) 2011-08-31 2015-09-22 Microsoft Technology Licensing, Llc Cloud data storage using redundant encoding
US8463850B1 (en) 2011-10-26 2013-06-11 F5 Networks, Inc. System and method of algorithmically generating a server side transaction identifier
CN103136114B (zh) 2011-11-30 2015-11-25 华为技术有限公司 存储方法及存储装置
US9160697B2 (en) 2012-01-01 2015-10-13 Qualcomm Incorporated Data delivery optimization
US9020912B1 (en) 2012-02-20 2015-04-28 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
US10454997B2 (en) * 2012-09-07 2019-10-22 Avigilon Corporation Distributed physical security system
US9519501B1 (en) 2012-09-30 2016-12-13 F5 Networks, Inc. Hardware assisted flow acceleration and L2 SMAC management in a heterogeneous distributed multi-tenant virtualized clustered system
US9716749B2 (en) * 2012-12-14 2017-07-25 Microsoft Technology Licensing, Llc Centralized management of a P2P network
US10391387B2 (en) 2012-12-14 2019-08-27 Microsoft Technology Licensing, Llc Presenting digital content item with tiered functionality
US9413846B2 (en) 2012-12-14 2016-08-09 Microsoft Technology Licensing, Llc Content-acquisition source selection and management
US8880838B2 (en) 2013-01-08 2014-11-04 Lyve Minds, Inc. Storage network data allocation
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9554418B1 (en) 2013-02-28 2017-01-24 F5 Networks, Inc. Device for topology hiding of a visited network
US9600365B2 (en) 2013-04-16 2017-03-21 Microsoft Technology Licensing, Llc Local erasure codes for data storage
CN104185216B (zh) * 2013-05-28 2018-09-04 腾讯科技(深圳)有限公司 一种文件的传输方法和装置
KR102238590B1 (ko) 2013-11-29 2021-04-09 삼성전자주식회사 데이터 패킷 전송의 인증 및 검증 방법, 및 상기 방법을 수행하는 장치들
US9678678B2 (en) 2013-12-20 2017-06-13 Lyve Minds, Inc. Storage network data retrieval
US20150324088A1 (en) * 2014-05-09 2015-11-12 Lyve Minds, Inc. Thumbnail image creation
US9753807B1 (en) * 2014-06-17 2017-09-05 Amazon Technologies, Inc. Generation and verification of erasure encoded fragments
US10853311B1 (en) * 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US9882906B2 (en) 2014-12-12 2018-01-30 International Business Machines Corporation Recommendation schema for storing data in a shared data storage network
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US9800659B2 (en) 2015-02-02 2017-10-24 International Business Machines Corporation Enterprise peer-to-peer storage and method of managing peer network storage
US10013682B2 (en) 2015-02-13 2018-07-03 International Business Machines Corporation Storage and recovery of digital data based on social network
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10187083B2 (en) 2015-06-26 2019-01-22 Microsoft Technology Licensing, Llc Flexible erasure coding with enhanced local protection group structures
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
US10691557B1 (en) * 2016-06-24 2020-06-23 EMC IP Holding Company LLC Backup file recovery from multiple data sources
US10412198B1 (en) 2016-10-27 2019-09-10 F5 Networks, Inc. Methods for improved transmission control protocol (TCP) performance visibility and devices thereof
US10191678B1 (en) * 2017-04-27 2019-01-29 EMC IP Holding Company LLC System and method for data re-protection with erasure coding
KR101907786B1 (ko) 2017-04-28 2018-10-12 한국과학기술원 캐시 메모리를 이용한 다수의 보조 노드 무선 통신에서 노드간 협력을 통해 사용자의 체감 효과를 향상시키는 분산 저장 방법 및 장치
US10567492B1 (en) 2017-05-11 2020-02-18 F5 Networks, Inc. Methods for load balancing in a federated identity environment and devices thereof
US10579284B2 (en) * 2017-06-02 2020-03-03 International Business Machines Corporation Filesystem enhancements for unified file and object access in an object storage cloud
KR102015188B1 (ko) * 2017-12-07 2019-08-27 한국과학기술원 제한된 메모리를 갖는 보조 노드에서 확률적 파일 최적 복구 방법, 그리고 파일 분산 저장 방법 및 장치
US11223689B1 (en) 2018-01-05 2022-01-11 F5 Networks, Inc. Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof
US10833943B1 (en) 2018-03-01 2020-11-10 F5 Networks, Inc. Methods for service chaining and devices thereof
US10765952B2 (en) 2018-09-21 2020-09-08 Sony Interactive Entertainment LLC System-level multiplayer matchmaking
US10695671B2 (en) 2018-09-28 2020-06-30 Sony Interactive Entertainment LLC Establishing and managing multiplayer sessions
US10911337B1 (en) * 2018-10-10 2021-02-02 Benjamin Thaddeus De Kosnik Network activity monitoring service
WO2020180754A1 (en) * 2019-03-01 2020-09-10 Singulardtv, Gmbh Decentralized digital content distribution system and process using block chains and encrpyted peer-to-peer network
CN111464600B (zh) * 2020-03-20 2023-04-07 深圳赛安特技术服务有限公司 点对点存储网络建立方法、装置、介质及电子设备
CN114221767A (zh) * 2021-11-02 2022-03-22 北京中合谷投资有限公司 一种分布式网络的文件监控方法
US11936699B2 (en) 2022-06-03 2024-03-19 Micro Focus Llc Optimal usage of content storage in a managed network

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6308295B1 (en) * 1996-10-08 2001-10-23 Arizona Board Of Regents Parallel spectral reed-solomon encoder and decoder
US5987479A (en) 1997-09-24 1999-11-16 Sony Corporation, Inc. Large block allocation for disk-based file systems
US20030015423A1 (en) 1999-03-04 2003-01-23 Lagreca Alfred J. Method and apparatus for calibrating a pH/ISE meter
US7412462B2 (en) * 2000-02-18 2008-08-12 Burnside Acquisition, Llc Data repository and method for promoting network storage of data
US7529834B1 (en) * 2000-06-02 2009-05-05 Hewlett-Packard Development Company, L.P. Method and system for cooperatively backing up data on computers in a network
WO2002076003A2 (en) * 2001-03-19 2002-09-26 Imesh Ltd. System and method for peer-to-peer file exchange mechanism from multiple sources
EP1391832A1 (en) * 2001-04-18 2004-02-25 Satoshi Omori Method and apparatus of recording sequencial data of biological substances
US7243103B2 (en) * 2002-02-14 2007-07-10 The Escher Group, Ltd. Peer to peer enterprise storage system with lexical recovery sub-system
US20030158958A1 (en) * 2002-02-20 2003-08-21 Koninklijke Philips Electronics N.V. Distributed storage network architecture using user devices
JP2004127168A (ja) 2002-10-07 2004-04-22 Sony Corp 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム
EP1728373B1 (en) * 2004-03-22 2018-01-03 Codemate A/S Distribution method, preferably applied in a streaming system
US7546342B2 (en) 2004-05-14 2009-06-09 Microsoft Corporation Distributed hosting of web content using partial replication
US20060069800A1 (en) * 2004-09-03 2006-03-30 Microsoft Corporation System and method for erasure coding of streaming media
US7984018B2 (en) * 2005-04-18 2011-07-19 Microsoft Corporation Efficient point-to-multipoint data reconciliation
US20070177739A1 (en) * 2006-01-27 2007-08-02 Nec Laboratories America, Inc. Method and Apparatus for Distributed Data Replication

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2605674C2 (ru) * 2015-05-29 2016-12-27 Сиа "Квик Ресто" Система автоматизации предприятий сферы торговли, общественного питания и услуг
US10749669B2 (en) 2017-02-17 2020-08-18 Alibaba Group Holding Limited Blockchain system and data storage method and apparatus
RU2732535C1 (ru) * 2017-02-17 2020-09-21 Алибаба Груп Холдинг Лимитед Система блокчейна и способ и устройство хранения данных
US20230237435A1 (en) * 2022-01-24 2023-07-27 My Job Matcher, Inc. D/B/A Job.Com Apparatuses and methods for parsing and comparing video resume duplications

Also Published As

Publication number Publication date
EP1999615B1 (en) 2018-03-28
US9047310B2 (en) 2015-06-02
BRPI0708199A2 (pt) 2011-05-17
RU2008134366A (ru) 2010-02-27
US20070208748A1 (en) 2007-09-06
JP5214472B2 (ja) 2013-06-19
AU2007221340A1 (en) 2007-09-07
EP1999615A4 (en) 2013-03-06
ES2671700T3 (es) 2018-06-08
WO2007100509A1 (en) 2007-09-07
EP1999615A1 (en) 2008-12-10
CA2642158C (en) 2015-01-27
KR20080106187A (ko) 2008-12-04
KR101432314B1 (ko) 2014-08-20
CA2642158A1 (en) 2007-09-07
JP2009527856A (ja) 2009-07-30
CN101390075B (zh) 2015-09-02
CN101390075A (zh) 2009-03-18

Similar Documents

Publication Publication Date Title
RU2435206C2 (ru) Надежное эффективное хранение в одноранговых узлах
US10613935B2 (en) System and method for supporting integrity of data storage with erasure coding
US10860432B2 (en) Cloud data backup storage manager
US10536167B2 (en) Matrix-based error correction and erasure code methods and system and applications thereof
US20200145511A1 (en) Topology aware computing device to reduce network latency
JP2020509490A (ja) 分散型ストレージ・ネットワーク内のゾーンにおけるデータの順次記憶
US20090094318A1 (en) Smart access to a dispersed data storage network
US20070061542A1 (en) System for a distributed column chunk data store
US20100131554A1 (en) System and method for publishing messages asynchronously in a distributed database
US8924513B2 (en) Storage system
US10592335B2 (en) Using data object copies to improve the performance of a distributed storage network
US11704195B1 (en) Pre-positioning target content in a storage network
CN110419029B (zh) 在分布式存储网络中部分更新数据内容的方法
US11341009B1 (en) Directing placement of data in cloud storage nodes
JP6671708B2 (ja) バックアップリストアシステム及びバックアップリストア方法
US10769016B2 (en) Storing a plurality of correlated data in a dispersed storage network
US11334456B1 (en) Space efficient data protection
JP2018524705A (ja) データ転送中にデータアクセス要求を処理するための方法及びシステム
US10254980B1 (en) Scheduling requests from data sources for efficient data decoding
US10942684B2 (en) Assigning prioritized rebuild resources optimally
US8977765B1 (en) Method and apparatus for streaming applications to a plurality of clients within a peer to-peer network

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150526

MM4A The patent is invalid due to non-payment of fees

Effective date: 20200214