Как работает сжатие в объектно-ориентированной архитектуре памяти

в 17:56, , рубрики: 1cloud, MIT, Блог компании 1cloud.ru, объектная память, объектные хранилища, Серверное администрирование

Команда инженеров из MIT разработала объектно-ориентированную иерархию памяти для более эффективной работы с данными. В статье разбираемся с тем, как она устроена.

Как работает сжатие в объектно-ориентированной архитектуре памяти - 1
/ PxHere / PD

Как известно, рост производительности современных CPU не сопровождается соответствующим снижением задержки при обращении к памяти. Разница в изменении показателей от года к году может доходить до 10 раз (PDF, стр.3). Как результат — возникает бутылочное горлышко, которое не дает в полной мере пользоваться имеющими ресурсами и замедляет обработку данных.

Ущерб производительности наносит так называемая декомпрессионная задержка. В некоторых случаях на подготовительную декомпрессию данных может уходить до 64 процессорных циклов.

Для сравнения: сложение и умножение чисел с плавающей точкой занимают не больше десяти циклов. Проблема в том, что память работает с блоками данных фиксированного размера, а приложения — оперируют объектами, которые могут содержать различные типы данных и отличаться друг от друга по размеру. Чтобы решить проблему, инженеры из MIT разработали объектно-ориентированную иерархию памяти, которая оптимизирует обработку данных.

Как устроена технология

В основе решения лежат три технологии: Hotpads, Zippads и алгоритм сжатия COCO.

Hotpads — это программно-управляемая иерархия сверхоперативной регистровой памяти (scratchpad). Эти регистры называются пэдами (pads) и их три штуки — от L1 до L3. В них хранятся объекты разных размеров, метаданные и массивы указателей.

По сути, архитектура представляет собой систему кэшей, но заточенную для работы с объектами. Уровень пэда, на котором находится объект, зависит от того, как часто его используют. Если один из уровней «переполняется», система запускает механизм, аналогичный «сборщикам мусора» в языках Java или Go. Он анализирует, какие объекты используется реже остальных и автоматически перемещает их между уровнями.

Zippads работает на основе Hotpads — архивирует и разархивирует данные, которые поступают или покидают два последних уровня иерархии — пэд L3 и основную память. В первом и втором пэдах данные хранятся в неизменном виде.

Как работает сжатие в объектно-ориентированной архитектуре памяти - 2

Zippads сжимает объекты, чей объем не превышает 128 байт. Более крупные объекты делятся на части, которые затем размещаются в разных участках памяти. Как пишут разработчики, такой подход повышает коэффициент эффективно используемой памяти.

Для сжатия объектов применяется алгоритм COCO (Cross-Object COmpression), о котором мы расскажем далее, хотя система способна работать и с Base-Delta-Immediate или FPC. Алгоритм COCO представляет собой разновидность разностного сжатия (differential compression). Он сравнивает объекты с «базовыми» и удаляет повторяющиеся биты — см. схему ниже:

Как работает сжатие в объектно-ориентированной архитектуре памяти - 3

По словам инженеров из MIT, их объектно-ориентированная иерархия памяти на 17% производительнее классических подходов. Она гораздо ближе по своему устройству к архитектуре современных приложений, поэтому у нового метода есть потенциал.

Ожидается, что в первую очередь технологию могут начать использовать компании, которые работают с большими данными и алгоритмами машинного обучения. Еще одно потенциальное направление — облачные платформы. IaaS-провайдеры получат возможность эффективнее работать с виртуализацией, системами хранения данных и вычислительными ресурсами.

Наши дополнительные ресурсы и источники:

Как работает сжатие в объектно-ориентированной архитектуре памяти - 4 «Как мы строим IaaS»: материалы о работе 1cloud

Как работает сжатие в объектно-ориентированной архитектуре памяти - 5 Эволюция архитектуры облака 1cloud
Как работает сжатие в объектно-ориентированной архитектуре памяти - 6 Услуга объектного хранилища в 1cloud

Как работает сжатие в объектно-ориентированной архитектуре памяти - 7 Потенциальные атаки на HTTPS и способы защиты от них
Как работает сжатие в объектно-ориентированной архитектуре памяти - 8 Чем похожи и чем различаются подходы Continuous Delivery и Continuous Integration
Как работает сжатие в объектно-ориентированной архитектуре памяти - 9 Как защитить сервер в интернете: опыт 1cloud

Автор: 1cloud

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js