RU2501072C2 - Распределенное хранение восстанавливаемых данных - Google Patents

Распределенное хранение восстанавливаемых данных Download PDF

Info

Publication number
RU2501072C2
RU2501072C2 RU2011136622/08A RU2011136622A RU2501072C2 RU 2501072 C2 RU2501072 C2 RU 2501072C2 RU 2011136622/08 A RU2011136622/08 A RU 2011136622/08A RU 2011136622 A RU2011136622 A RU 2011136622A RU 2501072 C2 RU2501072 C2 RU 2501072C2
Authority
RU
Russia
Prior art keywords
replacement
quota
quotas
node
generated
Prior art date
Application number
RU2011136622/08A
Other languages
English (en)
Other versions
RU2011136622A (ru
Inventor
Брэм КОЭН
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 RU2011136622A publication Critical patent/RU2011136622A/ru
Application granted granted Critical
Publication of RU2501072C2 publication Critical patent/RU2501072C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Изобретение относится к вычислительной технике. Технический результат заключается в увеличении надежности хранения данных. Способ замены отказавшего узла, хранящего распределенные данные, содержащий этапы, на которых: посредством первого узла хранения принимают первый набор квот, сгенерированный из файла данных, при этом каждая квота в первом наборе включает в себя линейную комбинацию частей файла данных наряду с набором коэффициентов, использованных для генерирования этой линейной комбинации; посредством первого узла хранения принимают указание нового узла хранения, заменяющего отказавший узел, при этом отказавший узел включает в себя второй набор квот, сгенерированный из файла данных; посредством первого узла хранения генерируют первую заменяющую квоту в качестве реакции на упомянутое указание, при этом первую заменяющую квоту генерируют путем умножения каждой квоты в первом наборе и набора коэффициентов на случайное масштабирующее значение и объединения умноженного первого набора квот и умноженного набора коэффициентов; и посредством первого узла хранения передают сгенерированную первую заменяющую квоту в новый узел хранения, при этом первая заменяющая квота и по меньшей мере одна другая заменяющая квота формируют второй набор квот в новом узле хранения, причем эта другая заменяющая квота генерируется вторым узлом хранения. 3 н. и 20 з.п. ф-лы, 5 ил.

Description

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
[0001] По данной заявке испрашивается приоритет Предварительной Заявки США 61/149,676, поданной 03 Февраля 2009 года, которая во всем своем объеме включена в настоящее описание посредством ссылки.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
Область техники, к которой относится изобретение
[0002] Настоящее изобретение в целом относится к распределенному хранению данных на различных узлах в сети.
Описание связанной области техники
[0003] Главной проблемой хранения является то, каким образом хранить данные с избыточностью, чтобы даже при отказе конкретной части хранилища оставалась возможность восстановления данных из других источников. Одной схемой является простое хранение множества копий всего. Несмотря на то что это работает, данный подход требует значительно большего объема хранения для обеспечения конкретного уровня надежности (или, прямо обратно, он обеспечивает значительно меньшую надежность при конкретном объеме хранилища).
[0004] Для достижения лучшей надежности могут использоваться коды стирания. Код стирания берет исходную часть данных и формирует из нее то, что называется «квотами». Квоты выполнены таким образом, что до тех пор, пока существует достаточное количество квот, так что их общий размер такой же, как размер исходных данных, исходные данные могут быть воссозданы из них. В том, что именуется как схема кодирования со стиранием k-из-n, формируется n квот, и любые k из них могут использоваться для воссоздания исходных данных. Каждая квота является размером 1/k от размера исходных данных, так что квоты содержат достаточно информации для воссоздания. n может быть спорадическим. Хранение большего числа квот приведет к большей надежности, но количество квот может измеряться от k до, по сути, бесконечности. Обычная схема простого хранения множества копий исходных данных может рассматриваться как схема 1-из-n для n копий и как очень ненадежная, но при этом простая схема дробления исходных данных на части, а сохранение всех их по отдельности можно рассматривать как схему k-из-k для k частей.
[0005] Метод кодирования со стиранием сначала разбивает исходные данные на k частей, затем обрабатывает данные части как векторы в поле Галуа (Galois) (GF) и формирует квоты посредством умножения частей на произвольные коэффициенты и их сложения. Кодирование со стиранием также может выполняться посредством обработки частей в качестве векторов по модулю простого числа. Для простоты, описанное ниже кодирование со стиранием использует поля Галуа. В итоге квота содержит результат данного вычисления наряду с произвольными коэффициентами. Случайность коэффициентов является причиной того, что существует вероятность того, что исходные данные будут невосстанавливаемыми, которая, по сути, равна обратному количеству используемых элементов поля Галуа. Применительно к хранению, поле Галуа размером 232 или 264 (соответствующее секциям обработки из 4 и 8 байтов соответственно как отдельным элементам) является разумным компромиссом между расходами на вычисления и вероятностью того, что данные будут невосстанавливаемыми, что является крайне маловероятным при 232 и, по сути, невозможным при 264.
[0006] Рассмотренный выше метод сталкивается с ограничениями при использовании применительно к распределенному хранению через Интернет. Применительно к хранению через Интернет недостаточным ресурсом является пропускная способность, а емкость хранения конечных узлов, по сути, бесконечна (или, по меньшей мере, достаточно недорогая, чтобы не быть ограничивающим фактором), приводя к ситуации, где ограничивающим фактором для любого хранения является величина пропускной способности для его отправки. Применительно к исходному хранению это приводит к модели, аналогичной той, при которой ограничивающим фактором является емкость хранения; где существует один к одному замена пропускной способности для хранения. Но после исходного хранения значительные ресурсы пропускной способности могут потребляться для замены отказавших носителей информации (и, в конечном счете, отказывают все носители информации). Как правило, когда избыточное хранение выполнено локально, например в локальной сети, то полное восстановление исходных данных выполняется в отношении квот, которые содержались на отказавших носителях, затем создаются новые квоты и сохраняются на других частях носителей, и затем временная полная копия удаляется. Выполнение такого же действия через Интернет потребует получения k квот из различных оставшихся носителей информации, воссоздания исходных данных, формирования новых k квот и отправки квот на носители информации (включая замещающие носители информации). Это требует использования 2k-кратного размера квот в пропускной способности через Интернет, что становиться быстро неприемлемым по мере роста k.
[0007] Простое хранение нескольких копий данных лучше справляется с задачей, избегая использования пропускной способности, но имеет намного хуже свойства надежности и обладает собственными потерями в масштабе n, так как чем больше копий чего-либо требуется для хранения, тем больше пропускной способности используется по мере того как утрачиваются копии.
КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[0008] Система, способ и компьютерный программный продукт заменяют отказавший узел, хранящий данные, относящиеся к части файла данных. В одном варианте осуществления каждым из множества доступных узлов хранения принимается указание на замену отказавшего узла новым узлом хранения. Каждый из доступных узлов хранения содержит множество квот, сформированных из файла данных. Данные квоты могут быть сформированными на основании частей файла данных, используя методики кодирования со стиранием. Заменяющая квота формируется на каждом из множества доступных узлов хранения. Заменяющие квоты формируются посредством создания линейной комбинации квот на каждом узле, используя случайные коэффициенты. Затем, сформированные заменяющие квоты отправляются из множества узлов хранения указанному новому узлу хранения. В дальнейшем эти заменяющие квоты могут использоваться для воссоздания файла данных.
ПЕРЕЧЕНЬ ФИГУР ЧЕРТЕЖЕЙ
[0009] Фиг.1 иллюстрирует среду, включающую в себя узлы хранения для распределенного хранения данных, в одном варианте осуществления.
[0010] Фиг.2 является логической блок-схемой, иллюстрирующей способ распределенного хранения данных в одном варианте осуществления.
[0011] Фиг.3 является логической блок-схемой, иллюстрирующей способ разбиения файла данных на квоты и отправки квот узлам хранения в одном варианте осуществления.
[0012] Фиг.4 является логической блок-схемой, иллюстрирующей способ формирования квот для заменяющего узла хранения в одном варианте осуществления.
[0013] Фиг.5 является принципиальной схемой, иллюстрирующей формирование заменяющих квот для заменяющего узла из оставшихся доступных узлов в одном варианте осуществления.
[0014] Фигуры изображают предпочтительные варианты осуществления настоящего изобретения только в целях иллюстрации. Из нижеследующего рассмотрения специалист легко распознает, что, не отступая от описываемых здесь принципов изобретения, могут быть воплощены альтернативные проиллюстрированным здесь структурам и способам варианты осуществления.
ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0015] Фиг.1 иллюстрирует среду 100, включающую в себя узлы 106 хранения для распределенного хранения данных в одном варианте осуществления. Блок 102 выгрузки исходно содержит в себе файл данных, который должен быть сохранен на узлах хранения. Оператор блока выгрузки может пожелать выполнить сохранение файлов на узлах хранения по разным причинам, таким как резервное копирование файла или совместное использование файла. Блок выгрузки разделяет файлы на квоты, дополнительно описываемые ниже, и отправляет квоты различным узлам хранения по сети 104. Узлы 106 хранения принимают квоты и сохраняют квоты. Блок 110 загрузки получает квоты от различных узлов хранения и воссоздает файл данных. В одном варианте осуществления блок 110 загрузки является тем же, что и блок 102 выгрузки. Блок 108 слежения может отслеживать аспекты системы хранения, такие как доступность или недоступность различных узлов хранения и местоположения различных квот. Узлы 106 хранения и блок 102 выгрузки и блок загрузки могут принимать информацию от блока слежения в отношении отправки, приема или создания квот.
[0016] Любой из узлов 106 хранения может в любой момент времени стать недоступным. Например, могут быть потеряны данные, хранящиеся на узле хранения, или может быть потеряна способность узла к соединению с сетью. Квоты, отправленные блоком 102 выгрузки, распределяются по узлам 106 хранения таким образом, чтобы оставалась возможность полного восстановления файла данных даже при отказе одного или более узлов 106 хранения. Существует некоторая избыточность между квотами в разных узлах хранения. Когда конкретный узел 106 хранения становится недоступным, может быть активирован заменяющий узел хранения, а оставшиеся узлы 106 хранения формируют заменяющие квоты и отправляют эти квоты непосредственно заменяющему узлу хранения для хранения на нем. Эти заменяющие (также именуемые как “новые”) квоты могут создаваться посредством повторного объединения существующих квот на оставшихся узлах. Применительно к квотам не является обязательным отправка их в единое местоположение (например, блок выгрузки), воссоздание в исходный файл и затем повторное разделение на новые квоты, которые отправляются текущим узлам. В результате сокращается потребление пропускной способности по сети 104 при хранении квот на заменяющем узле, после того как узел становится недоступным.
[0017] Блок 102 выгрузки, блок 110 загрузки, блок 108 слежения и узлы 106 хранения могут быть компьютерами, содержащими CPU (центральный процессор), память, жесткий диск или другое устройство хранения, сетевой интерфейс, периферийные интерфейсы и прочие широко известные компоненты. Узлы 106 хранения могут включать в себя большие объемы доступного пространства для хранения. В одном варианте осуществления узлы хранения могут быть подключаемыми к сети устройствами хранения. Несмотря на то, что на фиг.1 показано только три узла хранения, их может быть намного больше. В дополнение также может существовать множество блоков 102 выгрузки и блоков 110 загрузки, получающих доступ к узлам хранения. Также может существовать множество блоков 108 слежения (например, могут существовать резервные блоки слежения для случая отказа основного блока слежения).
[0018] Блок 102 выгрузки, блок 110 загрузки, блок 108 слежения и узлы 106 хранения осуществляют связь посредством сети 104. Сеть может быть выполнена в виде Интернет, локальной сети, беспроводной сети и различных других типов сетей. В одном варианте осуществления узлы хранения могут быть географически удалены от блока выгрузки и блока загрузки, и передача по сети больших объемов данных между блоком выгрузки, блоком загрузки и узлами хранения может быть дорогостоящей. В результате в некоторых вариантах осуществления важной может быть минимизация таких передач данных во время операций, таких как предоставление заменяющему узлу квот.
[0019] В одном варианте осуществления блок 108 слежения функционирует в качестве централизованной системы управления и команд, управляемой поставщиком услуг, для координации передачи данных между блоками выгрузки, блоками загрузки и узлами хранения. Так как непосредственно через блок слежения не производятся массовые передачи данных, то его пропускная способность и вычислительные ресурсы могут быть низкими, и он может быть выполнен с использованием обычных методов восстановления после отказа. Блок слежения отвечает за отслеживание местоположений квот и узлов хранения и отслеживания того, какие из операций прошли успешно, а какие отказали. Передача данных квот выполняется непосредственно (например, от блока выгрузки к узлу хранения или от узла хранения к узлу хранения), благодаря координации, обеспечиваемой блоком слежения.
[0020] Фиг.2 является логической блок-схемой, иллюстрирующей способ распределенного хранения данных в одном варианте осуществления. Исходно файл данных, который должен быть сохранен, представлен на блоке 102 выгрузки. Блок выгрузки разбивает 202 файлы на квоты, которые в некоторой степени содержат избыточность. Затем данные квоты отправляются 204 различным узлам 106 хранения и распределяются таким образом, чтобы все же оставалась возможность восстановления исходного файла данных из квот на оставшихся узлах при потере квот на одном или более узлах. В некоторый момент времени один из узлов хранения отказывает, и квоты, хранящиеся на данном узле, теряются. Для сохранения точно такого же уровня надежности хранения в качестве заменяющего узла назначается новый узел 106 хранения. На нескольких из существующих узлов формируются 206 заменяющие квоты, которые будут храниться на заменяющем узле, и эти квоты отправляются заменяющему узлу для хранения на заменяющем узле. Этап 206 может выполняться несколько раз по мере того, как отказывает и заменяется множество узлов. В некоторый момент времени блок 110 загрузки может заинтересоваться в получении файла данных. Блок загрузки получает 208 квоты от доступных в настоящий момент узлов хранения и воссоздает 210 исходный файл данных. Варианты осуществления этапов на фиг.2 более подробно описываются ниже.
[0021] Фиг.3 является логической блок-схемой, иллюстрирующей способ разбиения файла данных на квоты и отправки квот узлам хранения в одном варианте осуществления. Исходно блок 102 выгрузки принимает 302 количество доступных узлов 106 хранения от узла слежения или администратора системы или другого источника. В описании ниже исходное количество доступных узлов представлено как N. Так же принимается 304 параметр x надежности. Параметр x надежности представляет собой количество узлов хранения, содержащих квоты файла данных, доступность которых требуется для восстановления файла данных. Как правило, x выбирается таким, чтобы быть меньше N, и таким образом, чтобы оставалась возможность восстановления файла, если становятся недоступными один или более узлов. В описании ниже x принимается нечетным, тем не менее, с незначительными изменениями могут быть созданы варианты осуществления для четных значений. Параметр надежности может приниматься от блока слежения, или оператора блока выгрузки, или другого источника. Он может быть установлен в соответствии с политикой системы.
[0022] Квоты создаются из файла данных, используя схему кодирования со стиранием k-из-n, описанную выше в разделе “Предпосылки Создания Изобретения”, где k=x*(x+1)/2 в одном варианте осуществления. В одном варианте осуществления k является квадратичной функцией x. Каждая квота имеет размер 1/k файла данных. Создаются квоты общим числом n, где n=xN, и x квот отправляется каждому узлу хранения. В одном варианте осуществления файл данных разбивают 306 на k последовательных частей, которые обрабатываются для формирования 308 n квот, используя кодирование со стиранием. Например, на этапе 306, файл из 10 миллионов байт может быть разбит на последовательные части по 4,000 байт каждая. Обработка на этапе 308 включает в себя умножение частей на произвольные коэффициенты и сложение (масштабированных) частей вместе в различных комбинациях. Например, каждая часть из 4,000 байт может быть умножена на 4-байтный случайный коэффициент посредством умножения каждого 4-байтного сегмента части на случайный коэффициент (по модулю 232) для формирования масштабированных частей. Затем эти масштабированные части могут быть сложены вместе, приводя к квоте, которая является линейной комбинацией частей.
[0023] В одном варианте осуществления случайные коэффициенты, используемые для формирования конкретной квоты, прикрепляются к концу квоты. При использовании квот в качестве векторов в поле Галуа размером 232 это вызывает прикрепление 32-битного (четырехбайтного) значения к концу квоты применительно к каждому коэффициенту. Эти прикрепленные коэффициенты в дальнейшем могут быть обработаны аналогично оставшейся части квоты, упрощая реализацию обработки квот. Например, когда квота умножается на конкретное значение или складывается с другой квотой, случайный коэффициент может аналогичным образом умножаться на значение и складываться с соответствующим коэффициентом в другой квоте. В одном варианте осуществления файл разбивается на единицы оправданного размера и затем вновь разбивается на более мелкие части.
[0024] Затем квоты отправляются 310 узлам 106 хранения и сохраняются в узлах. В частности, x квот отправляется каждому из N узлов хранения, используя описанный выше метод k-из-n. Квоты распределяются по узлам таким образом, чтобы при отказе любых N-x узлов в оставшихся квотах на оставшихся доступных узлах оставалось достаточно информации для воссоздания файла данных. Квоты обеспечивают N узлов хранения некоторым объемом избыточности для того, чтобы противостоять некоторому количеству отказов узлов и предоставлять каждому из узлов информацию, относящуюся ко всем частям файла. Одной оптимизацией применительно к исходному распределению квот является то, что каждая из квот одного узла хранения будет формироваться из разных групп частей (x+1)/2 файла данных. Это дает узлу хранения информацию, относящуюся ко всем частям файла, уменьшая при этом объем вычислений, требуемый для формирования квот. В одном варианте осуществления исходные части файла данных разделяются на сегменты, и каждая квота (для исходного распределения) создается посредством объединения части из каждого из сегментов.
[0025] Блок 108 слежения может обновляться 312, чтобы обладать информацией о текущем статусе квот и узлов хранения. Блок 102 выгрузки может предоставлять блоку слежения информацию, идентифицирующую каждую формируемую квоту и идентифицирующую узел 106 хранения, в котором сохранена квота. Информация идентификации квоты может включать в себя информацию, относящуюся к следующей части файла данных, которой соответствует квота. Блок слежения также может обновляться в отношении статуса каждого узла хранения как являющегося доступным и в отношении содержащихся в нем конкретных квот, связанных с файлом данных. Блок слежения также может обновляться в отношении общего статуса файла данных как находящегося в «сохраненном» состоянии.
[0026] Исходное хранение данных на узлах хранения не может быть реализовано блоком 102 выгрузки в техническим смысле надежным и обладающим способностью к восстановлению после отказа, так как сам по себе блок выгрузки является отдельной точкой отказа. В одном варианте осуществления, когда блок выгрузки запрашивает сохранение файла данных, блок 108 слежения может рассматривать файл данных как находящийся в состоянии “выгрузки”, из которого он может перейти к состоянию “отказавший”, если выявляется, что отказал блок выгрузки. Если достаточное количество узлов хранения приняли требуемые квоты, то затем состояние файла данных обновляется в блоке слежения до состояния “сохранен”. Состояние “сохранен” также может иметь два информационных субсостояния “доступен” и “недоступен”, в зависимости от того, составляет ли количество узлов хранения, которые в настоящий момент имеют квоты, по меньшей мере, x. Исходно, после успешной выгрузки, субсостояние является “доступным”, но может меняться по мере отказа узла, как описывается ниже.
[0027] Фиг.4 является логической блок-схемой, иллюстрирующей способ формирования квот для заменяющего узла 106 хранения в одном варианте осуществления. Как упоминалось выше, узел хранения может в любой момент отказать по различным причинам. Такие причины могут включать в себя, например, отказ оборудования, отказ способности к подключению к сети и отказ по питанию. Узлы хранения также могут умышленно выводиться в автономный режим с или без уведомления заранее. Узел, который отказал или выведен в автономный режим, так же именуется как недоступный узел. Когда узел отказал, зачастую полезным является быстро настроить заменяющий узел, так чтобы в системе узлов хранения сохранялся тот же самый уровень надежности. Если отказало меньше чем N-x узлов, то оставшиеся узлы все еще содержат достаточно информации для восстановления файла данных и, для сохранения надежности системы, в онлайн режим могут быть выведены заменяющие узлы.
[0028] Принимается 402 указание на отказавший узел и заменяющий узел. Также возможно существование нескольких отказавших узлов и заменяющих узлов, но для ясности здесь описывается случай с одним узлом. Это указание может приниматься блоком 108 слежения. В одном варианте осуществления блок слежения периодически проверяет статус узлов (или принимает от узлов обновления статусов) для того, чтобы идентифицировать отказавшие узлы. Блок слежения может идентифицировать конкретный заменяющий узел из совокупности свободных узлов или может принять указание заменяющего узла от некоторого другого источника, такого как администратор системы. Указание на отказавший или заменяющий узел может содержать сетевой адрес или другой идентификатор узла.
[0029] Затем блок 108 слежения уведомляет любые x из оставшихся доступных узлов о заменяющем узле. В одном варианте осуществления эти узлы могут непосредственно принимать уведомление. В одном варианте осуществления блок слежения уведомляет заменяющий узел о доступных узлах, и заменяющий узел инициирует передачи от доступных узлов. Эти x доступных узлов, также именуемые как выгружающие узлы, каждый затем формирует 404 заменяющую квоту и отправляет 406 эту заменяющую квоту заменяющему узлу. Каждый выгружающий узел формирует заменяющую квоту посредством умножения каждой из его квот (включая коэффициенты квот) на случайное масштабирующее значение и затем сложения их вместе. Например, если квота является длиной в 400 байт, а случайное масштабирующее значение является 4-байтным числом, то квота делится на 100 4-байтных секций и каждая секция умножается на случайное масштабирующее значение (по модулю 232). Исходный файл данных, содержащийся в квотах, остается восстановимым, так как коэффициенты квот были изменены при помощи случайных масштабирующих значений таким же образом, как и данные квоты. В результате заменяющая квота, сформированная каждым узлом, представляет собой сочетание данных, содержащихся в настоящий момент в квотах данного узла.
[0030] Фиг.5 является принципиальной схемой, иллюстрирующей формирование заменяющих квот для заменяющего узла из оставшихся доступных узлов в одном варианте осуществления. В примере, показанном на фиг.5, исходное количество узлов, N, равно 5, а параметр надежности x равен 3, так что вплоть до 2 узлов могут отказать, не создавая ситуации потери данных без возможности восстановления. Каждый узел содержит x квот (в данном примере три квоты). Узел N2 отказал, приводя к тому, что доступными остаются четыре узла. N6 был определен как заменяющий (или новый) узел для пополнения количества узлов вновь до пяти. Доступные узлы N1, N4 и N5 были выбраны блоком слежения для формирования заменяющих квот для N6. Каждый из трех выбранных узлов объединяет свои квоты для формирования единой заменяющей квоты для N6. Эти заменяющие квоты отправляются непосредственно от доступных узлов к N6 и сохраняются в N6.
[0031] Блок 108 слежения обновляется 408, чтобы отражать новый доступный узел(ы) и новые квоты на новом узле(ах). Отдельные узлы хранения могут иметь состояние “доступных” или “недоступных”. Новые узлы могут быть обновлены до состояния “доступный”, как только они загрузили все квоты, а отказавший узел может быть обновлен до состояния “недоступный”. В одном варианте осуществления всегда по прошествии некоторого времени предполагается возможность возвращения узла, так что узел не помечается как постоянно “недоступный”. В то время как узел хранения пытается загрузить квоту с других узлов или с блока выгрузки, ему блоком слежения может быть назначено состояние “загружающий”.
[0032] В зависимости от того, имел ли место успех или отказ при попытке узлом хранения сформировать объединенную квоту, узлом хранения производится оценка и результат сообщается блоку 108 слежения. В одном варианте осуществления, во время исходной выгрузки файла данных, блок слежения может начать несколько передач квот узлам 106 хранения, затем добавить еще, в зависимости от того, успешна или нет передача, и произвести остановку, если достаточное количество узлов обладает полным набором квот, или прекратить попытки, если подряд происходит слишком много отказов. Подобным образом, если файл данных был сохранен и достаточное количество узлов хранения отказало, так что объем доступных квот ниже безопасного порогового значения, блок слежения может начать передачу к новому узлу хранения и затем вернуться к устойчивому состоянию, если данная передача успешна, или перейти после отказа к другому узлу, если произошел отказ при передаче, и временно пометить конкретную часть данных как недоступную, если подряд произошли отказы слишком многих передач. В примере на фиг.5 предположим, что в качестве безопасного порогового значения задано пять узлов. Если узел отказывает и количество узлов падает ниже пяти, то блок слежения может связаться с оставшимися узлами на предмет начала формирования заменяющих квот для нового узла. Если происходит отказ при передаче заменяющих квот новому узлу, то блок слежения может пометить данный узел как “отказавший”, идентифицировать второй новый узел и связаться с оставшимися узлами на предмет формирования заменяющих квот для второго нового узла. Если при передаче заменяющих квот второму узлу также происходит отказ, то файл данных квот может быть помечен как временно недоступный для загрузки.
[0033] Передачи могут выполняться посредством формирования выгружающим узлом хранения новой вновь объединенной квоты и простого сохранения ее загружающим узлом хранения. Чтобы сделать систему передачи более универсальной, файл может разбиваться на части исходно (в блоке выгрузки) до того, как будет разбит на квоты, так чтобы x узлы, которые обеспечивают квоты для одной части, не обязательно были теми же самыми, что и x узлы, обеспечивающие квоты для другой части. Передачи могут завершаться группой узлов, отличных от узлов, с которых они начинались, в случае если один из узлов в середине операции выходит из строя. Также передачи могут выполняться одновременно из любого доступного источника квот, что является преимуществом, так как узким местом скоростей передачи данных, как правило, является сторона восходящей линии связи, и таким образом загрузка с нескольких источников приведет к более быстрой передаче, как, впрочем, и более равномерно распределенному использованию пропускной способности. Это, в свою очередь, приводит к более быстрому восстановлению после отказа и, следовательно, к более высокой надежности. В одном варианте осуществления, когда узел хранения начинает передачу, ему дается полный набор доступных источников, которые считаются блоком слежения как находящиеся онлайн, возможно включая и исходный блок выгрузки, и затем он осуществляет передачу на любой скорости, на которую он способен, со всех доступных источников.
[0034] Описанный выше процесс замены отказавшего узла 106 может, при необходимости, повторяться любое количество раз. Следуя данному процессу, узлы хранения могут с течением времени отказывать и заменяться, а квоты для заменяющих узлов могут приходить от узлов, которые сами в прошлой генерации были заменяющими узлами. Любые x узлы с полным набором квот могут использоваться для восстановления исходного файла, независимо от того, как много произошло генераций отказов узлов. В большинстве конкретных случаев количество узлов, требуемых для восстановления, меньше x узлов. Например, при формировании заменяющих квот для первого заменяющего узла после исходного сохранения достаточно квот от любых (x+1)/2 узлов.
[0035] После достаточных генераций узлов, отказавших и замененных, количество узлов, необходимых для полного восстановления, будет монотонно стремиться к x, в особенности в ситуации, когда количество доступных узлов сокращается до x. Несмотря на то, что на практике надежность вероятнее будет выше, строгим минимальным значением обеспечения производительности системы является необходимость в не более чем x узлах. В одном варианте осуществления система хранения может начинать с меньшего количества узлов при исходном сохранении файла данных и со временем может увеличивать количество узлов, по мере того как ожидается, что надежность системы будет падать. Например, по прошествии некоторого времени или после того, как произошло определенное количество отказов и замен узлов, в систему может быть добавлен дополнительный узел. Для данного дополнительного узла квоты могут формироваться таким же образом, как сформированные квоты для заменяющих узлов. Тем не менее, существует возможность того, что надежность системы со временем возрастет, так как узлы, все еще содержащие квоты для файла данных, будут иметь более длительное время работоспособности и, следовательно, откажут с меньшей вероятностью, чем все же непроверенные узлы, которые используются для исходного сохранения. Данное соображение имеет тенденцию сбалансировать упомянутое выше ожидаемое падение надежности.
[0036] Если несколько заменяющих квот предоставляются от одного узла заменяющим узлам через последующие генерации отказа узла, то может произойти потеря данных. Тем не менее, существует возможность использования дополнительной информации для проверки целостности заменяющих квот, принимаемых от доступного узла, для выявления этой потери данных. В случае, когда заменяющая квота не проходит эту проверку, может быть запрошена новая заменяющая квота от узла или другого узла.
[0037] Целостность заменяющей квоты от конкретного доступного узла может проверяться либо посредством приема от конкретного доступного узла дополнительной информации, либо посредством приема информации от другого доступного узла. Данная проверка незначительно увеличивает использование пропускной способности по сети. Для проверки вновь принятой квоты заменяющий (или новый) узел отправляет начальное число генератору псевдослучайных чисел (PRNG) доступного узла. Доступный узел формирует новую повторно объединенную квоту и затем умножает все элементы в ней (за исключением коэффициентов) на соответствующее текущее значение на выходе PRNG и складывает все это вместе. Доступный узел отправляет данную сумму, наряду с коэффициентами, заменяющему узлу в качестве информации проверки, также именуемой как хэш-информация проверки. Затем заменяющий узел может вычислить то, какое значение суммы должно выдаваться всеми его квотами и коэффициентам. Заменяющий узел подтверждает целостность вновь принятой квоты, если вычисленное значение равно принятой сумме. Возможно, что доступные данные не содержат избыточности, и в результате значимость проверки целостности может быть ограничена. Однако, эта возможность очень отдаленна, особенно вскоре после исходного сохранения.
[0038] Эффективность описанного выше подхода по формированию заменяющих квот посредством повторного объединения квот с доступных узлов может быть продемонстрирована эмпирически. Одним способом определения того, какой объем данных возможно восстановить из набора квот после серий повторных объединений, является выполнение симуляции, представляющей каждую квоту случайным вектором. Затем над этими векторами могут быть выполнены серии операций, и может быть вычислен ранг матрицы, формируемой соответствующими векторами. Данный ранг указывает объемы восстановимых данных из векторов (или квот).
[0039] Теперь представляется анализ эффективности описанного выше подхода. Так как х одноранговых узлов требуется для восстановления, то наилучшей возможной производительности, основывающейся на теоретических информационных пределах, будут соответствовать k, или x*(x+1)/2, квот для этих одноранговых узлов. При этой схеме каждый из этих х одноранговых узлов имеет x квот, общим числом их x*x квот. Таким образом, соотношение между двумя параметрами составляет (x*(x+1)/2)/(x*x), что асимптотически приближается к 1/2 по мере роста x, так что x может быть взято произвольно большим при очень небольших дополнительных расходах пропускной способности. Так как большее x соответствует большей надежности, то x желательно выбирать из больших значений (например, чуть меньше общего количества узлов N). На практике ограничивающим фактором для x вероятнее являются расходы на вычисления, несмотря на то, что существуют некоторые другие эффекты второго порядка, которые могут стать заметными. Примерами являются влияния на затраты проводного протокола, затраты на централизованное индексирование данных, становящиеся значительными размеры коэффициентов или приближение x к общему количеству N узлов в системе в целом, что является тяжелым ограничением.
[0040] Посредством формирования заменяющих квот при помощи существующих узлов, как описано выше, могут сохраняться высокие уровни надежности, удерживая при этом низкое использование пропускной способности. Существует возможность просто ожидать до тех пор, пока не останется всего лишь k узлов хранения, и затем выполнить восстановление (и новое формирование квот для восстановления данных в узлах хранения). Данный подход имеет низкие характеристики надежности, так как дополнительный отказ узла хранения может привести к потере данных. Для данного подхода также требуется формирование исходного файла и новых квот (например, на блоке выгрузки). Другим подходом является выполнение полного восстановления и формирования квот (например, на блоке выгрузки) всякий раз, когда теряется узел хранения. Данный подход обладает лучшими характеристиками надежности, но может потребовать больших объемов пропускной способности.
[0041] Возвращаясь к фиг.2, квоты получают 208 от узлов хранения блоком 110 загрузки. Блок загрузки, заинтересованный в файле данных, может получить информацию от блока 108 слежения в отношении того, какие узлы хранения в настоящий момент имеют квоты файла. Затем блок загрузки может непосредственно получить квоты от указанных узлов 106 хранения. Блок загрузки может получить квоты от x или более доступных узлов. Блок загрузки затем воссоздает 210 исходный файл данных из полученных квот. Воссоздание выполняется используя коэффициенты, включенные вместе с каждой квотой наряду с информацией последовательности квот от блока слежения.
[0042] Загрузки в целом не могут быть сделаны надежными в смысле восстановления после отказа, так как сам блок загрузки является отдельной точкой отказа. Информация о загрузке может просматриваться в качестве рекомендательной, и блок слежения может только предоставить предполагаемому блоку загрузки информацию обо всех доступных узлах, обладающих полным набором квот, включая, возможно, и исходный блок выгрузки, а блоки загрузки определяют для себя, будет ли им сопутствовать успех или произойдет отказ (хотя отказ по любой причине, кроме перехода блока загрузки в автономный режим, должен быть редким).
[0043] В противоположность, когда новый узел делается доступным, то приемлемым для узла, выполняющего полное восстановление, является загрузка нескольких квот с одного узла. Предположим, что загружающий узел (например, блок 110 загрузки) уже принял квоту от выгружающего узла 106 хранения. Для того чтобы определить, будет ли полезна дополнительная повторно объединенная квота от выгружающего узла, выгружающий узел может отправить загружающему узлу коэффициенты дополнительной квоты. Загружающий узел может вычислить, является ли данная квота линейно независимой от той, что он уже имеет, используя коэффициенты, и если это так, то загружающий узел может запросить квоту у выгружающего узла. В одном варианте осуществления загружающему узлу не требуется запрашивать ту же квоту, но он может запросить вместо этой другую квоту, потому что, как правило, одна дополнительная квота будет полезна, если и только если полезны все, кроме миниатюрной части других квот. Загружающий узел также может запросить хэш-информацию проверки, используя точно такой же метод, как и тот, что используется новыми узлами для проверки целостности данных, как описано выше. В целом, хэш-информация проверки от узла полезна, если и только если полезны дополнительные квоты от данного узла могут быть.
[0044] В одном варианте осуществления описанные выше методы распределенного хранения применяются на ненадежных, широко распределенных устройствах хранения (возможно прикрепленных к компьютерам). В настоящее время существует много устройств хранения с очень большим объемом неиспользуемой емкости на неизмеренных подключениях к Интернет, которые могут использоваться для распределенного хранения. Эти устройства хранения (т.е. узлы 106 хранения) могут принадлежать и управляться различными предприятиями и индивидами. Устройства хранения могут иметь высокую частоту отказов, но отказы в значительной степени некоррелированные. Так как маловероятно, что одновременно откажет много узлов, то описанный выше подход вероятнее всего будет работать хорошо. В одном варианте осуществления, блок 108 слежения может позволить поставщикам устройств хранения делать свои хранилища доступными для пользователей, нуждающихся в хранении данных. Блок слежения может включать в себя web-сервер для поставщиков устройств хранения для регистрации их устройств хранения на блоке слежения так, что устройства могут начать использоваться в качестве исходных узлов хранения или заменяющих узлов для файлов данных пользователей хранилища. Блок слежения также может отслеживать использование устройств хранения и способствовать организации оплаты от пользователей хранилища поставщикам устройств хранения.
[0045] Ссылка в описании на «один вариант осуществления» или на «вариант осуществления» означает, что конкретный признак, структура или характеристика, описанные в связи с вариантами осуществления, включаются в, по меньшей мере, один вариант осуществления изобретения. Появления фраз “в одном варианте осуществления” или “предпочтительный вариант осуществления” в различных местах описания не обязательно все относятся к одному и тому же варианту осуществления.
[0046] Некоторые части вышеприведенного изложения представлены в виде способов и символических представлений операций над битами данных внутри компьютерной памяти. Эти описания и представления являются средствами, используемыми специалистами для наиболее эффективной передачи сущности их работы другим специалистам. Здесь и в целом, под способом понимается самосогласованная последовательность этапов (инструкций), приводящая к требуемому результату. Этапы - это то, что требует физических манипуляций над физическими величинами. Как правило, хотя не обязательно, эти величины принимают форму электрических, магнитных или оптических сигналов, приспособленных для сохранения, передачи, объединения, сравнения и иного манипулирования. Время от времени удобно, преимущественно по причинам общего использования, именовать эти сигналы как биты, значения, элементы, символы, знаки, понятия, числа или подобное. Кроме того, так же время от времени удобно именовать конкретные совокупности этапов, требующих физических манипуляций над физическими величинами, как модули или кодовые устройства, без потери общности.
[0047] Тем не менее, должно быть принято во внимание, что все эти и аналогичные определения должны быть связаны с соответствующими физическими величинами и являются просто удобными обозначениями, применяемыми к этим величинам. До тех пор, пока конкретно не указано обратное в качестве очевидного из нижеследующего рассмотрения, понимается, что на всем протяжении описания, рассмотрения, использующие понятия, такие как “обработка”, или “вычисление”, или “расчет”, или “определение”, или “отображение”, или “определение”, или подобные, относятся к действиям и процессам компьютерной системы или аналогичного электронного вычислительного устройства, которое манипулирует и преобразует данные, представленные в качестве физических (электронных) величин внутри устройств хранения компьютерной системы или регистрах или другом таком информационном хранилище, устройствах передачи и отображения.
[0048] Некоторые аспекты настоящего изобретения включают в себя этапы процесса и инструкции, описанные здесь в виде способа. Должно быть отмечено, что этапы процесса и инструкции по настоящему изобретению могут быть воплощены в программном обеспечении, встроенном программном обеспечении (firmware) или аппаратном обеспечении, и при воплощении в программном обеспечении могут быть загружены для размещения и функционирования на различных платформах, используемых многообразием операционных систем.
[0049] Настоящее изобретение также относится к устройству для выполнения представленных здесь операций. Данное устройство может быть специально разработанным для требуемых целей или оно может быть выполнено в виде компьютера общего назначения, выборочно активируемого или переконфигурируемого компьютерной программой, хранящейся на компьютере. Такая компьютерная программа может храниться на машиночитаемом носителе данных, таком как, но не в ограничительном смысле, диске любого типа, включая гибкие диски, оптические диски, CD-ROM, магнитооптические диски, постоянных запоминающих устройствах (ROM), запоминающих устройствах с произвольной выборкой (RAM), EPROM, EEPROM, магнитных и оптических картах, специализированных интегральных микросхемах (ASIC), или носителе любого типа, приемлемом для хранения электронных инструкций, и каждый соединен с шиной компьютерной системы. Кроме того, упоминаемые в описании компьютеры могут включать в себя один процессор или могут быть архитектурами, использующими исполнения с несколькими процессорами для увеличения вычислительных возможностей.
[0050] Представленные здесь способы и демонстрации, по сути, не относятся к какому-либо конкретному компьютеру или другому устройству. Также могут использоваться различные системы общего назначения с программами в соответствии с изложенными здесь идеями, или может оказаться удобным создать более специализированное устройство для выполнения требуемых этапов способа. Требуемая структура для разнообразия таких систем станет очевидна из описания ниже. В дополнение, настоящее изобретение не описывается с привязкой к какому-либо конкретному языку программирования. Должно быть принято во внимание, что для реализации идей настоящего изобретения в соответствии с тем, что здесь изложено, может использоваться многообразие языков программирования, и любое упоминание конкретных языков предоставлено для раскрытия реализуемости и наилучшего варианта осуществления настоящего изобретения.
[0051] Несмотря на то, что изобретение было конкретно показано и описано со ссылкой на предпочтительный вариант осуществления и несколько альтернативных вариантов осуществления, специалисту должно быть понятно, что, не отступая от сущности и объема изобретения, могут быть выполнены различные изменения по форме и в деталях.
[0052] В заключении должно быть отмечено, что язык, используемый в описании, был преимущественно выбран для удобочитаемости и в целях обучения, и он не мог быть выбран с целью очертить или ограничить объем изобретения. Соответственно, раскрытие данного изобретения предназначено проиллюстрировать, а не ограничить объем изобретения.

