RU2643651C2 - Система и способ для вычисления дайджеста сообщений - Google Patents

Система и способ для вычисления дайджеста сообщений Download PDF

Info

Publication number
RU2643651C2
RU2643651C2 RU2016116679A RU2016116679A RU2643651C2 RU 2643651 C2 RU2643651 C2 RU 2643651C2 RU 2016116679 A RU2016116679 A RU 2016116679A RU 2016116679 A RU2016116679 A RU 2016116679A RU 2643651 C2 RU2643651 C2 RU 2643651C2
Authority
RU
Russia
Prior art keywords
data
host
storage device
message
data storage
Prior art date
Application number
RU2016116679A
Other languages
English (en)
Other versions
RU2016116679A (ru
Inventor
Джавад Б. ХАН
Кнут С. ГРИМСРУД
Ричард Л. КУЛСАН
Original Assignee
Интел Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Интел Корпорейшн filed Critical Интел Корпорейшн
Publication of RU2016116679A publication Critical patent/RU2016116679A/ru
Application granted granted Critical
Publication of RU2643651C2 publication Critical patent/RU2643651C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/402Encrypted data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure

Landscapes

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

Abstract

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

Description

Уровень техники
Твердотельный диск (SSD) представляет собой устройство хранения данных высокой производительности, который не содержит движущихся частей. SSD имеют значительно высокое быстродействие, чем обычные накопители на жестких дисках (HDD) с обычными вращающимися магнитными носителями и, как правило, включают в себя контроллер для управления хранением данных. Контроллер управляет операциями SSD, включающие в себя хранение и доступа к данным, а также обеспечивает связь между SSD и хост-устройством. Алгоритм дедупликации данных является механизмом, в котором идентифицируется дублирование любого заданного набора данных и осуществляется перекрестные ссылки, и только уникальные шаблоны данных записываются на носитель информации и все дубликаты будут захвачены как указатели на уникальные наборы данных, как правило, блоки. Если есть дублирование в потоке данных, то этот способ позволяет системе существенно сократить объем данных, записанных на диск.
Краткое описание чертежей
Вышеизложенное описание и другие задачи, признаки и преимущества настоящего изобретения будут очевидны из следующего описания конкретных вариантов осуществления изобретения, как показано на прилагаемых чертежах, на которых одинаковые ссылочные позиции используются для обозначения тех же самых частей на различных видах. Чертежи не обязательно выполнены в масштабе, вместо этого, внимание сфокусировано на иллюстрировании принципов изобретения.
Фиг. 1а-1с показывают контекст вариантов реализации для вычисления дайджеста сообщения;
Фиг. 2 показывает блок-схему алгоритма вычисления дайджеста сообщения, как описано здесь;
Фиг. 3 показывает блок-схему устройства для вычисления дайджеста сообщения, как показано на фиг. 2;
Фиг. 4 показывает блок-схему алгоритма хост-интерфейса для вычисления дайджеста сообщения; и
Фиг. 5 показывает блок-схему алгоритма интерфейса устройства для вычисления дайджеста сообщения.
Описание вариантов осуществления
Подход дедупликации данных использует аппаратное ускорение в массовых запоминающих устройствах, таких как HDDs и SSD для выполнения операций дедублирования и поддержки присоединенного хоста, тем самым избавляя хоста от вычислительной нагрузки вычисления хэша для обработки дедублирования (дедубликация). Обработка дедублирования обычно включают в себя вычисление и сравнение дайджестов сообщений (MD) и/или хэш-функций. Функции MD применяются к оригинальному элементу данных, чтобы генерировать меньший, но уникальный идентификатор, такой, что любое изменение данных изменит значение дайджеста, и часто используется также для криптографических операций, таких как шифрование и аутентификация. Часто SSD включают в себя встроенные аппаратные ускорители для функций MD, ассоциированных с признаками безопасности SSD. Тем не менее, аппаратные ускорители также могут использоваться для вычисления результата дайджеста (MD) и возврата результата в хост, эффективно разгружая нагрузку MD вычислений с хоста, аналогично на внешний аппаратный ускоритель, но без перенаправления данных, так как вычисление выполняется на потоке данных, проходящих через SSD для хранения.
Конфигурации здесь основаны, в частности, на наблюдении, что дайджест сообщения и хэш-операции, как правило, имеют тенденцию к интенсификации вычислений, что может потребовать значительных CPU циклов для больших объемов данных. К сожалению, традиционные подходы к операциям дедубликации имеют недостаток, который заключается в том, что требуются дополнительные накладные расходы для вычислений MD на хосте или требуется наличие и использование дорогостоящих аппаратных систем, которые перенаправляют данные, дополнительно препятствуя повышению производительности и увеличению стоимости. Тем не менее, встроенные аппаратные ускорители, расположенные в современных SSDs, не могут быть полностью использованы собственными операциями по обеспечению безопасности в SSD, и возможности SSD аппаратных ускорителей могут быть использованы хостом для MD вычислений. Соответственно, конфигурации, описанные здесь, по существу, преодолевают описанные выше недостатки, посредством использования встроенных аппаратных ускорителей SSD для приема запросов на дайджест сообщения из хоста и возвращает результаты хеш/дайджеста в хост.
Описанный подход предлагает способ ускорения процесса дедубликации данных (форма сжатия данных) за счет ускорения выполнения операции вычисления хэш-дайджеста на самом SSD. Архитектура и структура SSD предлагает уникальную возможность для ускорения вычисления дайджеста в аппаратных средствах посредством сквозной распределенной архитектуры вычислений хэш-дайджеста. В предлагаемом подходе, поскольку потоки данных проходят через SSD, SSD вычисляет дайджесты и отправляет их обратно на хост для сопоставления с дайджестом дедупликации, обеспечивая низкую стоимость, высокую производительность и эффективное энергопотребление посредством поддержки дедупликации. В рамках всей системы шифрования диска, SSD уже имеет собственные доступные HW компоненты, например, усовершенствованный стандарт шифрования (AES)/дешифрования и SHA-256 вычислений дайджеста. SSD уже выполняет преобразование данных, такое как AES шифрование/дешифрование, так как потоки данных проходят через него. Добавление потока, подвергнутого вычислению SHA дайджеста, следовательно, вызывает лишь незначительные дополнительные затраты, так как в большинстве конструкций HW аппаратные ускорители для вычисления уже доступны в контроллере SSD. Описываются две различные конфигурации реализации вычисления дайджеста, включающие в себя в способ линейного вычисления и автономный способ вычисления. Они могут быть использованы по отдельности или в сочетании друг с другом.
Конфигурации, описанные здесь, позволяют вычислить дайджесты в SSD. Этот подход снижает латентность, так как данные подаются параллельно выделенному HW аппаратному ускорителю. Такой подход также энергоэффективен, так как данные не передаются в систему динамической памяти с произвольным доступом (DRAM) или к выделенному HW аппаратному ускорителю, которые оба потребляют больше энергии для выполнения той же операции. Подход разгружает центральный процессор (CPU) для вычисления дайджестов и позволяет распределить процесс вычисления между несколькими драйверами в подсистеме хранения данных.
Процесс дедупликации данных включает в себя идентификацию блоков данных, которые имеют идентичный контент. Традиционно, дайджесты сообщений вычисляются с использованием безопасных алгоритмов хэширования (SHA-256) или других алгоритмов вычислений дайджестов. Обычно 256 битовые или 32 байтовые или меньшего размера дайджесты вычисляются для каждого блока данных, которые могут изменяться по длине от 512 байт до 4096 байт или более. Путем сравнения дайджестов, можно легко определить, идентичен ли блок другому блоку или нет.
В традиционных подходах, как обсуждалось выше, системы дедупликации данных могут быть полностью основаны на SW, где вычисление дайджеста и сравнение с предшествующими дайджестами выполняется в SW, который имеет тенденцию нагружать процессор хоста. Есть также HW ускорители, которые могут быть присоединены к системам хранения данных в центре обработки данных, которые выполняют вычисление дайджеста и некоторую часть сравнения дайджестов в HW, однако такой подход, как правило, существенно увеличивает расходы.
Пример архитектуры системы, использующей предлагаемый подход вычислений дайджеста на самом SSD, показан ниже на фиг. 1с. Способ вычисления дайджеста представляет собой поточный, без сохранения состояний способ вычисления, который особенно хорошо подходит для использования на контроллере SSD. Контроллер SSD осуществляет мониторинг записанных данных и вычисляет дайджесты в HW для каждого блока, проходящего через него. Рассчитанные дайджесты возвращаются в хост при завершении команды. Эта архитектура показана более подробно на фиг. 3. Кроме того, обеспечивается минимальные дополнительные расходы для усовершенствования контроллера SSD, чтобы реализовать поточный способ вычисления дайджеста для поддержки раскрытого подхода.
Фигуры 1а-1с показывают контекст вариантов реализации для вычисления дайджеста сообщения. Как показано на фигурах 1а-1с, фиг. 1а иллюстрирует традиционный подход к обнаружению дублирования (дедублирования), используя дайджесты сообщений. На фиг. 1а, хост-система 100 имеет CPU 102 и память (DRAM) 104 для выполнения приложения, и использует один или несколько SSDs 120-1…120-4 (120 в целом) для массового хранения. Хост-система 100 использует приложение дедубликации или утилиту 110 для выполнения вычислений дедубликации в программном обеспечении на хосте 100 и запрашивает 108 для хранения, рассматривая и сравнивая с выявлением дублирования (как правило, дублируются сектора, страницы или блоки). На фиг. 1а, обнаружение дедублирования снижает общую производительность CPU 102 за счет ресурсов, необходимых для выполнения вычисления дайджеста и сравнения. Программная реализация также обычно занимает больше времени для выполнения, чем подход, основанный на аппаратном или аппаратно-программном обеспечении.
Фиг. 1b показывает хост 100 с выделенными периферийными аппаратными средствами дедупликации или картой 130 примененные из оптимизированного кода 111 для перенаправления запросов 108 ввода/вывода в выделенные аппаратные средства 130 дедупликации. Подход, предусматривающий использование выделенных аппаратных средств, эффективен, но требует затрат на дополнительный аппаратный элемент и также требует запроса 108 на перенаправление ввода/вывода для выполнения процесса обработки посредством аппаратных средств 130.
Фиг. 1с показывает встроенные аппаратные ускорители 150-1…150-4 в SSD. Как показано на фиг. 1с, в отличие от традиционных подходов, описанных здесь конфигураций, используется аппаратный ускоритель, размещенный на SSD, который уже используется хостом 100 для запросов 108 ввода/вывода. SSDs часто используют специализированные аппаратные средства для обеспечения безопасности и/или операций шифрования для данных, хранящихся на нем. Вместо того чтобы занимать циклы процессора хоста или перенаправлять процесс обработки дорогостоящих аппаратных средств 130, применяются встроенные аппаратные ускорители 150-1…150-4 дедупликации на SSD 140-1…140-4. Инструкции 112 дедупликации хоста вызывают аппаратный ускоритель 150 для генерации дайджестов и принимают результаты 152 дедупликации дайджеста в ответ на запросы 154. Кроме того, ускоритель аппаратных средств 150 работает на потоке 108 данных, которые уже проходят через SSD для удовлетворения запросов I/O хоста, поэтому дополнительные выборки и записи для операций дедупликации исключаются. Таким образом, ускоритель аппаратных средств 150 дедупликации вызывается хостом 100 для выполнения операций дедупликации, которые в противном случае нагружают хост 100 вычислением (фиг. 1а) или перенаправляют (фиг. 1b) данные для операций дедупликации.
Фиг. 2 показывает блок-схему алгоритма процесса вычисления дайджеста сообщения, как описано здесь. Со ссылкой на фиг. 1с и фиг. 2, на этапе 200 способ хранения данных, как раскрыто в описании, включает в себя пополнение устройства хранения данных, такого как SSD 140, аппаратными ускорителями 150 для выполнения сжатия и функций безопасности на данных, посылаемых с хоста 100, чтобы храниться на устройстве хранения данных. В примере конфигурации, аппаратные ускорители 150 являются блоками шифрования, расположенными на устройстве хранения данных, и выполнены с возможностью шифровать, дешифровать и безопасно выполнять хэш-вычисления, как показано на этапе 201. Так как аппаратные ускорители 150 уже установлены на SSD 140 для поддержки выполнения безопасного шифрования и аутентификации, то не требуются какие-либо дополнительные производственные затраты для использования дедупликации.
Хост 100 вызывает аппаратные ускорители 150 на основе команды или запроса 154 из хоста 100, чтобы вычислить результат 152, как показано на этапе 202. SSD 140 возвращает результат 152 вычисленного дайджеста в хост 100, в котором вычисление дайджеста является поточным, без сохранения состояния вычислением, которое применяется к данным, проходящим из хоста 100 в запоминающее устройство для хранения на устройстве хранения данных, как показано на этапе 203. В примерной структуре, вычисленный результат 152 представляет собой дайджест сообщения, как описано на этапе 204, для сравнения с дайджестами других сохраненных блоков для поддержки операций дедупликации.
Фиг. 3 показывает блок-схему устройства для вычисления дайджеста сообщения, как показано на фиг. 2. Со ссылкой на фиг. 1 и 3, SSD 140 включает в себя встроенные один или несколько аппаратных ускорителей 150-11, 150-12 (в общем, 150) в SSD и используемые для выполнения признаков безопасности в SSD. Тем не менее, в дополнение к этим встроенным функциям SSD, аппаратный ускоритель 150-11 для линейного вычисления дайджеста обеспечивает линейное вычисление дайджестов сообщений посредством анализа данных или мониторинга, как показано линией 152, что неразрушающее считывает поток 108-1 записи с хоста. Линейный неразрушающий способ позволяет избежать влияния на производительность, что будет влиять при использовании способа перенаправления и/или копирования данных в буфер для отдельных MD вычислений, как показано ранее на фиг. 1а и 1b. Автономное ускорение HW 150-12 вычисления дайджеста выполняется аналогично вычислению дайджеста в автономном режиме для запросов 154 из хоста, которые являются объемными или несрочными. В обоих случаях, MD результаты 152 возвращаются в хост 100 в ответ на запрос 154 хоста, позволяющий эффективно работать хосту 100 для реализации возможности SSD 140 вычисления дайджеста без перенаправления и/или без вовлечения отдельного выделенного аппаратного средства 130 для вычисления дайджеста, так как SSD ускорители 150 имеют поток 108-1 легкодоступных данных, и могут выполнять вычисление дайджеста с отсутствием или минимальным воздействием на нормальную SSD производительность
В SSD 140, SSD контроллер 160 включает в себя логику 162 управления SSD, которая направляет запрос 154 хоста для передачи управляющих сигналов 164 к аппаратному ускорителю 150-11. Вычисленные дайджесты 156 направляются в буфер 170 передачи, обычно представляющий собой SRAM, который буферизует данные, хранящиеся и извлекаемые из SSD 140. Арбитр 172 направляет проверенные данные на носитель 180-1…180-N (180 в общем) памяти, как правило, NAND память, для хранения в соответствии с исходным запросом на хранение из хоста 100, в то время как вычисленный дайджест 152 отправляется обратно на хост 100.
Фиг. 4 показывает блок-схему алгоритма работы хост-интерфейса для вычисления дайджеста сообщения. Как показано на фиг. 3 и 4, хост 100 вовлекает SSD 140 для выполнения вычисления дайджеста и принимает результат 152, основанный на вычисленном хэш (дайджест), так как хешированные данные проходят через SSD для хранения на носителе 180 в SSD 140. Хост 100 посылает первый блок данных в устройство 140 хранения для хранения на носителе 180 для хранения и идентифицирует второй блок данных для хранения на устройстве (SSD) 140 хранения данных, как показано на этапе 401. В ответ на это, хост 100 получит первый дайджест сообщения как ответ 152, соответствующий первому блоку данных, поступающий из устройства 140 хранения, таким образом, что принятый первый дайджест сообщения вычисляется с помощью аппаратных ускорителей 150 на устройстве 140 хранения из тракта 152 передачи данных, по которому проходят данные во время хранения на носителе 180 для хранения, как показано на этапе 402. Устройство 140 хранения пассивно анализирует данные, проходящие по тракту 152 данных, направленные на устройство хранения, не требуя дополнительной передачи данных для вычисления дайджеста, как показано на этапе 403.
Аппаратные ускорители 150 вычисляют дайджест данных путем идентификации блока данных (или другого приращения) и, применяя функцию дайджеста к блоку, как он проходит по тракту 108 передачи данных от хоста 100 к устройству 140 хранения для хранения, как показано на этапе 404. Хост 100 передает второй блок данных на устройство 140 хранения, как показано на этапе 405. Первый и второй блоки данных могут не быть последовательными и могут быть разделены другими запросами на хранение. Далее, хост 100 принимает второй дайджест сообщения, соответствующий второму блоку данных из устройства 140 хранения, таким образом, что второй дайджест сообщения используется для сравнения с первым дайджестом сообщения для обнаружения дублирования блоков данных, как это представлено на этапе 406. Обнаружение дубликатов блоков данных (обработка дедупликации) может происходить в любом подходящем интервале, однако процесс оптимизации и настройки параметров будет определять диапазон предыдущих блоков, которые, вероятно, содержат дубликаты, например, в файле, на единицу времени (т.е. фиксированный интервал, такой как N минут) или другие критерии. Устройство 140 хранения возвращает вычисленный результат 152 в интерфейс хоста 100, реагирующий на вычисленные дайджесты сообщений для сравнения и обнаружения дублирования с другими блоками данных, как описано на этапе 407.
Фиг. 5 показывает блок-схему алгоритма работы интерфейса устройства для вычисления дайджеста сообщения. Как показано на фиг. 3 и 5, на этапе 500, способ обнаружения дублирования данных, как раскрыто в описании, включает в себя вызов встроенного аппаратного ускорителя 150, выполненного с возможностью вычислять дайджест сообщения на основании команды или запроса 154 от хоста 100 и применяемого к данным, передаваемым по тракту 108-1 передачи данных от хоста 100 на носитель 180 данных на устройстве 140 хранения. В примерной конфигурации, аппаратные ускорители 150 представляют собой блоки шифрования, расположенные на устройстве 140 хранения и выполнены с возможностью выполнять шифрование, дешифрование и безопасные хэш-вычисления, как показано на этапе 501. Решение принимается на этапе 502 на основании запроса 154 на выполнение вычислений в режиме онлайн или в автономном режиме. Если запрашивается онлайн режим вычисления, то аппаратные ускорители 140 вычисляют дайджест данных путем идентификации блока данных, и применяя функцию дайджеста к блоку, проходящему по тракту 152 передачи данных от хоста 100 на устройство 140 хранения для хранения на носителе 180 хранения, как показано на этапе 503. В примерной компоновке, это включает в себя осуществление неразрушительного мониторинга данных, которые должны быть сохранены, таким образом, чтобы мониторинг осуществлялся, так чтобы обеспечить данным, принятым на устройстве хранения данных от хоста по тракту 108-1 передачи данных и разветвленных или пассивно "проанализированных" по линии 152 данных, беспрепятственное дальнейшее хранение, как показано на этапе 504. Таким образом, аппаратные ускорители 140 вычисляют дайджест сообщения данных, переданных по тракту 108-1 передачи данных, как данных переданных от хоста 100 на носитель 180 хранения, как показано на этапе 505. Способ вычисления дайджеста является поточным без сохранения состояния способом вычисления, применяемым к данным, передаваемым от хоста 100 к устройству 140 хранения для хранения на компоненте носителе или носителе 180 данных устройства 140 хранения, как описано на этапе 506. Этот подход позволяет избежать задержки, так как данные подаются параллельно выделенному HW блоку ускорения. Такой подход также является энергоэффективным, так как данные не передаются в систему DRAM или выделенному внешнему HW блоку ускорения, которые оба потребляют больше энергии для выполнения той же операции. Подход разгружает CPU хоста от вычисления дайджестов и допускает распределенное вычисление среди большого количества дисков (запоминающих устройств 140) в подсистеме хранения. Аппаратные ускорители 150 поэтому вычисляют дайджест сообщения без перенаправления данных от тракта 108-1 передачи данных на носитель 180 хранения, а всего лишь анализируют или наблюдают за данными, как показано на этапе 507. Затем данные записываются (одновременно или в любом конкретном порядке) на носителе 180 хранения, как показано на этапе 510.
Если аппаратные ускорители 150 используются для автономного вычисления, согласно проверке на этапе 502, то выполняются автономные вычисления. В способе онлайн дайджесты вычисляются как данные, проходящие через SSD для каждой выполняемой операции записи. Как правило, это наиболее эффективный способ вычисления дайджестов. Тем не менее, хост 100 может запросить дайджесты для других блоков, которые уже присутствуют на SSD, для которых запрос 154 инициирует автономный режим, когда данные считываются с носителя в буфер передачи, как правило, определенный посредством статической памятью с произвольным доступом (SRAM), и автономный блок 150-12 обрабатывает эти данные для вычисления дайджестов. После того как дайджесты будут вычислены, они направляются на хост 100 для проверки соответствия. Соответственно, автономное вычисление включает в себя идентификацию блоков данных, ранее записанных на носителе 180 данных на устройстве 140 хранения, как показано на этапе 508, и извлечение идентифицированных блоков в буфер дайджеста для автономного вычисления, как показано на этапе 509. В любом случае, устройство 140 хранения возвращает вычисленный дайджест сообщения в хост 100 в качестве ответа 152, как показано на этапе 511.
Специалистам в данной области техники должно быть понятно, что программы и способы, определенные в настоящем документе, являются компонентами обработки пользователя и устройства обработки в различных формах, включающие в себя, но не ограничиваясь этим, а) информацию, постоянно хранящуюся на неперезаписываемых носителях, таких как устройства ROM, b) изменяемую информацию, хранящуюся на перезаписываемых непреходящих носителях, таких как дискеты, диски, магнитные ленты, компакт-диски, устройства оперативной памяти и другие магнитные и оптические носители информации, или с) информацию, переданную на компьютер через средства коммуникации как по электронной сети, такой как интернет или телефонные линии модема. Операции и способы могут быть реализованы в программном обеспечении или как набор закодированных инструкций для исполнения процессором в ответ на инструкции. В качестве альтернативы операции и способы, раскрытые в данном документе, могут быть реализованы полностью или частично с использованием аппаратных компонентов, таких как специализированные интегральные схемы (ASIC), программируемые пользователем вентильные матрицы (FPGA), конечные автоматы, контроллеры или другие аппаратные компоненты или устройства или сочетание аппаратных средств, программного обеспечения и компонентов встроенного программного обеспечения.
В то время как система и способы, определенные в настоящем документе, были показаны и описаны со ссылками на варианты его осуществления, должно быть понятно специалистам в данной области техники, что различные изменения в форме и деталях могут быть сделаны без отступления от сущности и объема настоящего изобретения, охватываемого прилагаемой формулой изобретения.

