RU2581551C2 - Способ оптимизации хранения и передачи данных - Google Patents

Способ оптимизации хранения и передачи данных Download PDF

Info

Publication number
RU2581551C2
RU2581551C2 RU2012154625/08A RU2012154625A RU2581551C2 RU 2581551 C2 RU2581551 C2 RU 2581551C2 RU 2012154625/08 A RU2012154625/08 A RU 2012154625/08A RU 2012154625 A RU2012154625 A RU 2012154625A RU 2581551 C2 RU2581551 C2 RU 2581551C2
Authority
RU
Russia
Prior art keywords
data
file
file data
storage server
storage
Prior art date
Application number
RU2012154625/08A
Other languages
English (en)
Other versions
RU2012154625A (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 RU2012154625A publication Critical patent/RU2012154625A/ru
Application granted granted Critical
Publication of RU2581551C2 publication Critical patent/RU2581551C2/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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/17Details of further file system functions
    • G06F16/173Customisation support for file systems, e.g. localisation, multi-language support, personalisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Изобретение относится к машиночитаемому носителю данных и способам предоставления для клиента деталей оптимизации хранения данных в сервере хранения данных. Технический результат заключается в оптимизации хранения и передачи данных. В способе осуществляют посредством клиента доступ к метаданным, описывающим хранение данных файла на сервере хранения данных, посредством отправки на сервер хранения данных запроса на метаданные, причем данные файла хранятся на сервере хранения данных в форме, отличающейся от исходной формы данных файла, принимают на клиенте с сервера хранения данных информацию, содержащую метаданные, описывающие информацию о сжатии для данных файла, которая может использоваться для распаковки данных файла, отправляют посредством клиента последующий запрос на упомянутую отличающуюся форму данных файла, основанный на полученных метаданных, принимают на клиенте данные файла, причем данные файла принимаются в упомянутой отличающейся форме данных файла, в том виде как они сохранены на сервере хранения данных, и преобразуют посредством клиента упомянутую отличающуюся форму данных файла в упомянутую исходную форму данных файла на основе метаданных. 3 н. и 17 з.п. ф-лы, 4 ил.

Description

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Функциональные возможности оптимизации хранения данных становятся все более и более важными для повышения конкурентоспособности на рынке файловых серверов и средств хранения данных. Оптимизация сетевого трафика также важна в вычислительной и сетевой средах, а также в устройствах, которые интегрированы в существующую сетевую инфраструктуру, и выполнение оптимизации сетевого трафика в реальном времени может обеспечить полезные эффекты.
Продолжается быстрый рост объема генерируемых, передаваемых и сохраняемых на компьютерах данных. Потребители и конкуренты стимулируют увеличивающуюся тенденцию использования методик оптимизации данных для уменьшения требований к хранению данных в местах их хранения. Например, данные могут быть сжаты, и для уменьшения места, необходимого для хранения данных, может быть уменьшена избыточность в сохраняемых данных. Подобные методики также применяются для уменьшения объема данных, которые пересылаются через сети, таким образом уменьшая затраты на ширину полосы LAN и WAN и понижая время ожидания приложения. Однако, как правило, существующие решения для хранения данных и передачи данных, главным образом, являются раздельными и различными, и не известно никакого единого решения. Поскольку методики хранения и передачи являются раздельными, то имеет место избыточность, несовместимость и непроизводительные потери, если хранение данных и передача данных рассматриваются в совокупности.
В качестве примера, файл, который хранится на сервере (то есть в устройстве для хранения данных), может быть одновременно сжат и сохранен в отдельных сегментах (например, фрагментах) при сохранении на сервере хранения данных. Если клиент выполняет запрос на передачу файла с сервера на клиент, то сервер должен собрать заново фрагменты и распаковать файл для восстановления файла перед передачей файла на клиент.
Подобным образом, для уменьшения ширины полосы пропускания (например, по сети), времени ожидания или затрат на передачу, сетевой агент может затем взять файл и снова сжать его перед передачей, передать сжатый файл в другое оконечное устройство, а затем распаковать его на другом конце канала передачи.
В данном случае может быть целесообразным наличие унифицированных инструментов для оптимизации данных и технических приемов, охватывающих хранение данных, протоколы передачи, API (интерфейсы прикладного программирования) файловых систем, устройства для хранения данных, серверы, клиенты, приложения и среду облачных вычислений. Такие инструменты и технические приемы могут расширить и улучшить существующие частичные и раздельные решения в сфере хранения данных и передачи данных посредством обеспечения оптимизированного хранения данных в местах их хранения, максимальное использование которого может быть достигнуто посредством протоколов пересылки и передачи данных.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Настоящее изобретение распространяется на способы, системы, устройства и компьютерные программные продукты для комплексной оптимизации хранения и передачи данных. Например, варианты осуществления, описанные в настоящей заявке, предусматривают улучшение и увеличение эффективности, и оптимизацию как хранения данных, так и передачи данных.
Один иллюстративный вариант осуществления предусматривает способ предоставления на клиент деталей оптимизации хранения данных в сервере хранения данных. Способ включает в себя доступ к метаданным, описывающим хранение данных файла на сервере хранения данных, причем данные файла хранятся на сервере хранения данных в форме, отличной от исходной формы данных файла. Метаданные предоставляют форму хранения данных файла в том виде, как они сохранены на сервере хранения данных.
Клиент может отправить запрос на данные файла на сервер хранения данных, а клиент может принять информацию из сервера хранения данных, включающую в себя данные файла, дополнительные метаданные, описывающие хранение данных файла на сервере хранения данных, и/или данные, представляющие, по меньшей мере, часть данных файла.
Другой иллюстративный вариант осуществления предусматривает предоставление на клиент деталей оптимизации хранения данных в сервере хранения данных. Этот способ включает в себя отправку метаданных, описывающих хранение данных файла на сервере хранения данных. Данные файла сохраняются на сервере хранения данных в форме, отличной от исходной формы данных файла, а метаданные предоставляют форму хранения данных файла в том виде, как они сохранены на сервере хранения данных.
Сервер хранения данных принимает запрос на данные файла из вычислительной системы, и сервер хранения данных отправляет информацию, содержащую данные файла, дополнительные метаданные, описывающие хранение данных файла на сервере хранения данных, и/или данные, представляющие, по меньшей мере, часть данных файла.
Другой иллюстративный вариант осуществления предусматривает компьютерный программный продукт для предоставления деталей оптимизации хранения данных в сервере хранения данных на клиент. Компьютерный программный продукт включает в себя исполняемые компьютером команды, помимо прочего, для отправки из вычислительной системы запроса на данные файла на сервер хранения данных и для приема из сервера хранения данных информации, включающей в себя информацию, описывающую хранение данных файла на сервере хранения данных.
Дополнительные признаки и преимущества изобретения будут сформулированы в последующем описании и частично будут очевидны из описания, или могут быть изучены посредством осуществления изобретения на практике. Признаки и преимущества изобретения могут быть реализованы и получены посредством инструментов и комбинаций, конкретно указанных в приложенной формуле изобретения. Эти и другие признаки настоящего изобретения станут еще более очевидны из последующего описания и приложенной формулы изобретения, или могут быть изучены посредством осуществления изобретения на практике, как сформулировано далее в настоящем документе.
Отметим, что данное кратное осуществление сущности изобретения предоставлено для введения подборки понятий в упрощенной форме, которые дополнительно описываются ниже в подробном описании. Данное краткое изложение сущности изобретения не предназначено для определения ключевых признаков или существенных признаков заявленного изобретения и при этом оно не предназначено для использования в качестве помощи в определении объема заявленного изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Для описания способа, при помощи которого могут быть получены вышеупомянутые и другие предпочтительные признаки изобретения, будет предоставлено более подробное описание изобретения, кратко описанное выше, посредством ссылки на его конкретные варианты осуществления, которые иллюстрированы на приложенных чертежах. Понимая, что эти чертежи изображают исключительно типичные варианты осуществления изобретения и, следовательно, не должны рассматриваться как ограничивающие его объем, изобретение будет описано и разъяснено с дополнительной спецификой и подробностями с применением сопроводительных чертежей, на которых:
Фиг.1 изображает иллюстративную комплексную оптимизацию хранения и передачи данных.
Фиг.2 изображает иллюстративную архитектуру для комплексной оптимизация хранения и передачи данных.
Фиг.3 изображает иллюстративный способ предоставления деталей оптимизации хранения данных, находящихся в сервере хранения данных, на клиент, если смотреть с точки зрения клиента.
Фиг.4 изображает иллюстративный способ предоставления деталей оптимизации хранения данных, находящихся в сервере хранения данных, на клиент, если смотреть с точки зрения сервера.
ПОДРОБНОЕ ОПИСАНИЕ
Настоящее изобретение распространяется на способы, системы, устройства и компьютерные программные продукты для комплексной оптимизации хранения и передачи данных. Например, варианты осуществления, описанные в настоящем документе, предусматривают повышение эффективности и оптимизацию, как хранения, так и передачи данных. Настоящее изобретение распространяется на способы, системы и компьютерные программные продукты для предоставления на клиент деталей оптимизации хранения данных, находящихся в сервере хранения данных. Варианты осуществления настоящего изобретения могут включать в себя специализированный компьютер или компьютер общего назначения, включающий в себя различные компьютерные аппаратные средства или модули, как более подробно описывается на протяжении всего документа.
Один иллюстративный вариант осуществления предусматривает способ предоставления на клиент деталей оптимизации хранения данных, находящихся в сервере хранения данных. Способ включает в себя доступ к метаданным, описывающим хранение данных файла на сервере хранения данных, при этом данные файла хранятся на сервере хранения данных в форме, отличной от исходной формы данных файла. Метаданные предоставляют форму хранения данных файла в виде, сохраненном на сервере хранения данных.
Клиент может отправить запрос на данные файла в сервер хранения данных, и клиент может принять с сервера хранения данных информацию, содержащую данные файла, дополнительные метаданные, описывающие хранение данных файла на сервере хранения данных, и/или данные, представляющие, по меньшей мере, часть данных файла.
Другой иллюстративный вариант осуществления предусматривает предоставление на клиент деталей оптимизации хранения данных, находящихся в сервере хранения данных. Этот способ включает в себя отправку метаданных, описывающих хранение данных файла на сервере хранения данных. Данные файла сохраняются на сервере хранения данных в форме, отличной от исходной формы данных файла, и метаданные предоставляют форму хранения данных файла в том виде, как они сохранены на сервере хранения данных.
Сервер хранения данных принимает запрос на данные файла из вычислительной системы, и сервер хранения данных отправляет информацию, содержащую данные файла, дополнительные метаданные, описывающие хранение данных файла на сервере хранения данных, и/или данные, представляющие, по меньшей мере, часть данных файла.
Другой иллюстративный вариант осуществления предусматривает компьютерный программный продукт для предоставления деталей оптимизации хранения данных, находящихся в сервере хранения данных, на клиент. Компьютерный программный продукт включает в себя исполняемые компьютером команды, помимо прочего, для отправки из вычислительной системы запроса на данные файла в сервер хранения данных, и для приема из сервера хранения данных информации, содержащей информацию, описывающую хранение данных файла на сервере хранения данных.
Варианты осуществления настоящего изобретения могут содержать или использовать специализированный компьютер или компьютер общего назначения, включающий в себя компьютерные аппаратные средства, такие как, например, один или несколько процессоров и системную память, как более подробно описано ниже. Варианты осуществления, в пределах объема настоящего изобретения, также включают в себя физические и другие машиночитаемые носители для переноса или хранения исполняемых компьютером команд и/или структур данных. Такой машиночитаемый носитель может быть любым известным носителем, к которому можно осуществить доступ посредством специализированной компьютерной системы или компьютерной системы общего назначения. Машиночитаемый носитель, на котором хранятся исполняемые компьютером команды, может являться физическим носителем данных. Машиночитаемый носитель, который переносит исполняемые компьютером команды, может являться средой передачи данных. Следовательно, для примера, но не ограничения, варианты осуществления изобретения могут содержать, по меньшей мере, два принципиально разных вида машиночитаемых носителей: компьютерный носитель данных и среду передачи данных.
Компьютерный носитель данных включает в себя RAM (оперативную память), ROM (постоянную память), EEPROM (электрически стираемую программируемую постоянную память), CD-ROM (постоянную память на компакт-дисках) или другой накопитель на оптических дисках, накопитель на магнитных дисках либо другие магнитные устройства хранения данных, либо любой другой носитель, который может быть использован для хранения желаемых средств программного кода в форме исполняемых компьютером команд или структур данных, и к которому можно осуществить доступ посредством специализированного компьютера или компьютера общего назначения.
Компьютерные программные продукты могут содержать один или несколько машиночитаемых носителей данных, на которых имеются кодированные исполняемые компьютером команды, которые, при исполнении их на одном или нескольких процессорах компьютера, выполняют способы, этапы и действия, описанные в настоящем документе.
«Сеть» определяется как один или несколько каналов связи, которые обеспечивают транспортирование электронных данных между компьютерными системами и/или модулями, и/или другими электронными устройствами. Если информация пересылается или предоставляется через сеть или другое коммуникационное соединение (либо проводное, либо беспроводное, либо комбинацию из проводного и беспроводного) на компьютер, то компьютер, должным образом, рассматривает соединение в качестве среды передачи данных. Среда передачи данных может включать в себя сеть и/или каналы связи, которые могут быть использованы для переноса желаемых средств программного кода в форме исполняемых компьютером команд или структур данных, к которым можно осуществить доступ посредством специализированного компьютера или компьютера общего назначения. Комбинации вышеупомянутых сред и носителей также охватываются понятием машиночитаемый носитель.
Кроме того, после достижения различных компонентов компьютерной системы, средства программного кода в форме исполняемых компьютером команд или структур данных могут быть автоматически переданы из среды передачи данных на компьютерный носитель данных (или наоборот). Например, исполняемые компьютером команды или структуры данных, принятые по сети или каналу связи, могут быть помещены в буфер в RAM в модуле сетевого интерфейса (например, «NIC» (платы сетевого интерфейса), а затем в конечном итоге переданы в RAM компьютерной системы и/или на компьютерные носители данных, которые в меньшей степени зависят от электропитания, в компьютерной системе. Следовательно, следует понимать, что компьютерные носители данных могут быть включены в состав компонентов компьютерной системы, которые также (или даже в первую очередь) используют среду передачи данных.
Исполняемые компьютером команды включают в себя, например, команды и данные, которые, при исполнении их в процессоре, предписывают компьютеру общего назначения, специализированному компьютеру или специализированному устройству обработки данных выполнять определенную функцию или группу функций. Исполняемые компьютером команды могут быть, например, двоичными файлами, командами в промежуточном формате, такими как на языке ассемблер, или даже программой на исходном языке. Несмотря на то, что изобретение описано языком, специфическим для структурных признаков и/или методологических действий, следует понимать, что объем изобретения, определяемый приложенной формулой изобретения, не обязательно ограничен описанными признаками или описанными выше действиями. Наоборот, описанные признаки и действия раскрыты в качестве иллюстративных форм реализации формулы изобретения.
Специалисты в данной области техники оценят, что изобретение может быть осуществлено на практике в среде сетевых вычислений при помощи многих типов конфигураций компьютерных систем, включая персональные компьютеры, настольные компьютеры, ноутбуки, устройства обработки сообщений, портативные устройства, многопроцессорные устройства, основанную на микропроцессорах или программируемую бытовую электронику, сетевые PC (персональные компьютеры), миникомпьютеры, большие универсальные компьютеры, мобильные телефоны, PDA (карманные персональные компьютеры), пейджеры, маршрутизаторы, коммутационные устройства и т.п. Изобретение также может быть осуществлено на практике в средах распределенных вычислительных систем, где задачи выполняются как локальными, так и удаленными компьютерными системами, которые связаны (либо посредством проводных каналов связи, либо беспроводных каналов связи, либо посредством комбинации проводных и беспроводных каналов связи) через сеть. В среде распределенной системы вычислений, программные модули могут быть расположены как в локальных, так и в удаленных запоминающих устройствах.
Используемый в настоящем документе термин «модуль» или «компонент» может относиться к программным объектам или стандартным подпрограммам, которые исполняются в вычислительной системе. Различные компоненты, модули, обработчики и службы, описанные в настоящем документе, могут быть реализованы в виде объектов или процессов, которые выполняются в вычислительной системе (например, в виде отдельных потоков). Несмотря на то, что система и способы, описанные в настоящем документе, реализованы, предпочтительно, в программных средствах, также возможны и предполагаются варианты реализации в аппаратных средствах или в комбинации программных средств и аппаратных средств. В этом описании, «субъект вычисления» может являться любой вычислительной системой, определенной ранее в настоящем документе, или любым модулем или комбинацией модулей, исполняющихся в вычислительной системе.
Фиг.1 изображает иллюстративную среду, в которой может работать настоящее изобретение. Фиг.1 изображает клиент 110, устройство 120 хранения данных и передачу 130 данных между клиентом 110 и устройством 120 хранения данных. Данные могут быть сохранены на устройстве 120 хранения данных во многих различных формах.
В вариантах осуществления, представленных в настоящем документе, описываются способы, системы и компьютерные программные продукты для объединения и оптимизации хранения 140 и передачи 130 данных в средах, таких как проиллюстрированные на Фиг.1.
Файл может быть сохранен в устройстве хранения данных в его исходной форме в виде непрерывного файла. Например, файл A 150 хранится в устройстве 120 хранения данных в неизменном неформатированном или исходном формате, включающем в себя все биты, байты и данные файла, как может быть представлено или может ожидаться приложением. Данные также могут быть сохранены во множестве альтернативных форматов. Например, данные могут быть хранены в сжатом формате для уменьшения необходимого места для хранения данных, и данные могут быть сохранены с использованием методик, предназначенных для уменьшения избыточности и дедупликации данных, хранящихся в устройстве хранения данных.
Данные могут быть сохранены в устройстве хранения данных во фрагментах или блоках, на которые разбивается файл, в отдельных и различных подмножествах данных. Например, файл может быть сохранен в устройстве хранения данных в виде фрагментов 160 с C1 по Cn. Фрагменты, подмножества данных из файла иногда могут называться блоками, и два термина, а именно, фрагменты и блоки, в настоящем документе используются попеременно. (Можно отметить, что термин файл, используемый в настоящем документе, описывает любую логически связанную группу или объем данных).
Устройство хранения данных может иметь алгоритм разбиения файла на фрагменты для оптимизации хранения данных. Например, файл может быть разбит на фрагменты 160 с C1 по Cn для сохранения файла в устройстве хранения данных более эффективным или компактным способом. Файл, разбитый на фрагменты, также может быть сохранен более эффективно посредством уменьшения избыточности в файле. Например, фрагмент C1 может встречаться в файле более одного раза. Вследствие разбиения файла на фрагменты, необходимо записать фрагмент C1 в устройство хранения данных один раз, и каждое повторное возникновение фрагмента C1 в файле впоследствии заменяется на ссылку или указатель на фрагмент C1.
Как может быть понятно, фрагменты или блоки не обязательно имеют фиксированную длину, и могут быть любой длины, любым объемом данных, или любой частью файла, включая весь файл. Фрагменты или блоки файла могут иметь произвольные длины и/или могут быть смещены в файле. Разделение файла на фрагменты или блоки может подчиняться любому алгоритму или технологии, и на размер фрагментов может влиять или он может быть обусловлен конкретными принципами устройства хранения данных, на которое данные должны быть сохранены, или канала передачи данных, по которому данные должны быть переданы.
Данные также могут быть сохранены в устройстве хранения данных в сжатом формате. Например, файл C 170 хранится в сжатом формате, в котором исходный файл был сжат с использованием алгоритма сжатия для создания файла, а именно, файла C 170, который занимает меньше места для хранения данных в устройстве хранения данных, чем исходные, несжатые данные файла. Сжатие файлов и данных может быть выполнено посредством методик, широко известных в данной отрасли, таких как способы сжатия Lempel-Ziv (LZ), Lempel-Ziv-Welch (LZW) и MPEG.
В устройстве хранения данных также может быть использована комбинация сжатия и фрагментации (или разбиения на блоки). Например, файл может быть разбит на фрагменты, которые затем сжимаются и сохраняются в виде сжатых фрагментов 180 c CH1 по CHn.
Другая оптимизация может быть получена посредством дедупликации файлов и данных, сохраненных в устройстве хранения данных. Дедупликация определяет идентичные файлы или идентичные части данных, которые могут встречаться в различных файлах, которые сохранены в устройстве хранения данных, и заменяет все, кроме одного, избыточные файлы или части данных посредством ссылки на контрольную копию файла или часть данных. Посредством дедупликации файлов, только одна копия каждого конкретного файла или части данных будет сохранена в устройстве хранения данных, благодаря чему экономится место для хранения данных, которое могло быть занято множеством дублированных файлов или частей данных.
Дедупликация также может быть выполнена на уровне фрагментов файла. Например, если два или более файлов были фрагментированы на фрагменты данных, то дублированные фрагменты могут быть заменены в устройстве хранения данных ссылками на копию избыточных фрагментов. Например, файл может быть сохранен в устройстве 120 хранения данных в виде фрагмента C1, и ссылки на другие фрагменты, уже сохраненные вместе с другими файлами, сохраняются в формате фрагмента в устройстве 120 хранения данных. Например, файл X может быть сохранен в виде ссылки на фрагменты с C1 по Cn; файл Y может быть сохранен в виде ссылки на фрагменты CH1, C1, и C2; в файл Z может быть сохранен в виде списка ссылок на фрагмент C1 и сжатые фрагменты с CH2 по CHn.
Дедупликация, фрагментация и сжатие данных файла также могут быть выполнены в виде комбинации. Например, файл может быть сохранен на устройстве хранения данных в виде одного или нескольких фрагментов, где каждый из фрагментов был сжат. Данные файла также могут быть сохранены в любой комбинации, где часть файлов хранится несжатыми, часть файлов хранится сжатыми, часть файлов хранятся во фрагментированном формате, и часть файлов хранится в виде фрагментов, в результате чего часть фрагментов сжата, а часть фрагментов не сжата.
В целом, если клиент запрашивает данные из устройства хранения данных, то клиент будет запрашивать данные для всего файла или для некоторой логической части файла. Например, клиент может запросить get(fileX) (получить (файл Х)) через файловую систему, или может запросить через файловую систему getFileBytes (fileX; bytes = 100-1000) (получить байты файла (файл Х; байты = 100-1000)). Если файл или часть файла передается 130 из устройства 120 хранения данных на клиент 110, то на устройство хранения данных ложится нагрузка по распаковке сжатых данных или по сборке заново фрагментов данных, для сборки заново и передачи на клиент запрашиваемых данных в формате, ожидаемом посредством клиента или приложения.
Варианты осуществления, описанные в настоящем документе, позволяют клиенту запрашивать или осуществлять доступ к информации, относящейся к хранению данных файла на устройстве хранения данных так, чтобы могли быть получены эффективность и оптимизация посредством предоставления на клиент информации о деталях хранения данных, хранящихся на устройстве хранения данных. Например, клиент 110 может выполнить запрос на предмет того, чтобы устройство 120 хранения проинформировало клиента о том, как файл X сохранен на устройстве для хранения данных. Устройство для хранения данных может сообщить на клиент, что файл X сохранен в виде сжатых фрагментов CH1 и CH3. Поскольку было бы более эффективным выполнение передачи сжатых фрагментов на клиент в сжатой форме, то клиент может запросить устройство хранения данных передать фрагменты CH1 и CH3 на клиент, вместо выполнения запроса get(fileX), который повлечет за собой выполнение устройством хранения данных распаковки фрагментов CH1 и CH3 и сборку файла заново до передачи файла на клиент.
Варианты осуществления также позволяют клиенту выполнять доступ к информации относительно хранения данных файла на устройстве хранения данных так, чтобы могли быть получены эффективность и оптимизация посредством предоставления на клиент информации относительно деталей хранения данных, хранящихся на устройстве хранения данных. Например, клиент 110 может осуществить доступ к локально кэшированной или сохраненной информации, определяющей, как файл X сохранен на устройстве хранения данных. Эта информация может быть получена посредством предшествующих запросов или может быть кэширована во время предшествующих операций между клиентом и устройством хранения данных.
Дополнительная эффективность может быть получена, если на клиенте уже имеется копия фрагмента CH1, сохраненная локально или доступная из ячейки запоминающего устройства с более низким временем ожидания или затратами на передачу, чем из устройства 120 хранения данных. Затем, в таком случае, клиент может запросить из устройства хранения данных исключительно getChunk(CH3) (получить фрагмент (СН3)).
Описанные в настоящем документе варианты осуществления уменьшают избыточный трафик LAN и/или WAN между клиентами и устройствами хранения данных и/или централизованными серверами. Варианты осуществления, описанные в настоящем документе, позволяют выполнять оптимизацию хранения и передачи для различных протоколов сетевых файловых систем. Например, как протоколы SMB, так и протоколы HTTP могут быть расширены при помощи улучшения, выполненного посредством описанных устройств и способов.
Стандартные протоколы файловых систем (например, SMB и HTTP) могут быть расширены для обеспечения API, который позволяет клиенту запрашивать данные из устройства хранения данных, которые, при их предоставлении посредством устройства хранения данных, предоставляют детали хранения части файла или данных в устройстве хранения данных. Например, клиент 110 может запросить данные из устройства 120 хранения данных касательно того, как файл X сохранен на устройстве 120 хранения данных. Например, клиент 110 может вызвать расширение файловой системы, такое, как getStorageDetails(fileX) (получить детали хранения (файл Х)), а устройство хранения данных может ответить при помощи {fileX: = chunks CH1, СН3} ({файл: = фрагменты CH1, CH3}). Теперь, при наличии знания о деталях того, как файл X хранится на устройстве хранения данных, клиент может решить, как запрашивать данные, связанные с файлом X, из устройства хранения данных. При использовании стандартного способа, клиент может запросить весь файл в его неформатированном или исходном формате. Для сравнения, варианты осуществления, описанные в настоящем документе, позволяют клиенту запрашивать передачу устройством хранения данных сжатого фрагмента CH3 на клиент.
В одном варианте осуществления, как изображено на Фиг.3, клиент может осуществить доступ 310 к метаданным, описывающим хранение данных файла на сервере хранения данных, причем данные файла хранятся на сервере хранения данных в форме, отличной от исходной формы данных файла, и, при этом, метаданные предоставляют форму хранения данных файла в том виде, как он сохранен на сервере хранения данных. Метаданные, описывающие хранение данных файла на сервере хранения данных, могут являться информацией, описывающей то, как данные файла были фрагментированы в устройстве хранения данных, как данные файла были сжаты в устройстве хранения данных, или как данные файла были одновременно фрагментированы и сжаты в устройстве хранения данных.
Детали фрагментации файла могут включать в себя информацию о том, какие части файла соответствуют каждому фрагменту, сохраненному на сервере. Детали фрагментации также могут включать в себя криптографический хеш-код каждого из фрагментов, из которых состоит файл. Криптографические хеш-коды фрагментов позволяют клиентам, приложениям и устройствам хранения данных однозначно идентифицировать каждый фрагмент. Посредством использования этой информации, клиент, приложение или другое устройство хранения данных могут быть способны выполнять идентификацию того, доступен ли уже идентичный фрагмент, идентифицированный посредством его криптографического хеш-кода.
Детали того, как файл или часть данных (например, фрагмент) сжимаются, могут включать в себя криптографический хеш-код исходных несжатых данных для однозначной идентификации данных. Также они могут включать в себя криптографический хеш-код сжатых данных для однозначной идентификации сжатых данных. Детали также могут включать в себя тип сжатия, используемого для выполнения сжатия (которое может быть необходимо для распаковки сжатых данных после передачи их в другое оконечное устройство из устройства хранения данных). Типы сжатия могут включать в себя, например, LZ, LZW, MPEG и т.п.
Посредством доступа к метаданным, клиент может стать осведомленным о деталях хранения данных, хранящихся на устройстве хранения данных. Если клиент осведомлен о деталях хранения данных в устройстве хранения данных, то клиент может отправить 320 запрос на данные файла в сервер хранения данных. Посредством использования вариантов осуществления, описанных в настоящем документе, клиенту не требуется запрашивать весь файл, клиент может запросить исключительно те фрагменты файла, которые ему необходимы, или может запросить сжатую версию файла или сжатую версию фрагмента файла. После отправки 320 запроса на данные файла, клиент может принять 330 информацию из сервера хранения данных, включающую в себя запрошенные данные файла, дополнительные метаданные, описывающие хранение данных файла на сервере хранения данных, и/или данные, представляющие, по меньшей мере, часть данных файла.
Прием 330 информации о данных файла может включать в себя, по меньшей мере, либо данные файла, либо дополнительные метаданные, описывающие хранение данных файла на сервере хранения данных, и/или данные, представляющие, по меньшей мере, часть данных файла. Информация может содержать данные файла в стандартном формате, который может ожидаться устаревшим приложением на клиенте. Информация может содержать информацию, описывающую хранение данных файла на устройстве хранения данных. Информация может содержать данные, которые представляют, по меньшей мере, часть данных файла.
Осуществление доступа 310 к метаданным, описывающим хранение данных файла, может содержать отправку в сервер запроса на информацию, описывающую хранение данных файла. Такой запрос может быть в форме расширения файловой системы, которое позволяет клиенту осуществлять вызов в файловую систему (или сетевую файловую систему) для запроса деталей того, как файл, данные файла или часть данных сохранены на устройстве хранения данных.
Альтернативно, осуществление доступа 310 к метаданным, описывающим хранение данных файла, может содержать осуществление доступа к местному запоминающему устройству для получения информации, описывающей хранение данных файла. Информация в местном запоминающем устройстве может быть принята ранее с файлового сервера в ответ на предыдущий запрос, или может быть локально кэширована, как часть происходящей в настоящее время серии операций файловой системы. Осуществление доступа 310 к метаданным, описывающим хранение данных файла, может содержать вызов файловой системы (вводимый посредством расширения нормальных API файловой системы), которое возвращает детали, которые предоставляют форму хранения данных файла в виде, сохраненном на сервере хранения данных, или как локально кэшированные копии локально сохранены на клиенте.
Например, метаданные, описывающие хранение данных файла на сервере хранения данных, могут содержать данные, описывающие хранение данных файла, полученных в результате дедупликации данных файла на сервере хранения данных. Метаданные могут содержать список фрагментов, состоящий из фрагментов, составляющих файл, а также могут содержать список хеш-кодов из криптографических хеш-кодов каждого из фрагментов, составляющих файл. Затем, клиент может использовать возвращенный список фрагментов или список хеш-кодов для формулирования запроса на один или более фрагментов, которые должны быть переданы, или может использовать список хеш-кодов для сравнения со списком уже принятых или локально кэшированных фрагментов для определения того, нужен ли запрос каких-либо фрагментов из устройства для хранения данных.
Например, при загрузке файла, клиент может запросить список хеш-кодов из файлового сервера, а также может запросить клиенты одноранговой сети и/или запросить файловые серверы одноранговой сети на предмет желаемых данных. Клиент может принять 330 информацию, содержащую список хеш-кодов, в качестве ответа на запрос. Список хеш-кодов может представить данные в виде, в котором они сохранены на устройстве для хранения данных, и клиенту может быть предоставлена возможность запроса только необходимых ему частей данных (например, фрагментов). Данные также могут быть считаны с узла одноранговой сети, если в узле одноранговой сети имеются желаемые данные, а затраты на передачу или время ожидания для передачи данных между узлом одноранговой сети и клиентом ниже, чем затраты на передачу или время ожидания между клиентом и устройством хранения данных.
Метаданные, описывающие хранение данных файла на сервере хранения данных, также могут содержать данные, описывающие сжатое подмножество данных файла, или данные, описывающие сжатую версию данных файла. Посредством использования этой информации, клиент может сформулировать запрос на сжатое подмножество данных файла или сформулировать запрос на сжатую версию данных файла. Это обеспечит эффективность устройства хранения данных, заключающуюся в отсутствии необходимости распаковки данных файла или подмножества данных файла перед передачей данных в ответ на запрос на данные файла.
В одном варианте осуществления клиент может отправить 320 запрос на данные файла, который может включать в себя запрос всего файла или запрос части файла. Например, запрос файла, get(fileX), или запрос части файла, getFileBytes(fileX; bytes = 100-1000), может быть отправлен через файловую систему на сервер хранения данных. В ответ, сервер хранения данных может ответить посредством отправки не файла или части файла, а данных, которые могут находиться в другой форме, которые содержат запрашиваемый файл или часть файла.
Например, сервер хранения данных может возвратить данные файла, содержащие ряд сжатых фрагментов, которые полностью охватывают запрошенный файл или запрошенную часть файла. Кроме того, сервер хранения данных может возвратить вместе с фрагментами метаданные о хранении файла, которые определяют, что возвращенные фрагменты содержат запрошенные данные (и, возможно, больше данных, чем было запрошено).
Кроме того, если возвращенные фрагменты были сжаты, то сервер хранения данных может возвратить метаданные о хранении файла, которые определяют, что возвращенные данные (или фрагменты данных) были сжаты, и может определить, какая технология сжатия или алгоритм были использованы для сжатия данных, или какие методики или алгоритмы распаковки должны быть использованы для распаковки данных. Как может быть понятно, может существовать принятая по умолчанию технология сжатия или распаковки, которая может быть предусмотрена в случае, в котором сжатые данные и/или сжатые фрагменты возвращаются без одновременного с ними возвращения метаданных, идентифицирующих конкретные методики сжатия или распаковки.
Тогда клиент может принять 330 эти данные и/или метаданные из сервера хранения данных и выполнить соответствующую распаковку и/или сборку фрагментов со стороны клиента для восстановления запрошенных данных. Как может быть понятно, этот процесс может быть более эффективным в плане затрат на передачу данных или времени ожидания передачи, чем выполнение сервером хранения данных распаковки и/или сборки конкретных данных, фактически запрошенных посредством клиента перед передачей на клиент и/или приемом посредством клиента.
Метаданные о хранении файла могут содержать список криптографических хеш-кодов фрагментов или сжатых фрагментов и определения того, какие части данных файла содержатся в конкретных фрагментах. Посредством использования списка криптографических хеш-кодов фрагментов или сжатых фрагментов и определений того, в какой части данных файла содержатся конкретные фрагменты, клиент может быть способен правильно распаковывать сжатые данные и/или собирать заново фрагменты, которые содержат все или больший объем из диапазона данных, желаемых или запрашиваемых посредством клиента.
На Фиг.2 изображена иллюстративная архитектура для интегрированного подхода к хранению и передаче файлов. Клиенты и серверы 210 могут содержать приложения и/или службы, осведомленные об оптимизации. Клиенты и серверы могут взаимодействовать с интерфейсом 250 файловой системы 250, который может содержать интерфейс прикладного программирования (API) файловой системы, а также может содержать API оптимизации. API файловой системы может содержать все нормальные вызовы и функции нормальной файловой системы и/или сетевой файловой системы. API оптимизации содержит расширенные элементы API (например, вызовы функций и интерфейсы), которые предоставляют детали хранения данных 260, 270 и 280, которые сохранены на устройстве хранения данных.
Интерфейс 250 файловой системы позволяет клиенту запрашивать метаданные, описывающие хранение данных файла на сервере хранения данных. Интерфейс 250 файловой системы также позволяет клиенту запрашивать данные из сервера хранения данных во множестве форматов. Клиент может запрашивать данные с использованием нормального API файловой системы (например, стандартного или устаревшего API файловой системы) для получения файла в неизменном виде, а именно в его неформатированном или исходном формате. Клиент также может запрашивать данные с использованием API оптимизации для запрашивания исключительно конкретного фрагмента файла, сжатой формы файла в виде, сохраненном на сервере, и может запрашивать сжатый фрагмент файла в виде, сохраненном на сервере.
Клиенты, приложения и службы 220, которые не осведомлены об улучшенном и/или расширенном интерфейсе 250 файловой системы, все еще могут работать нормально, без изменений и свободно, посредством выполнения вызовов к API файловой системы, в котором сохранены все функциональные возможности устаревшего API файловой системы.
Клиенты, приложения и службы 230, которые осведомлены об оптимизации, могут выполнять вызовы к API оптимизации для активации всех функциональных возможностей, соответствующих вариантам осуществления, описанным в настоящем документе. Клиенты, приложения и службы, которые осведомлены об оптимизации, могут запрашивать списки хеш-кодов, списки фрагментов, сжатые данные, и т.д. из устройства хранения данных или с сервера. Например, файл 260 foo.vhd может быть сохранен на устройстве хранения данных в виде списка фрагментов, который указывает на хранилище/индекс 270 фрагментов. Хранилище/индекс фрагментов может включать в себя фрагменты (например, фрагменты 160 C1-Cn), может включать в себя сжатые фрагменты (например, фрагменты 180 CH1-CHn), и может включать в себя ссылки, указатели и индексы для сохраненных фрагментов, которые позволяют выполнять дедупликацию и другую оптимизацию хранения данных и файлов.
Через API оптимизации, клиент может запрашивать метаданные, описывающие хранение foo.vhd, и принимать из устройства хранения данных метаданные, которые описывают, как хранится foo.vhd. Как только клиент осуществил доступ к метаданным, он может отправить запрос на данные файла через API оптимизации в сервер хранения данных. Может быть выполнен запрос на весь файл в его исходном формате, или может быть выполнен запрос исключительно на один или несколько фрагментов или сжатых фрагментов файла в том виде, как они сохранены в хранилище/индексе фрагментов.
Тогда клиент может принять из сервера хранения данных информацию, содержащую один или несколько элементов данных файлов, дополнительные метаданные, описывающие хранение данных файла на сервере хранения данных, и данные, представляющие, по меньшей мере, часть данных файла. Клиент может принять весь файл в его исходном формате. Клиент может принять весь файл как сжатый в устройстве хранения данных. Клиент может принять фрагмент файла. Клиент может принять сжатый фрагмент файла. Клиент может принять дополнительные метаданные, описывающие хранение данных файла, и может принять данные, включающие в себя часть данных файла. Ответ, принятый клиентом, может соответствовать запросу, выполненному через расширенный API оптимизации, который позволяет клиентам и приложениям выполнять запросы с осведомленностью о деталях хранения данных в устройстве хранения данных.
В другом примере файл bar.doc может быть сжат, фрагментирован и подвергнут дедупликации посредством службы 240 оптимизации и сохранен в виде указателей в хранилище/индексе 270 фрагментов. В варианте осуществления, описанном в настоящем документе, клиент может запросить метаданные, описывающие хранение bar.doc на устройстве хранения данных, и после приема информации, описывающей хранение bar.doc на устройстве хранения данных, отправить запрос на один или несколько сжатых фрагментов bar.doc, которые сохранены в хранилище/индексе 270 фрагментов. Поскольку сжатые фрагменты были запрошены клиентом, устройство хранения данных не должно распаковывать фрагменты bar.doc и при этом устройство хранения данных не должно собирать заново фрагменты bar.doc для ответа на запрос из клиента на bar.doc.
В другом варианте осуществления предложен способ предоставления деталей оптимизации хранения данных в сервере хранения данных на клиент. Этот способ включает в себя отправку метаданных, описывающих хранение данных файла на сервере хранения данных, при этом данные файла хранятся на сервере хранения данных в форме, отличной от исходной формы данных файла, и при этом метаданные предоставляют форму хранения данных файла в виде, сохраненном на сервере хранения данных. Способ также включает в себя прием на сервере хранения данных запроса на данные файла из вычислительной системы. Способ также включает в себя отправку из сервера хранения данных информации, содержащей по меньшей мере одно из данных файла, дополнительных метаданных, описывающих хранение данных файла на сервере хранения данных, и данных, представляющих, по меньшей мере, часть данных файла.
Как иллюстрировано на Фиг.4, сервер или устройство хранения данных может отправить 410 метаданные, описывающие хранение данных файла на сервере хранения данных или в устройстве хранения данных. Данные файла хранятся на сервере хранения данных в форме, отличной от исходной формы данных файла. Например, данные файла могут быть сохранены на сервере хранения данных в формате фрагментов, в сжатом формате или в виде комбинации форматов сжатых данных и фрагментов.
Отправленные метаданные предоставляют информацию, которая предоставляет форму хранения данных файла в виде, в котором он сохранен на сервере хранения данных. Например, метаданные могут включать в себя информацию, которая предоставляет информацию о том, что данные файла хранятся в фрагментированном, сжатом формате, или в комбинации фрагментированного и сжатого форматов. Метаданные могут содержать информацию, которая включает в себя список хеш-кодов фрагментов, из которых состоят данные файла в виде, сохраненном на устройстве хранения данных. Фрагменты, сохраненные в устройстве хранения данных, могут являться фрагментами, которые получаются в результате дедупликации данных файла (а также другими данными файла), сохраненных на сервере хранения данных.
Метаданные могут содержать информацию, включающую в себя криптографический хеш-код подмножества данных файла. Криптографический хеш-код подмножества данных может быть использован клиентом, устройством передачи данных, или другим устройством хранения данных, для определения того, является ли фрагмент идентичным другому фрагменту. Посредством использования криптографического хеш-кода подмножества данных файла, клиенты, устройства передачи данных и другие устройства хранения данных позволяют определять, доступно ли конкретное подмножество данных локально или оно доступно из источника с более низким временем ожидания или затратами на передачу. Посредством определения идентичных подмножеств данных может быть определено, требуется ли выполнить запрос или передачу конкретного подмножества данных.
Подмножество данных файла может являться всем файлом или данными файла. Подмножество данных также может являться одним или несколькими фрагментами данных файла, который был фрагментирован посредством устройства хранения данных, как часть режима оптимизации хранения данных или дедупликации.
Метаданные, описывающие хранение данных файла на сервере хранения данных или в устройстве хранения данных, также могут включать в себя данные, описывающие, что часть или все данные файла сжаты на сервере хранения данных или в устройстве хранения данных. Метаданные могут включать в себя информацию о том, что один или несколько фрагментов в фрагментированном формате данных файла были сжаты. Посредством использования информации, указывающей на то, что некоторая часть данных файла сжата, клиент может запросить возвращение файла или одного, или нескольких фрагментов файла в ответе на клиент в фрагментированном или сжатом формате в виде, сохраненном в устройстве хранения данных. Посредством запрашивания конкретного фрагмента или сжатого фрагмента файла, уменьшаются непроизводительные потери, поскольку устройство хранения данных может не сжимать файл или фрагмент файла перед передачей файла или фрагмента файла на клиент, выполняющий запрос.
Фиг.4 также изображает прием 410 запроса на данные файла из вычислительной системы. Запрос может быть принят из клиента, из другого сервера хранения данных, из приложения, исполняющегося в удаленной вычислительной системе или т.п. Формат запроса может быть задан с использованием протокола, соответствующего API оптимизации, который расширяет и/или улучшает стандартный API сетевой файловой системы.
Запрос на данные файла может включать в себя информацию, идентифицирующую конкретные запрашиваемые фрагменты файла. Запрос также может включать в себя информацию, определяющую, должны ли быть отправлены запрошенные данные файла в сжатом или в несжатом формате. Запрос может включать в себя информацию о том, что должно быть отправлено исключительно подмножество фрагментов файла, поскольку другие фрагменты уже доступны локально.
Фиг.4 также изображает отправку 430 информации о данных файла, которая включает в себя, по меньшей мере, либо данные файла, либо дополнительные метаданные, описывающие хранение данных файла на сервере хранения данных, либо данные, представляющие, по меньшей мере, часть данных файла. Отправка 430 информации о данных файла может быть выполнена в ответ на принятый запрос 420 на данные файла. Как обсуждалось выше, запрос на данные файла может быть выполнен в отношении данных файла, которые сохранены в устройстве хранения данных в виде фрагментов, в сжатом формате или в любой их комбинации.
Отправка 430 информации о данных файла может включать в себя, по меньшей мере, либо данные файла, либо дополнительные метаданные, описывающие хранение данных файла на сервере хранения данных, либо данные, представляющие, по меньшей мере, часть данных файла. Информация может содержать данные файла в стандартном формате, поскольку его может ожидать устаревшее приложение на клиенте. Информация может содержать информацию, описывающую сохранение данных файла на устройстве хранения данных. Информация может содержать данные, которые представляют, по меньшей мере, часть данных файла.
Принятый запрос может идентифицировать конкретные фрагменты данных, которые желает получить клиент. В ответ на этот запрос, устройство хранения данных может отправить запрашиваемые фрагменты данных на клиент, выполняющий запрос. Принятый запрос может иметь идентифицированные конкретные сжатые подмножества данных, которые желает получить клиент. В ответ на этот запрос, устройство хранения данных может отправить требуемые сжатые подмножества данных на клиент, выполняющий запрос. Принятый запрос может иметь конкретные криптографические хеш-коды, идентифицирующие фрагменты данных, которые желает получить клиент. В ответ на этот запрос, устройство хранения данных может отправить конкретные фрагменты данных, которые идентифицированы посредством криптографических хеш-кодов на клиент, выполняющий запрос.
В одном варианте осуществления, устройство хранения данных может принять 420 запрос на файл или часть файла. Например, устройство хранения данных может принять запрос get(fileX) на файл или может принять запрос getFileBytes (fileX; bytes = 100-1000) на часть файла. Устройство хранения данных может создать ответ на запрос и отправить информацию о данных файла, которая включает в себя данные файла в виде, сохраненном на устройстве хранения данных, и включить в их состав метаданные, идентифицирующие детали хранения данных файла в сохраненном виде. Например, устройство хранения данных может возвратить ряд фрагментов и метаданные, определяющие, какие части запрашиваемых данных содержатся в конкретных фрагментах. Кроме того, устройство хранения данных может возвратить метаданные, содержащие информацию о сжатии и/или распаковке, которая может подходить для распаковки данных, которые были возвращены в сжатом формате.
В некоторых вариантах осуществления может быть принят запрос 420, и информация о данных файла может быть отправлена 430 без выполнения предыдущего этапа отправки метаданных 410. Например, клиент, осведомленный об оптимизации, может просто запросить данные файла, устройство хранения данных может принять запрос 420, а устройство хранения данных может составить ответ и отправить ответ на клиент, при условии, что клиент сможет правильно обработать возвращенные данные файла и/или метаданные, и, в случае необходимости, правильно собрать заново фрагменты и/или распаковать данные.
Варианты осуществления также предусматривают поддержку оптимизации тракта записи для сохранения и передачи данных. Например, при локальных модификациях файла, клиент может генерировать представление списка хеш-кодов изменяемого файла. Этот список хеш-кодов затем может быть передан на сервер хранения данных. Затем, сервер хранения данных может сравнить принятый список хеш-кодов, представляющий измененный файл, с комплексным списком хеш-кодов, содержащимся на сервере хранения данных, который идентифицирует фрагменты файлов, хранящиеся на сервере хранения данных.
Затем, на основе этого сравнения, сервер хранения данных может возвратить на клиент список фрагментов, которые уже были сохранены на сервере хранения данных. Сервер хранения данных также может возвратить на клиент список фрагментов, которые не сохранены на сервере хранения данных. Затем, на основе возвращенного сохраненного списка фрагментов (или не сохраненного списка фрагментов) на сервере хранения данных, клиент может передать на сервер хранения данных фрагменты, которые еще не сохранены на сервере хранения данных.
Затем, после приема списка хеш-кодов, представляющего измененный файл, и приема фрагментов измененного файла, которые еще не были сохранены на сервере хранения данных, сервер хранения данных может сохранить полный измененный файл (который состоит из нескольких фрагментов, уже сохраненных на сервере, нескольких фрагментов, недавно принятых посредством сервера, и списка хеш-кодов (или списка фрагментов), представляющего весь измененный файл). Посредством передачи списка хеш-кодов (или списка фрагмента), представляющего весь файл, и передачи исключительно фрагментов, еще не сохраненных на сервере хранения данных, может быть реализована оптимизация передачи данных с клиента на устройство хранения данных.
Например, сервер хранения данных может принять с клиента список хеш-кодов и сравнить переданный список хеш-кодов, представляющий файл, со списком хеш-кодов, сохраненным в хранилище/индексе 270 фрагментов, который включает в себя фрагменты, хранящиеся на сервере хранения данных, и индекс криптографических хеш-кодов для фрагментов, хранящихся на сервере хранения данных. Тогда устройство хранения данных может возвратить на клиент список хеш-кодов, представляющий фрагменты, которые еще не сохранены в хранилище/индексе 270 фрагментов. Затем, клиент может передать на устройство хранения данных фрагменты, еще не сохраненные в устройстве хранения фрагментов. Затем, устройство хранения данных может сохранить принятые фрагменты в хранилище 270 фрагментов вместе со списком хеш-кодов, представляющим полный измененный файл. Тогда таким образом, сервер хранения данных может сохранить полное представление измененного файла (в контексте списка фрагментов, представляющего файл и соответствующие фрагменты), но без необходимости передачи клиентом всех составляющих файл фрагментов.
В другом примере файл, составленный из пяти фрагментов, а именно фрагментов C1-C5, может быть изменен клиентом исключительно в фрагменте C4 (что даст в результате измененный фрагмент Cm4). Клиент может отправить список хеш-кодов, представляющий фрагменты C1-C3, Cm4 и C5 в сервер хранения данных. Затем, этот список хеш-кодов представляет полный измененный файл. Затем, сервер хранения данных может ответить на клиент, что на сервере уже сохранены фрагменты C1-C3 и C5, но отсутствует фрагмент Cm4. Затем, клиент может отправить фрагмент Cm4 на сервер хранения данных. Затем, сервер хранения данных может сохранить фрагмент Cm4 на сервере хранения данных и, вместе с принятым списком хеш-кодов, представляющим фрагменты C1-C3, Cm4 и C5, и уже сохраненными фрагментами C1-C3 и C5, теперь имеет полный измененный файл, сохраненный на устройстве хранения данных.
Как может быть понятно, также этот вариант осуществления тракта записи может быть задействован для недавно созданных файлов, а также для измененных файлов. Клиент может создать список фрагментов для любого файла, независимо от того, является ли он измененным файлом или недавно созданным файлом, и отправлять список фрагментов на сервер хранения данных для того, чтобы сервер хранения данных мог сравнить принятый список фрагментов со списком фрагментов, уже сохраненным на сервере. Кроме того, список фрагментов может быть списком криптографических хеш-кодов, однозначно идентифицирующих каждый из фрагментов, из которых состоит файл. Фрагменты, сами по себе обсуждаемые в настоящем документе, могут являться сжатыми фрагментами, фрагментами в виде неформатированных данных, или даже фрагментами, которые были преобразованы каким-либо способом, а именно, криптографическим или иным способом.
При передаче фрагментов они могут быть переданы в виде неформатированном данных, в сжатом формате или иным способом. Как может быть понятно, если части данных файла переданы в сжатом формате, то это может привести к оптимизации в том плане, что инфраструктура передачи не должна сжимать данные для получения эффективности при передаче, и сервер хранения данных не должен сжимать данные для оптимизации хранения на сервере хранения данных. Посредством передачи исключительно сжатых фрагментов, которые еще не сохранены или не присутствуют на приемном конце передачи, может быть реализована оптимизация, как передачи, так и хранения данных файла.
Настоящее изобретение может быть реализовано в других конкретных формах без отступления от его сущности или существенных характеристик. Описанные варианты осуществления должны рассматриваться во всех отношениях исключительно как иллюстративные, но не ограничительные. Следовательно, объем изобретения определяется приложенной формулой изобретения, а не посредством предшествующего описания. Все изменения, которые подпадают под смысловое содержание и диапазон эквивалентов формулы изобретения, должны быть включены в ее объем.

Claims (20)

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

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/818,515 US20110314070A1 (en) 2010-06-18 2010-06-18 Optimization of storage and transmission of data
US12/818,515 2010-06-18
PCT/US2011/039318 WO2011159517A2 (en) 2010-06-18 2011-06-06 Optimization of storage and transmission of data

Publications (2)

Publication Number Publication Date
RU2012154625A RU2012154625A (ru) 2014-06-27
RU2581551C2 true RU2581551C2 (ru) 2016-04-20

Family

ID=45329631

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2012154625/08A RU2581551C2 (ru) 2010-06-18 2011-06-06 Способ оптимизации хранения и передачи данных

Country Status (12)

Country Link
US (1) US20110314070A1 (ru)
EP (1) EP2583186A2 (ru)
JP (1) JP5819416B2 (ru)
KR (1) KR20130095194A (ru)
CN (1) CN102947815B (ru)
AU (1) AU2011268033A1 (ru)
BR (1) BR112012032407A2 (ru)
CA (1) CA2799976A1 (ru)
HK (1) HK1182493A1 (ru)
MX (1) MX2012014730A (ru)
RU (1) RU2581551C2 (ru)
WO (1) WO2011159517A2 (ru)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2720951C1 (ru) * 2018-12-29 2020-05-15 Общество С Ограниченной Ответственностью "Яндекс" Способ и распределенная компьютерная система для обработки данных
US10705761B2 (en) 2018-09-14 2020-07-07 Yandex Europe Ag Method of and system for scheduling transmission of I/O operations
US10908982B2 (en) 2018-10-09 2021-02-02 Yandex Europe Ag Method and system for processing data
US10996986B2 (en) 2018-12-13 2021-05-04 Yandex Europe Ag Method and system for scheduling i/o operations for execution
US11003600B2 (en) 2018-12-21 2021-05-11 Yandex Europe Ag Method and system for scheduling I/O operations for processing
US11048547B2 (en) 2018-10-09 2021-06-29 Yandex Europe Ag Method and system for routing and executing transactions
US11055160B2 (en) 2018-09-14 2021-07-06 Yandex Europe Ag Method of determining potential anomaly of memory device
US11061720B2 (en) 2018-09-14 2021-07-13 Yandex Europe Ag Processing system and method of detecting congestion in processing system
US11184745B2 (en) 2019-02-06 2021-11-23 Yandex Europe Ag Actor system and method for transmitting a message from a first actor to a second actor
US11288254B2 (en) 2018-10-15 2022-03-29 Yandex Europe Ag Method of and system for processing request in distributed database

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484162B2 (en) 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
US8572340B2 (en) * 2010-09-30 2013-10-29 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
US8364652B2 (en) 2010-09-30 2013-01-29 Commvault Systems, Inc. Content aligned block-based deduplication
US9116850B2 (en) 2010-12-14 2015-08-25 Commvault Systems, Inc. Client-side repository in a networked deduplicated storage system
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US8856368B2 (en) * 2011-04-01 2014-10-07 International Business Machines Corporation Method for distributing a plurality of data portions
KR101904482B1 (ko) * 2011-12-26 2018-10-08 에스케이텔레콤 주식회사 콘텐트 전송 시스템, 그 시스템에서의 네트워크 중복 전송 트래픽 최적화 방법, 중앙 제어 장치 및 로컬 캐싱 장치
KR20130093806A (ko) * 2012-01-10 2013-08-23 한국전자통신연구원 클라우드 컴퓨팅 환경에서의 개인 정보 유출 알림 시스템 및 방법
CN102571974B (zh) * 2012-02-02 2014-06-11 清华大学 分布式数据中心数据冗余消除方法
CN102546817B (zh) * 2012-02-02 2014-08-20 清华大学 集中式数据中心数据冗余消除方法
US9218376B2 (en) 2012-06-13 2015-12-22 Commvault Systems, Inc. Intelligent data sourcing in a networked storage system
US9665591B2 (en) 2013-01-11 2017-05-30 Commvault Systems, Inc. High availability distributed deduplicated storage system
WO2014149025A1 (en) * 2013-03-18 2014-09-25 Ge Intelligent Platforms, Inc. Apparatus and method for optimizing time series data store usage
US10015012B2 (en) * 2013-07-03 2018-07-03 Red Hat, Inc. Precalculating hashes to support data distribution
US20160162368A1 (en) * 2013-07-18 2016-06-09 Hewlett-Packard Development Company, L.P. Remote storage
KR102187127B1 (ko) * 2013-12-03 2020-12-04 삼성전자주식회사 데이터 연관정보를 이용한 중복제거 방법 및 시스템
US10380072B2 (en) 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
US9633056B2 (en) 2014-03-17 2017-04-25 Commvault Systems, Inc. Maintaining a deduplication database
JP6326913B2 (ja) 2014-03-31 2018-05-23 富士通株式会社 制御プログラムおよび制御方法
KR101896048B1 (ko) * 2014-05-13 2018-09-06 다토미아 리서치 랩스 오위 분산된 보안 데이터 저장 및 스트리밍 매체 콘텐트의 전송
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US9852026B2 (en) 2014-08-06 2017-12-26 Commvault Systems, Inc. Efficient application recovery in an information management system based on a pseudo-storage-device driver
KR101588976B1 (ko) 2014-10-22 2016-01-27 삼성에스디에스 주식회사 파일 송신 장치 및 방법
US9575673B2 (en) 2014-10-29 2017-02-21 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US10146752B2 (en) 2014-12-31 2018-12-04 Quantum Metric, LLC Accurate and efficient recording of user experience, GUI changes and user interaction events on a remote web document
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US20160350391A1 (en) 2015-05-26 2016-12-01 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US11461456B1 (en) * 2015-06-19 2022-10-04 Stanley Kevin Miles Multi-transfer resource allocation using modified instances of corresponding records in memory
WO2017011829A1 (en) * 2015-07-16 2017-01-19 Quantum Metric, LLC Document capture using client-based delta encoding with server
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
WO2017022034A1 (ja) * 2015-07-31 2017-02-09 富士通株式会社 情報処理装置、情報処理方法、及び、情報処理プログラム
RU2625611C2 (ru) * 2015-12-07 2017-07-17 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Оренбургский государственный университет" Способ преобразования документов для минимизации их объёма при хранении электронных документов с квазиструктурированным информационным наполнением
US20170192868A1 (en) 2015-12-30 2017-07-06 Commvault Systems, Inc. User interface for identifying a location of a failed secondary storage device
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
US10165088B2 (en) * 2016-08-02 2018-12-25 International Business Machines Corporation Providing unit of work continuity in the event initiating client fails over
US10740193B2 (en) 2017-02-27 2020-08-11 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
US11010258B2 (en) 2018-11-27 2021-05-18 Commvault Systems, Inc. Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
US20200327017A1 (en) 2019-04-10 2020-10-15 Commvault Systems, Inc. Restore using deduplicated secondary copy data
US11463264B2 (en) 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
US11064055B2 (en) * 2019-07-22 2021-07-13 Anacode Labs, Inc. Accelerated data center transfers
US11442896B2 (en) 2019-12-04 2022-09-13 Commvault Systems, Inc. Systems and methods for optimizing restoration of deduplicated data stored in cloud-based storage resources
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management
CN113641434A (zh) * 2021-08-12 2021-11-12 上海酷栈科技有限公司 一种云桌面数据压缩自适应编码方法、系统及存储设备
US11914983B2 (en) * 2022-06-03 2024-02-27 Apple Inc. Virtual restructuring for patching compressed disk images

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2343536C2 (ru) * 2002-12-02 2009-01-10 Майкрософт Корпорейшн Механизм одноранговой широковещательной передачи информационного содержания
WO2010033961A1 (en) * 2008-09-22 2010-03-25 Riverbed Technology, Inc. Storage system for data virtualization and deduplication

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920700A (en) * 1996-09-06 1999-07-06 Time Warner Cable System for managing the addition/deletion of media assets within a network based on usage and media asset metadata
JP3171160B2 (ja) * 1998-03-20 2001-05-28 日本電気株式会社 圧縮ファイルサーバ方式
WO2000045274A1 (fr) * 1999-01-29 2000-08-03 Digitaldesign, Co., Ltd. Procede de transmission de donnees, support lisible par un ordinateur et appareil de transmission de donnees
JP3598495B2 (ja) * 1999-01-29 2004-12-08 株式会社 デジタルデザイン データ転送方法、コンピュータ読み取り可能な記録媒体及びデータ転送システム
AU2001238269B2 (en) * 2000-02-18 2006-06-22 Emc Corporation Hash file system and method for use in a commonality factoring system
US6990547B2 (en) * 2001-01-29 2006-01-24 Adaptec, Inc. Replacing file system processors by hot swapping
US7054927B2 (en) * 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
US6944740B2 (en) * 2002-03-27 2005-09-13 International Business Machines Corporation Method for performing compressed I/O with memory expansion technology
JP3979183B2 (ja) * 2002-05-27 2007-09-19 日本電気株式会社 データ共有システム及びディスク装置へのアクセス方法並びにプログラム
US7181578B1 (en) * 2002-09-12 2007-02-20 Copan Systems, Inc. Method and apparatus for efficient scalable storage management
US20050138011A1 (en) * 2003-12-23 2005-06-23 Royer Robert J.Jr. Meta-data storage and access techniques
US7130956B2 (en) * 2004-02-10 2006-10-31 Sun Microsystems, Inc. Storage system including hierarchical cache metadata
US7243110B2 (en) * 2004-02-20 2007-07-10 Sand Technology Inc. Searchable archive
US7533181B2 (en) * 2004-02-26 2009-05-12 International Business Machines Corporation Apparatus, system, and method for data access management
US7383382B2 (en) * 2004-04-14 2008-06-03 Microsoft Corporation System and method for storage power, thermal and acoustic management in server systems
CA2564967C (en) * 2004-04-30 2014-09-30 Commvault Systems, Inc. Hierarchical systems and methods for providing a unified view of storage information
CN1697327A (zh) * 2004-05-13 2005-11-16 皇家飞利浦电子股份有限公司 一种顺序压缩/解压缩数据的方法及装置
US7386566B2 (en) * 2004-07-15 2008-06-10 Microsoft Corporation External metadata processing
US7657581B2 (en) * 2004-07-29 2010-02-02 Archivas, Inc. Metadata management for fixed content distributed data storage
US7594075B2 (en) * 2004-10-20 2009-09-22 Seagate Technology Llc Metadata for a grid based data storage system
US7320008B1 (en) * 2004-12-20 2008-01-15 Veritas Operating Corporation Data protection mechanism
US7548657B2 (en) * 2005-06-25 2009-06-16 General Electric Company Adaptive video compression of graphical user interfaces using application metadata
JP2009509218A (ja) * 2005-09-01 2009-03-05 アストラグループ エイエス(ア ノルウェギアン カンパニー) ポストレコーディング分析
US7555715B2 (en) * 2005-10-25 2009-06-30 Sonic Solutions Methods and systems for use in maintaining media data quality upon conversion to a different data format
US7587569B2 (en) * 2005-12-19 2009-09-08 Yahoo! Inc. System and method for removing a storage server in a distributed column chunk data store
DE602006000817T2 (de) * 2006-02-03 2008-07-17 Research In Motion Ltd., Waterloo System und Methode für steuernde Datenkommunikation zwischen einem Server und einer Client-Vorrichtung
US7747831B2 (en) * 2006-03-20 2010-06-29 Emc Corporation High efficiency portable archive and data protection using a virtualization layer
US8412682B2 (en) * 2006-06-29 2013-04-02 Netapp, Inc. System and method for retrieving and using block fingerprints for data deduplication
US20080052328A1 (en) * 2006-07-10 2008-02-28 Elephantdrive, Inc. Abstracted and optimized online backup and digital asset management service
US20080243769A1 (en) * 2007-03-30 2008-10-02 Symantec Corporation System and method for exporting data directly from deduplication storage to non-deduplication storage
JP5061797B2 (ja) * 2007-08-31 2012-10-31 ソニー株式会社 伝送システムおよび方法、伝送装置および方法、受信装置および方法、プログラム、並びに記録媒体
US7941409B2 (en) * 2007-09-11 2011-05-10 Hitachi, Ltd. Method and apparatus for managing data compression and integrity in a computer storage system
US7797279B1 (en) * 2007-12-31 2010-09-14 Emc Corporation Merging of incremental data streams with prior backed-up data
US8300823B2 (en) * 2008-01-28 2012-10-30 Netapp, Inc. Encryption and compression of data for storage
US8176269B2 (en) * 2008-06-30 2012-05-08 International Business Machines Corporation Managing metadata for data blocks used in a deduplication system
US8738621B2 (en) * 2009-01-27 2014-05-27 EchoStar Technologies, L.L.C. Systems and methods for managing files on a storage device
US7987162B2 (en) * 2009-03-06 2011-07-26 Bluearc Uk Limited Data compression in a file storage system
US8205065B2 (en) * 2009-03-30 2012-06-19 Exar Corporation System and method for data deduplication
CN101582076A (zh) * 2009-06-24 2009-11-18 浪潮电子信息产业股份有限公司 一种基于数据库的重复数据删除方法
US9191437B2 (en) * 2009-12-09 2015-11-17 International Business Machines Corporation Optimizing data storage among a plurality of data storage repositories
US8370297B2 (en) * 2010-03-08 2013-02-05 International Business Machines Corporation Approach for optimizing restores of deduplicated data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2343536C2 (ru) * 2002-12-02 2009-01-10 Майкрософт Корпорейшн Механизм одноранговой широковещательной передачи информационного содержания
WO2010033961A1 (en) * 2008-09-22 2010-03-25 Riverbed Technology, Inc. Storage system for data virtualization and deduplication

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10705761B2 (en) 2018-09-14 2020-07-07 Yandex Europe Ag Method of and system for scheduling transmission of I/O operations
US11055160B2 (en) 2018-09-14 2021-07-06 Yandex Europe Ag Method of determining potential anomaly of memory device
US11061720B2 (en) 2018-09-14 2021-07-13 Yandex Europe Ag Processing system and method of detecting congestion in processing system
US11449376B2 (en) 2018-09-14 2022-09-20 Yandex Europe Ag Method of determining potential anomaly of memory device
US10908982B2 (en) 2018-10-09 2021-02-02 Yandex Europe Ag Method and system for processing data
US11048547B2 (en) 2018-10-09 2021-06-29 Yandex Europe Ag Method and system for routing and executing transactions
US11288254B2 (en) 2018-10-15 2022-03-29 Yandex Europe Ag Method of and system for processing request in distributed database
US10996986B2 (en) 2018-12-13 2021-05-04 Yandex Europe Ag Method and system for scheduling i/o operations for execution
US11003600B2 (en) 2018-12-21 2021-05-11 Yandex Europe Ag Method and system for scheduling I/O operations for processing
RU2720951C1 (ru) * 2018-12-29 2020-05-15 Общество С Ограниченной Ответственностью "Яндекс" Способ и распределенная компьютерная система для обработки данных
US11010090B2 (en) 2018-12-29 2021-05-18 Yandex Europe Ag Method and distributed computer system for processing data
US11184745B2 (en) 2019-02-06 2021-11-23 Yandex Europe Ag Actor system and method for transmitting a message from a first actor to a second actor

Also Published As

Publication number Publication date
JP2013534007A (ja) 2013-08-29
RU2012154625A (ru) 2014-06-27
US20110314070A1 (en) 2011-12-22
AU2011268033A1 (en) 2012-12-20
JP5819416B2 (ja) 2015-11-24
CN102947815B (zh) 2016-01-20
HK1182493A1 (zh) 2013-11-29
KR20130095194A (ko) 2013-08-27
EP2583186A2 (en) 2013-04-24
CN102947815A (zh) 2013-02-27
WO2011159517A2 (en) 2011-12-22
WO2011159517A3 (en) 2012-04-05
CA2799976A1 (en) 2011-12-22
MX2012014730A (es) 2013-01-22
BR112012032407A2 (pt) 2019-09-24

Similar Documents

Publication Publication Date Title
RU2581551C2 (ru) Способ оптимизации хранения и передачи данных
US9262434B1 (en) Preferential selection of candidates for delta compression
US8972672B1 (en) Method for cleaning a delta storage system
US9268783B1 (en) Preferential selection of candidates for delta compression
US20120089579A1 (en) Compression pipeline for storing data in a storage cloud
US9405764B1 (en) Method for cleaning a delta storage system
US20120089775A1 (en) Method and apparatus for selecting references to use in data compression
US20150006475A1 (en) Data deduplication in a file system
US9984093B2 (en) Technique selection in a deduplication aware client environment
US9477682B1 (en) Parallel compression of data chunks of a shared data object using a log-structured file system
US10135462B1 (en) Deduplication using sub-chunk fingerprints
US9400610B1 (en) Method for cleaning a delta storage system
US8645335B2 (en) Partial recall of deduplicated files
US10680645B2 (en) System and method for data storage, transfer, synchronization, and security using codeword probability estimation
US20110167173A1 (en) Optimal Compression Process Selection Methods
US9026740B1 (en) Prefetch data needed in the near future for delta compression
US20180357217A1 (en) Chunk compression in a deduplication aware client environment
US10303391B2 (en) System and method for data storage, transfer, synchronization, and security
CN113508373B (zh) 分布式的基于元数据的集群计算
US10706018B2 (en) Bandwidth-efficient installation of software on target devices using reference code libraries
US11868616B2 (en) System and method for low-distortion compaction of floating-point numbers
US9116902B1 (en) Preferential selection of candidates for delta compression
US20240080040A1 (en) System and method for data storage, transfer, synchronization, and security using automated model monitoring and training
US20240187502A1 (en) Multi-objective compression for data tiering in a stream data platform
US11971856B2 (en) Efficient database query evaluation

Legal Events

Date Code Title Description
HZ9A Changing address for correspondence with an applicant
MM4A The patent is invalid due to non-payment of fees

Effective date: 20170607