Claims (23)

1. Способ замены отказавшего узла, хранящего распределенные данные, содержащий этапы, на которых:
посредством первого узла хранения принимают первый набор квот, сгенерированный из файла данных, при этом каждая квота в первом наборе включает в себя линейную комбинацию частей файла данных наряду с набором коэффициентов, использованных для генерирования этой линейной комбинации;
посредством первого узла хранения принимают указание нового узла хранения, заменяющего отказавший узел, при этом отказавший узел включает в себя второй набор квот, сгенерированный из файла данных;
посредством первого узла хранения генерируют первую заменяющую квоту в качестве реакции на упомянутое указание, при этом первую заменяющую квоту генерируют путем:
умножения каждой квоты в первом наборе и набора коэффициентов на случайное масштабирующее значение и
объединения умноженного первого набора квот и умноженного набора коэффициентов; и
посредством первого узла хранения передают сгенерированную первую заменяющую квоту в новый узел хранения,
при этом первая заменяющая квота и по меньшей мере одна другая заменяющая квота формируют второй набор квот в новом узле хранения, причем эта другая заменяющая квота генерируется вторым узлом хранения.
2. Способ по п.1, в котором общее количество заменяющих квот, сгенерированных для формирования второго набора квот в новом узле хранения, равно параметру надежности, при этом параметр надежности основывается на суммарном количестве узлов хранения, требуемом для того, чтобы файл данных оставался восстановимым.
3. Способ по п.1, дополнительно содержащий этап, на котором проверяют целостность сгенерированных заменяющих квот.
4. Способ по п.1, в котором квоты из первого набора квот генерируются с использованием кодирования со стиранием на основе частей файла данных.
5. Способ по п.1, в котором первая заменяющая квота и по меньшей мере одна другая заменяющая квота используются для воссоздания файла данных.
6. Способ по п.1, в котором первая заменяющая квота и по меньшей мере одна другая заменяющая квота используются для генерирования последующих заменяющих квот для последующего нового узла.
7. Способ по п.1, в котором упомянутое указание принимается от блока слежения, который отслеживает статус узлов хранения и отслеживает местоположения квот.
8. Способ по п.1, дополнительно содержащий этап, на котором отправляют хэш-информацию проверки в новый узел хранения для проверки первой заменяющей квоты.
9. Способ по п.1, в котором целостность первого заменяющего узла проверяют посредством использования новым узлом хранения хэш-информации проверки, предоставляемой дополнительным узлом хранения.
10. Компьютерная система для замены отказавшего узла, хранящего распределенные данные, содержащая:
компьютерный процессор и
невременный машиночитаемый носитель информации, на котором сохранены исполняемые инструкции компьютерной программы, исполняемые компьютерным процессором, причем инструкции компьютерной программы приспособлены для того, чтобы:
принимать первый набор квот, сгенерированный из файла данных, при этом каждая квота в первом наборе включает в себя линейную комбинацию частей файла данных наряду с набором коэффициентов, использованных для генерирования этой линейной комбинации;
принимать указание нового узла хранения, заменяющего отказавший узел, при этом отказавший узел включает в себя второй набор квот, сгенерированный из файла данных;
генерировать первую заменяющую квоту в ответ на это указание, при этом первая заменяющая квота генерируется путем:
умножения каждой квоты в первом наборе и набора коэффициентов на случайное масштабирующее значение и
объединения умноженного первого набора квот и умноженного набора коэффициентов; и
передавать сгенерированную первую заменяющую квоту в новый узел хранения,
при этом первая заменяющая квота и по меньшей мере одна другая заменяющая квота формируют второй набор квот в новом узле хранения, причем эта другая заменяющая квота генерируется вторым узлом хранения.
11. Система по п.10, в которой общее количество заменяющих квот, генерируемых для формирования второго набора квот в новом узле хранения, равно параметру надежности, при этом параметр надежности основывается на суммарном количестве узлов хранения, требуемом для того, чтобы файл данных оставался восстановимым.
12. Система по п.10, в которой инструкции компьютерной программы дополнительно приспособлены для того, чтобы отправлять хэш-информацию проверки в новый узел хранения для проверки первой заменяющей квоты.
13. Система по п.10, в которой первый набор квот генерируется с использованием кодирования со стиранием на основе частей файла данных.
14. Система по п.10, в которой первая заменяющая квота и по меньшей мере одна другая заменяющая квота используются для воссоздания файла данных.
15. Система по п.10, в которой первая заменяющая квота и по меньшей мере одна другая заменяющая квота используются для генерирования последующих заменяющих квот для последующего нового узла.
16. Система по п.10, в которой упомянутое указание принимается от блока слежения, который отслеживает статус узлов хранения и отслеживает местоположения квот.
17. Машиночитаемый носитель данных, на котором записаны исполняемые инструкции компьютерной программы для замены отказавшего узла, хранящего распределенные данные, причем инструкции компьютерной программы приспособлены для:
приема посредством первого узла хранения первого набора квот, сгенерированного из файла данных, при этом каждая квота в первом наборе включает в себя линейную комбинацию частей файла данных наряду с набором коэффициентов, использованных для генерирования этой линейной комбинации;
приема посредством первого узла хранения указания нового узла хранения, заменяющего отказавший узел, при этом отказавший узел включает в себя второй набор квот, сгенерированный из файла данных;
генерирования посредством первого узла хранения первой заменяющей квоты в качестве реакции на упомянутое указание, при этом первая заменяющая квота генерируется путем:
умножения каждой квоты в первом наборе и набора коэффициентов на случайное масштабирующее значение и
объединения умноженного первого набора квот и умноженного набора коэффициентов; и
передачи посредством первого узла хранения сгенерированной первой заменяющей квоты в новый узел хранения,
при этом первая заменяющая квота и по меньшей мере одна другая заменяющая квота формируют второй набор квот в новом узле хранения, причем эта другая заменяющая квота генерируется вторым узлом хранения.
18. Машиночитаемый носитель данных по п.17, при этом инструкции компьютерной программы дополнительно приспособлены для отправки хэш-информации проверки в новый узел хранения для проверки заменяющей квоты.
19. Машиночитаемый носитель данных по п.17, при этом сформированная заменяющая квота используется для воссоздания файла данных.
20. Машиночитаемый носитель данных по п.17, при этом общее количество заменяющих квот, сгенерированных для формирования второго набора квот в новом узле хранения, равно параметру надежности, причем параметр надежности основывается на суммарном количестве узлов хранения, требуемом для того, чтобы файл данных оставался восстановимым.
21. Машиночитаемый носитель данных по п.17, при этом квоты из первого набора квот генерируются с использованием кодирования со стиранием на основе частей файла данных.
22. Машиночитаемый носитель данных по п.17, при этом первая заменяющая квота и по меньшей мере одна другая заменяющая квота используются для генерирования последующих заменяющих квот для последующего нового узла.
23. Машиночитаемый носитель данных по п.17, при этом упомянутое указание принимается от блока слежения, который отслеживает статус узлов хранения и отслеживает местоположения квот.
RU2011136622/08A 2009-02-03 2010-02-03 Распределенное хранение восстанавливаемых данных RU2501072C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14967609P 2009-02-03 2009-02-03
US61/149,676 2009-02-03
PCT/US2010/023075 WO2010091101A1 (en) 2009-02-03 2010-02-03 Distributed storage of recoverable data