Claims (51)

1. Способ обнаружения дублирования данных, содержащий этапы, на которых
принимают первый запрос на сохранение первого блока данных в устройстве хранения данных, соединенном с хостом;
вычисляют посредством использования аппаратного ускорителя в устройстве хранения данных первый дайджест сообщения для первого блока данных в ответ на прием первой команды на вычисление первого дайджеста сообщения в сочетании с выполнением первого запроса на сохранение,
сохраняют первый блок данных на носителе информации устройства хранения данных;
принимают второй запрос на сохранение второго блока данных в устройстве хранения данных;
вычисляют посредством использования аппаратного ускорителя второй дайджест сообщения для второго блока данных в ответ на прием второй команды на вычисление второго дайджеста сообщения в сочетании с выполнением второго запроса на сохранение;
сохраняют второй блок данных на носителе информации в устройстве хранения данных; и
передают первый и второй дайджесты сообщения в хост для обеспечения сравнения хостом первого дайджеста сообщения и второго дайджеста сообщения для обнаружения дублирования блоков данных.
2. Способ по п. 1, содержащий этап, на котором вычисляют первый и второй дайджесты сообщения без перенаправления соответствующих первого и второго блоков данных из тракта передачи данных к носителю информации.
3. Способ по п. 1 или 2, содержащий этап, на котором выполняют неинвазивный мониторинг первого и второго блоков данных, подлежащих сохранению в устройстве хранения данных, причем неинвазивный мониторинг выполняется при приеме соответствующих первого и второго блоков данных в устройстве хранения данных из хоста.
4. Способ по п. 1 или 2, в котором вычисление первого и второго дайджестов сообщения является поточным без сохранения состояния вычислением, применяемым к соответствующим первому и второму блокам данных, проходящим из хоста в устройство хранения данных.
5. Способ по п. 1 или 2, в котором на этапе вычисления первого и второго дайджестов данных отдельно применяют с помощью аппаратных ускорителей функцию дайджеста к первому и второму блокам данных, когда первый и второй блоки данных проходят по тракту передачи данных от хоста к устройству хранения данных.
6. Способ по п. 1 или 2, в котором аппаратные ускорители выполнены с возможностью выполнять сжатие и функции безопасности для данных, проходящих между хостом и устройством хранения данных, причем функции безопасности включаются в себя функции шифровать, дешифровать и безопасно вычислять хэш-функцию.
7. Способ по п. 1 или 2, дополнительно содержащий этапы, на которых
идентифицируют третьи блоки данных, ранее записанные на носитель информации;
извлекают третьи блоки в буфер дайджеста для вычисления дайджеста сообщения в автономном режиме;
вычисляют с помощью аппаратных ускорителей для вычисления третьего дайджеста сообщения для третьего блока данных, хранящегося в буфере; и
передают третий дайджест сообщения в хост для обеспечения сравнения хостом третьего дайджеста сообщения с одним и более другими дайджестами сообщения, ранее переданными из устройства хранения данных, для обнаружения дублирования блоков данных, хранящихся в устройстве хранения данных.
8. Устройство хранения данных, содержащее:
интерфейс, соединенный с хост-устройством;
носитель информации;
аппаратный ускоритель, выполненный с возможностью вычислять дайджесты сообщения для соответствующих блоков данных, принятых от хост-устройства, причем соответствующие блоки данных подлежат прохождению по тракту передачи данных от хоста к носителю информации, при этом аппаратный ускоритель выполнен с возможностью вычисления дайджестов сообщения в ответ на отдельные команды от хост-устройства для соответствующих запросов на сохранение соответствующих блоков данных на носителе информации, причем дайджесты сообщений вычисляются совместно с выполнением соответствующих запросов на сохранение, вычисленные дайджесты сообщения передаются в хост-устройство через интерфейс, а хост-устройство выполнено с возможностью использовать вычисленные дайджесты сообщения для обнаружения дублирования блоков данных, хранящихся на носителе информации.
9. Устройство хранения данных по п. 8, в котором аппаратный ускоритель выполнен с возможностью вычислять дайджесты сообщения без перенаправления соответствующих блоков данных из тракта передачи данных от хост-устройства на носитель информации.
10. Устройство хранения данных по п. 8 или 9, в котором аппаратный ускоритель выполнен с возможностью реализовать неинвазивный мониторинг данных, подлежащих сохранению, причем мониторинг осуществляется при приеме данных в устройстве хранения данных от хоста.
11. Устройство хранения данных по п. 8 или 9, в котором аппаратный ускоритель дополнительно выполнен с возможностью выполнять сжатие и функции безопасности для данных, проходящих между хост-устройством и устройством хранения данных, причем функции безопасности включают в себя функции шифровать, дешифровать и безопасно вычислять хэш-функцию.
12. Устройство хранения данных по п. 8 или 9, в котором вычисление вычисляемых дайджестов сообщения является поточным без сохранения состояния вычислением, применяемым к соответствующим блокам данных при прохождении соответствующих блоков данных от хост-устройства к устройству хранения данных.
13. Устройство хранения данных по п. 8 или 9, в котором аппаратный ускоритель дополнительно содержит автономные модули, причем автономные модули выполнены с возможностью
идентификации одного или более блоков данных, ранее записанных на носитель данных,
извлечения упомянутого одного или более блоков данных и сохранения упомянутого одного или более блоков данных в буфере для автономного вычисления дайджеста сообщения;
вычисления одного или более соответствующих дайджестов сообщения для указанного одного или более блоков данных, хранящихся в буфере; и
обеспечения передачи указанного одного или более соответствующих дайджестов сообщения в хост-устройство для обеспечения сравнения хост-устройством указанного одного или более соответствующих дайджестов сообщения с одним или более другими дайджестами сообщения, ранее переданными из устройства хранения данных, для обнаружения дублирования блоков данных, хранящихся на носителей информации.
14. Энергонезависимый машиночитаемый носитель информации, содержащий закодированные на нем команды, которые при выполнении процессором выполняют способ обнаружения дублирования данных, содержащий этапы, на которых:
передают первый запрос на сохранение первого блока данных на носителе информации в устройстве хранения данных, соединенном с хостом;
передают второй запрос на сохранение второго блока данных на носителе информации в устройстве хранения данных;
принимают первый и второй дайджесты сообщения, соответствующие первому и второму блокам данных, сохраненным на носителе информации в устройстве хранения данных, причем принимаемые первый и второй дайджесты сообщения вычислены с помощью аппаратного ускорителя в устройстве хранения данных в сочетании с выполнением устройством хранения данных соответствующих первого и второго запросов на сохранение; и
сравнивают второй дайджест сообщения с первым дайджестом сообщения для обнаружения дублирования блоков данных.
15. Энергонезависимый машиночитаемый носитель информации по п. 14, в котором устройство хранения данных выполнено с возможностью выполнять пассивный мониторинг данных, направленных в устройство хранения данных, не требуя дополнительной передачи данных для вычисления дайджеста сообщения.
16. Энергонезависимый машиночитаемый носитель информации по п. 14 или 15, в котором возвращают вычисленный результат в интерфейс хоста в ответ на вычисленные дайджесты сообщений для сравнения и обнаружения дублирования с другими блоками данных.
17. Энергонезависимый машиночитаемый носитель информации по п. 14 или 15, в котором на этапе вычисления первого и второго дайджестов сообщения отдельно применяют аппаратным ускорителем функцию дайджеста к первому и второму блокам данных при прохождении первым и вторым блоками данных по тракту передачи данных из хоста в устройство хранения данных.
18. Компьютерная система, содержащая:
хост-устройство; и
твердотельный диск, включающий в себя
интерфейс, соединенный с хост-устройством;
носитель информации; и
аппаратный ускоритель, выполненный с возможностью
вычислять дайджесты сообщения для соответствующих блоков данных, принимаемых от хост-устройства, причем соответствующие блоки данных подлежат прохождению по тракту передачи данных от хост-устройства к носителю информации, причем аппаратный ускоритель выполнен с возможностью вычисления дайджестов сообщения в ответ на отдельные команды от хост-устройства для соответствующих запросов на сохранение соответствующих блоков данных на носителе информации, причем дайджесты сообщения вычисляются в сочетании с выполнением соответствующих запросов на сохранение.
19. Компьютерная система, содержащая:
средство для передачи первого запроса на сохранение первого блока данных на носителе информации в устройстве хранения данных, соединенном с хостом;
средство для передачи второго запроса на сохранение второго блока данных на носителе информации в устройстве хранения данных;
средство для приема первого и второго дайджестов сообщения, соответствующих первому и второму блокам данных, сохраненным на носителе информации в устройстве хранения данных, причем принятые первый и второй дайджесты сообщения вычислены с помощью аппаратного ускорителя в устройстве хранения данных в сочетании с выполнением устройством хранения данных соответствующих первого и второго запросов на сохранение; и
средство для сравнения второго дайджеста сообщения с первым дайджестом сообщения для обнаружения дублирования блоков данных.
RU2016116679A 2013-11-27 2014-10-21 Система и способ для вычисления дайджеста сообщений RU2643651C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/091,598 2013-11-27
US14/091,598 US9619167B2 (en) 2013-11-27 2013-11-27 System and method for computing message digests
PCT/US2014/061533 WO2015080813A1 (en) 2013-11-27 2014-10-21 System and method for computing message digests

