RU2581551C2 - Способ оптимизации хранения и передачи данных - Google Patents
Способ оптимизации хранения и передачи данных Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/173—Customisation support for file systems, e.g. localisation, multi-language support, personalisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic 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, при этом метаданные предоставляют упомянутую отличающуюся форму данных файла в том виде, как они сохранены на сервере хранения данных.
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)
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)
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)
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)
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 |
-
2010
- 2010-06-18 US US12/818,515 patent/US20110314070A1/en not_active Abandoned
-
2011
- 2011-06-06 MX MX2012014730A patent/MX2012014730A/es active IP Right Grant
- 2011-06-06 BR BR112012032407A patent/BR112012032407A2/pt not_active IP Right Cessation
- 2011-06-06 WO PCT/US2011/039318 patent/WO2011159517A2/en active Application Filing
- 2011-06-06 JP JP2013515377A patent/JP5819416B2/ja not_active Expired - Fee Related
- 2011-06-06 CA CA2799976A patent/CA2799976A1/en not_active Abandoned
- 2011-06-06 RU RU2012154625/08A patent/RU2581551C2/ru not_active IP Right Cessation
- 2011-06-06 KR KR1020127032957A patent/KR20130095194A/ko active Search and Examination
- 2011-06-06 AU AU2011268033A patent/AU2011268033A1/en not_active Abandoned
- 2011-06-06 EP EP11796187.0A patent/EP2583186A2/en not_active Withdrawn
- 2011-06-06 CN CN201180029757.8A patent/CN102947815B/zh not_active Expired - Fee Related
-
2013
- 2013-08-22 HK HK13109820.2A patent/HK1182493A1/zh not_active IP Right Cessation
Patent Citations (2)
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)
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 |