Publications (2)

Publication Number Publication Date
RU2011136622A RU2011136622A (ru) 2013-03-10
RU2501072C2 true RU2501072C2 (ru) 2013-12-10

Family

ID=42398690

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2011136622/08A RU2501072C2 (ru) 2009-02-03 2010-02-03 Распределенное хранение восстанавливаемых данных

Country Status (8)

Country Link
US (1) US8522073B2 (ru)
EP (1) EP2394220B1 (ru)
KR (1) KR20110122169A (ru)
BR (1) BRPI1008072A2 (ru)
CA (1) CA2751358C (ru)
ES (1) ES2528245T3 (ru)
RU (1) RU2501072C2 (ru)
WO (1) WO2010091101A1 (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2675785C2 (ru) * 2017-06-08 2018-12-25 Общество с ограниченной ответственностью "КВАНТУМ А РУС" Способ уведомления абонента в сетях сотовой связи и устройство для его осуществления
RU2680350C2 (ru) * 2017-05-02 2019-02-19 федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации Способ и система распределенного хранения восстанавливаемых данных с обеспечением целостности и конфиденциальности информации

Families Citing this family (186)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9729829B2 (en) 2006-12-05 2017-08-08 Crackle, Inc. Video sharing platform providing for posting content to other websites
US8386841B1 (en) * 2010-07-21 2013-02-26 Symantec Corporation Systems and methods for improving redundant storage fault tolerance
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
EP2469413B1 (en) 2010-12-27 2013-06-05 Amplidata NV A hierarchical, distributed object storage system
WO2012089701A1 (en) 2010-12-27 2012-07-05 Amplidata Nv A distributed object storage system comprising performance optimizations
US8386840B2 (en) 2010-12-27 2013-02-26 Amplidata Nv Distributed object storage system
US8538029B2 (en) * 2011-03-24 2013-09-17 Hewlett-Packard Development Company, L.P. Encryption key fragment distribution
EP2702502A4 (en) 2011-04-29 2015-06-03 Tata Consultancy Services Ltd ARCHIVING AND RECOVERY SYSTEM
US9106943B2 (en) 2011-05-04 2015-08-11 Cisco Technology, Inc. Sharing of subscriber-recorded digital video recorder content
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US20130185257A1 (en) * 2012-01-12 2013-07-18 Krishna P. Puttaswamy Naga Cloud data resiliency system and method
EP2660723A1 (en) * 2012-05-03 2013-11-06 Thomson Licensing Method of data storing and maintenance in a distributed data storage system and corresponding device
EP2672387B1 (en) * 2012-06-04 2018-08-01 Amplidata NV A distributed object storage system
US9086992B1 (en) 2012-06-08 2015-07-21 Digital Ordnance Storage, Inc. System and method for interconnecting storage elements
US8935221B1 (en) 2012-07-25 2015-01-13 Amazon Technologies, Inc. Object loss reporting in a data storage system
CN103688514B (zh) * 2013-02-26 2017-07-11 北京大学深圳研究生院 一种最小存储再生码的编码和存储节点修复方法
CN103152434A (zh) * 2013-03-27 2013-06-12 江苏辰云信息科技有限公司 一种分布式云系统中的领导节点更替方法
EP2863566B1 (en) 2013-10-18 2020-09-02 Université de Nantes Method and apparatus for reconstructing a data block
US8874835B1 (en) 2014-01-16 2014-10-28 Pure Storage, Inc. Data placement based on data properties in a tiered storage device system
US10291696B2 (en) * 2014-04-28 2019-05-14 Arizona Board Of Regents On Behalf Of Arizona State University Peer-to-peer architecture for processing big data
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9612952B2 (en) 2014-06-04 2017-04-04 Pure Storage, Inc. Automatically reconfiguring a storage memory topology
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9087012B1 (en) 2014-06-04 2015-07-21 Pure Storage, Inc. Disaster recovery at high reliability in a storage cluster
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
AU2015269364B2 (en) * 2014-06-04 2019-04-18 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9213485B1 (en) * 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US8868825B1 (en) * 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9817750B2 (en) 2014-07-03 2017-11-14 Pure Storage, Inc. Profile-dependent write placement of data into a non-volatile solid-state storage
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9727432B1 (en) 2014-10-09 2017-08-08 Seagate Technology Llc Accelerated testing using simulated failures in a multi-device storage system
WO2016080569A1 (ko) * 2014-11-19 2016-05-26 서울대학교산학협력단 일정 수 이상의 파일 조각으로 원본 파일을 복원하는 파일 관리 장치 및 그것의 파일 관리 방법
US10042848B1 (en) 2014-12-19 2018-08-07 Amazon Technologies, Inc. Sparse index-based storage, retrieval, and management of stored data
US9959274B2 (en) * 2014-12-19 2018-05-01 Amazon Technologies, Inc. Volume-level redundancy coding techniques for sequential transfer optimized storage devices
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11231858B2 (en) 2016-05-19 2022-01-25 Pure Storage, Inc. Dynamically configuring a storage system to facilitate independent scaling of resources
US10691567B2 (en) 2016-06-03 2020-06-23 Pure Storage, Inc. Dynamically forming a failure domain in a storage system that includes a plurality of blades
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US11706895B2 (en) 2016-07-19 2023-07-18 Pure Storage, Inc. Independent scaling of compute resources and storage resources in a storage system
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US12039165B2 (en) 2016-10-04 2024-07-16 Pure Storage, Inc. Utilizing allocation shares to improve parallelism in a zoned drive storage system
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10545861B2 (en) 2016-10-04 2020-01-28 Pure Storage, Inc. Distributed integrated high-speed solid-state non-volatile random-access memory
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10491378B2 (en) 2016-11-16 2019-11-26 StreamSpace, LLC Decentralized nodal network for providing security of files in distributed filesystems
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10255134B2 (en) 2017-01-20 2019-04-09 Samsung Electronics Co., Ltd. Control plane method and apparatus for providing erasure code protection across multiple storage devices
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US12067274B2 (en) 2018-09-06 2024-08-20 Pure Storage, Inc. Writing segments and erase blocks based on ordering
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US12032848B2 (en) 2021-06-21 2024-07-09 Pure Storage, Inc. Intelligent block allocation in a heterogeneous storage system
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10637508B2 (en) 2017-11-03 2020-04-28 Board Of Trustees Of Michigan State University Optimal construction of regenerating code through rate-matching
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US12079494B2 (en) 2018-04-27 2024-09-03 Pure Storage, Inc. Optimizing storage system upgrades to preserve resources
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US10942807B2 (en) 2018-06-12 2021-03-09 Weka.IO Ltd. Storage system spanning multiple failure domains
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US10936406B2 (en) * 2018-10-09 2021-03-02 EMC IP Holding Company LLC Multi cloud transactional storage for availability and security
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US12087382B2 (en) 2019-04-11 2024-09-10 Pure Storage, Inc. Adaptive threshold for bad flash memory blocks
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US12056365B2 (en) 2020-04-24 2024-08-06 Pure Storage, Inc. Resiliency for a storage system
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11216441B1 (en) 2020-11-25 2022-01-04 Coupang Corp. Systems and methods for managing a highly available and scalable distributed database in a cloud computing environment
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US12093545B2 (en) 2020-12-31 2024-09-17 Pure Storage, Inc. Storage system with selectable write modes
US12067282B2 (en) 2020-12-31 2024-08-20 Pure Storage, Inc. Write path selection
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US12061814B2 (en) 2021-01-25 2024-08-13 Pure Storage, Inc. Using data similarity to select segments for garbage collection
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US12099742B2 (en) 2021-03-15 2024-09-24 Pure Storage, Inc. Utilizing programming page size granularity to optimize data segment storage in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1599013A2 (en) * 2004-05-14 2005-11-23 Microsoft Corporation Distributed hosting of web content using partial replication
RU2006125251A (ru) * 2006-07-13 2008-01-27 Институт систем обработки изображений Российской академии наук (ИСОИ РАН) (RU) Устройство распределенного хранения изображений с регулируемой избыточностью

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970939B2 (en) * 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
US7146524B2 (en) * 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
US7159150B2 (en) * 2002-12-31 2007-01-02 International Business Machines Corporation Distributed storage system capable of restoring data in case of a storage failure
US7266716B2 (en) * 2003-10-23 2007-09-04 Hewlett-Packard Development Company, L.P. Method and recovery of data using erasure coded data from stripe blocks
JP2007511820A (ja) * 2003-10-27 2007-05-10 アーカイヴァス インコーポレイテッド 独立ノード冗長アレイに対するポリシーに基づく管理
US7302603B2 (en) * 2003-11-20 2007-11-27 International Business Machines Corporation Host-initiated data reconstruction for improved RAID read operations
US7201533B2 (en) * 2004-02-18 2007-04-10 Grate Sewer Lock Co., Llc Sewer grate locking mechanism and method of installing same
US7240236B2 (en) 2004-03-23 2007-07-03 Archivas, Inc. Fixed content distributed data storage using permutation ring encoding
US7734643B1 (en) * 2004-06-30 2010-06-08 Oracle America, Inc. Method for distributed storage of data
US7529198B2 (en) * 2005-04-07 2009-05-05 Microsoft Corporation Scalable overlay network
US7546427B2 (en) 2005-09-30 2009-06-09 Cleversafe, Inc. System for rebuilding dispersed data
JP4566874B2 (ja) * 2005-10-04 2010-10-20 株式会社日立製作所 Ipネットワークにおけるストレージアクセス管理機能及びシステム
US7778960B1 (en) * 2005-10-20 2010-08-17 American Megatrends, Inc. Background movement of data between nodes in a storage cluster
US7596673B2 (en) * 2005-12-08 2009-09-29 Sony Corporation Failure tolerant data storage
US20070177739A1 (en) * 2006-01-27 2007-08-02 Nec Laboratories America, Inc. Method and Apparatus for Distributed Data Replication
US7613946B2 (en) * 2006-09-14 2009-11-03 International Business Machines Corporation Apparatus, system, and method for recovering a multivolume data set
US7992037B2 (en) * 2008-09-11 2011-08-02 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
US8627184B2 (en) * 2009-03-31 2014-01-07 Qualcomm Incorporated Systems and methods for protecting a multi-part broadcast control message

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1599013A2 (en) * 2004-05-14 2005-11-23 Microsoft Corporation Distributed hosting of web content using partial replication
RU2006125251A (ru) * 2006-07-13 2008-01-27 Институт систем обработки изображений Российской академии наук (ИСОИ РАН) (RU) Устройство распределенного хранения изображений с регулируемой избыточностью

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2680350C2 (ru) * 2017-05-02 2019-02-19 федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации Способ и система распределенного хранения восстанавливаемых данных с обеспечением целостности и конфиденциальности информации
RU2675785C2 (ru) * 2017-06-08 2018-12-25 Общество с ограниченной ответственностью "КВАНТУМ А РУС" Способ уведомления абонента в сетях сотовой связи и устройство для его осуществления

Also Published As

Publication number Publication date
EP2394220A1 (en) 2011-12-14
ES2528245T3 (es) 2015-02-05
CA2751358C (en) 2016-06-07
RU2011136622A (ru) 2013-03-10
EP2394220A4 (en) 2013-02-20
CA2751358A1 (en) 2010-08-12
BRPI1008072A2 (pt) 2016-03-15
US20100199123A1 (en) 2010-08-05
EP2394220B1 (en) 2014-10-22
US8522073B2 (en) 2013-08-27
WO2010091101A1 (en) 2010-08-12
KR20110122169A (ko) 2011-11-09

Similar Documents

Publication Publication Date Title
RU2501072C2 (ru) Распределенное хранение восстанавливаемых данных
CN110750382B (zh) 用于提高数据修复性能的最小存储再生码编码方法及系统
US20180217898A1 (en) System and method for supporting integrity of data storage with erasure coding
US10042566B2 (en) Intelligent read strategy within a dispersed storage network (DSN)
US10652350B2 (en) Caching for unique combination reads in a dispersed storage network
US8954793B2 (en) Method and a storage server for data redundancy
US10469406B2 (en) Partial task execution in a dispersed storage network
US9552254B1 (en) Verification of erasure encoded fragments
US10958731B2 (en) Indicating multiple encoding schemes in a dispersed storage network
US10956091B2 (en) Expanding a dispersed storage network (DSN)
US10318382B2 (en) Determining missing encoded data slices
US20170004043A1 (en) Method and system for processing data access requests during data transfers
US10506045B2 (en) Memory access using deterministic function and secure seed
US10057351B2 (en) Modifying information dispersal algorithm configurations in a dispersed storage network
US10594793B2 (en) Read-prepare requests to multiple memories
CN117667834B (zh) 存算解耦系统、数据处理方法及存储介质
US10585715B2 (en) Partial task allocation in a dispersed storage network
US20240045777A1 (en) Processing of Data Access Requests in a Storage Network
KR101270307B1 (ko) 인터넷 패리티에 기반하여 데이터를 복구하는 방법, 장치 및 시스템
US20240283466A1 (en) System and method for distribution storage of blockchain transaction data based on erasure code
KR20240056400A (ko) 에러 정정 코드 기반 블록체인 데이터 저장 방법 및 장치

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20160204