Publications (2)

Publication Number Publication Date
RU2016116679A RU2016116679A (ru) 2017-11-01
RU2643651C2 true RU2643651C2 (ru) 2018-02-02

Family

ID=53183670

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2016116679A RU2643651C2 (ru) 2013-11-27 2014-10-21 Система и способ для вычисления дайджеста сообщений

Country Status (6)

Country Link
US (2) US9619167B2 (ru)
EP (1) EP3074881A4 (ru)
KR (2) KR101766240B1 (ru)
CN (1) CN105659222B (ru)
RU (1) RU2643651C2 (ru)
WO (1) WO2015080813A1 (ru)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9933838B2 (en) * 2014-09-24 2018-04-03 Seagate Technology Llc Power management in a storage compute device
KR102396435B1 (ko) 2015-08-11 2022-05-11 삼성전자주식회사 불휘발성 메모리 장치, 버퍼 메모리 및 컨트롤러를 포함하는 스토리지 장치를 포함하는 컴퓨팅 장치의 동작 방법
US10359953B2 (en) 2016-12-16 2019-07-23 Western Digital Technologies, Inc. Method and apparatus for offloading data processing to hybrid storage devices
US10353604B2 (en) * 2016-12-27 2019-07-16 Intel Corporation Object transformation in a solid state drive
US11010431B2 (en) 2016-12-30 2021-05-18 Samsung Electronics Co., Ltd. Method and apparatus for supporting machine learning algorithms and data pattern matching in ethernet SSD
US10956346B1 (en) * 2017-01-13 2021-03-23 Lightbits Labs Ltd. Storage system having an in-line hardware accelerator
US10581808B2 (en) 2017-03-23 2020-03-03 Microsoft Technology Licensing, Llc Keyed hash contact table
US10496335B2 (en) 2017-06-30 2019-12-03 Intel Corporation Method and apparatus for performing multi-object transformations on a storage device
US10585819B2 (en) 2018-03-05 2020-03-10 Samsung Electronics Co., Ltd. SSD architecture for FPGA based acceleration
US10585843B2 (en) 2018-03-05 2020-03-10 Samsung Electronics Co., Ltd. SSD architecture for FPGA based acceleration
CN110390516B (zh) * 2018-04-20 2023-06-06 伊姆西Ip控股有限责任公司 用于数据处理的方法、装置和计算机存储介质
KR102570581B1 (ko) 2018-06-07 2023-08-24 삼성전자 주식회사 스토리지 장치와 재구성 가능 로직 칩을 포함하는 스토리지 장치 세트 및 이를 포함하는 스토리지 시스템
CN109302341B (zh) * 2018-10-30 2021-02-02 北京达佳互联信息技术有限公司 即时通信方法、装置、电子设备及存储介质
US11112972B2 (en) 2018-12-05 2021-09-07 Samsung Electronics Co., Ltd. System and method for accelerated data processing in SSDs
CN111506268B (zh) * 2020-04-17 2023-07-18 北京百度网讯科技有限公司 代码文件存储方法、装置和电子设备
CN111738703B (zh) * 2020-05-29 2023-06-02 中国科学院计算技术研究所 一种加速安全散列算法的加速器
US12093258B2 (en) 2020-12-14 2024-09-17 Samsung Electronics Co., Ltd. Storage device adapter to accelerate database temporary table processing
US20210157512A1 (en) * 2021-02-02 2021-05-27 Intel Corporation Flexible configuration of storage device with translation language set
KR20230035947A (ko) 2021-09-06 2023-03-14 삼성전자주식회사 저장 장치 및 그의 동작 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EA010458B1 (ru) * 2004-12-08 2008-08-29 Би-ОБВИЭС ЛТД. Оптимизация двунаправленной пересылки данных и управление содержимым для сетей
US20100306176A1 (en) * 2009-01-28 2010-12-02 Digitiliti, Inc. Deduplication of files
US7941459B1 (en) * 2007-03-29 2011-05-10 Symantec Corporation Selectable use of single-instance store backup methodology in combination with other methods
US20130080403A1 (en) * 2010-06-10 2013-03-28 Nec Corporation File storage apparatus, file storage method, and program
US20130218851A1 (en) * 2010-10-19 2013-08-22 Nec Corporation Storage system, data management device, method and program

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996035995A1 (en) * 1995-05-10 1996-11-14 The 3Do Company Method and apparatus for managing snoop requests using snoop advisory cells
EP1704481B1 (en) 2003-12-15 2018-05-30 Pitney Bowes, Inc. Method for mail address block image information encoding, protection and recovery in postal payment applications
JP4845674B2 (ja) * 2006-10-26 2011-12-28 キヤノン株式会社 データ処理装置及び方法、通信装置、並びにプログラム
US7904450B2 (en) 2008-04-25 2011-03-08 Wilson Kelce S Public electronic document dating list
JP5414223B2 (ja) 2008-09-16 2014-02-12 株式会社日立ソリューションズ インターネットバックアップにおける転送データ管理システム
US20110055471A1 (en) * 2009-08-28 2011-03-03 Jonathan Thatcher Apparatus, system, and method for improved data deduplication
US8250325B2 (en) * 2010-04-01 2012-08-21 Oracle International Corporation Data deduplication dictionary system
US9223511B2 (en) * 2011-04-08 2015-12-29 Micron Technology, Inc. Data deduplication
CN104040516B (zh) * 2011-11-17 2017-03-15 英特尔公司 用于数据去重的方法、设备和系统
US9417811B2 (en) * 2012-03-07 2016-08-16 International Business Machines Corporation Efficient inline data de-duplication on a storage system
US9697147B2 (en) * 2012-08-06 2017-07-04 Advanced Micro Devices, Inc. Stacked memory device with metadata management
US9021189B2 (en) * 2013-07-24 2015-04-28 NXGN Data, Inc. System and method for performing efficient processing of data stored in a storage node

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EA010458B1 (ru) * 2004-12-08 2008-08-29 Би-ОБВИЭС ЛТД. Оптимизация двунаправленной пересылки данных и управление содержимым для сетей
US7941459B1 (en) * 2007-03-29 2011-05-10 Symantec Corporation Selectable use of single-instance store backup methodology in combination with other methods
US20100306176A1 (en) * 2009-01-28 2010-12-02 Digitiliti, Inc. Deduplication of files
US20130080403A1 (en) * 2010-06-10 2013-03-28 Nec Corporation File storage apparatus, file storage method, and program
US20130218851A1 (en) * 2010-10-19 2013-08-22 Nec Corporation Storage system, data management device, method and program

Also Published As

Publication number Publication date
WO2015080813A1 (en) 2015-06-04
EP3074881A1 (en) 2016-10-05
KR102164223B1 (ko) 2020-10-12
KR101766240B1 (ko) 2017-08-23
US10120608B2 (en) 2018-11-06
KR20160061412A (ko) 2016-05-31
CN105659222A (zh) 2016-06-08
RU2016116679A (ru) 2017-11-01
US20150149695A1 (en) 2015-05-28
US9619167B2 (en) 2017-04-11
CN105659222B (zh) 2019-09-17
EP3074881A4 (en) 2017-08-16
KR20170092713A (ko) 2017-08-11
US20170322746A1 (en) 2017-11-09

Similar Documents

Publication Publication Date Title
RU2643651C2 (ru) Система и способ для вычисления дайджеста сообщений
US10241889B2 (en) Tracking pipelined activity during off-core memory accesses to evaluate the impact of processor core frequency changes
US9361032B2 (en) Management of server cache storage space
US8572407B1 (en) GPU assist for storage systems
US20170317991A1 (en) Offloading storage encryption operations
US9182912B2 (en) Method to allow storage cache acceleration when the slow tier is on independent controller
US11431480B2 (en) Smart compressor based on adaptive CPU/QAT scheduling method
US8140825B2 (en) Systems and methods for selectively closing pages in a memory
US11062020B2 (en) Processor checking method, checking device and checking system
JP3824317B2 (ja) サーバ、コンピュータ装置、データ処理方法及びプログラム
Lu et al. A new data sieving approach for high performance I/O
TWI828307B (zh) 用於記憶體管理機會與記憶體交換任務之運算系統及管理其之方法
US9645740B2 (en) Self-detecting storage bottleneck while handling sequential I/O operations
WO2023185639A1 (zh) 一种基于nvme硬盘的数据交互系统及方法
Xiao et al. Nv-ecryptfs: Accelerating enterprise-level cryptographic file system with non-volatile memory
Nakashima et al. I/o performance improvement of secure big data analyses with application support on ssd cache
TW201435579A (zh) 用於從作業系統安裝映像檔的快照啓動多個伺服器之系統與方法
US9244832B1 (en) Cache learning model
CN107491266A (zh) 大容量存储系统和块数据存储方法
JPH01309149A (ja) 入出力制御方式
US9817585B1 (en) Data retrieval system and method
JPH10187593A (ja) データ転送制御装置及び同装置に適用するデータ転送制御方法
JP2024102090A (ja) マルチパス分散データシャッフル
Zhou et al. Decease I/O mean response time using software pipelining
JP2000194574A (ja) 非同期入出力システム