Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

IBM BLU Acceleration - это набор технологий от IBM Research and Development Labs для аналитических рабочих нагрузок баз данных . BLU Acceleration объединяет ряд различных технологий, включая обработку столбчатых данных в памяти , Actionable Compression (которое использует приблизительное кодирование Huffman для плотного сжатия и упаковки данных), CPU Acceleration (которое использует технологию SIMD и обеспечивает параллельную векторную обработку) и Data Skipping. (что позволяет игнорировать данные, бесполезные для текущей активной рабочей нагрузки). [1]Термин «BLU» не означает ничего особенного; однако он косвенно играет на традиционном корпоративном прозвище IBM - Big Blue. (Десять исследовательских центров IBM по всему миру зарегистрировали более 25 патентов, работая над проектом Blink Ultra, который привел к BLU Acceleration.) [2] BLU Acceleration не требует индексов , агрегирования или настройки . BLU Acceleration интегрировано в версию 10.5 IBM DB2 для Linux, Unix и Windows (DB2 для LUW [3] ) и использует те же конструкции хранения и памяти (т. Е. Группы хранения, табличные пространства и пулы буферов), языковые интерфейсы SQL. , а также инструменты администрирования как традиционные базы данных DB2 для LUW. [4]BLU Acceleration доступно как для архитектуры процессоров IBM POWER, так и для x86 . [5]

История [ править ]

BLU Acceleration - это второе поколение технологии, зародившейся в проекте Blink, который был начат в исследовательском центре IBM Almaden в 2006 году. Ориентированный в первую очередь на обработку запросов бизнес-аналитики (BI), ориентированных в основном на чтение , Blink объединил горизонтальное масштабирование из многоядерных процессоров с динамической памятью с произвольным доступом (DRAM) , чтобы сохранить копию витрины данных полностью в памяти. Он также использовал запатентованные методы и алгоритмы сжатия, которые позволяли выполнять большинство запросов SQL непосредственно к сжатым данным (в отличие от необходимости распаковывать данные перед их обработкой). [6]В конце концов, Blink был включен в два продукта IBM: IBM Smart Analytics Optimizer для DB2 для z / OS (версия DB2 для мэйнфреймов), который был выпущен в ноябре 2010 года, и ускоритель Informix Warehouse, выпущенный в марте 2011 года.

BLU Acceleration оптимизирован для доступа к данным из ОЗУ. Однако даже если размер данных вырастет до такой степени, что больше не умещается в ОЗУ, промежуточные результаты могут быть перенесены на диск. [1] BLU Acceleration была усовершенствована и интегрирована с DB2 в результате сотрудничества между разработчиками продуктов DB2, Центром компетенции IBM Systems Optimization и IBM Research - это сотрудничество привело к добавлению столбчатой ​​обработки , более широкой поддержки SQL, повышения эффективности ввода-вывода и ЦП. , а также интеграция с компилятором DB2 SQL, оптимизатором запросов и уровнем хранения . [7]

Техническая информация [ править ]

Есть четыре основных преимущества, которые являются частью дизайна BLU Acceleration. Они есть:

  1. Производительность в памяти не ограничивается данными, которые помещаются в ОЗУ
  2. Практическое сжатие
  3. Пропуск данных
  4. Ускорение ЦП

Производительность в памяти не ограничивается данными, которые умещаются в ОЗУ [ править ]

BLU Acceleration оптимизирован для доступа к данным из ОЗУ. Однако даже если размер данных вырастет до такой степени, что больше не умещается в ОЗУ, промежуточные результаты могут быть перенесены на диск.

Действующее сжатие [ править ]

Сохраняющее порядок сжатие на основе частоты (называемое сжатием с возможностью действия ) в BLU Acceleration позволяет выполнять широкий спектр сравнительных операций без декомпрессии и с эффективным использованием памяти (кеша) и регистров ЦП . При активном сжатии значения, которые появляются чаще, сжимаются на более высоком уровне, чем значения, которые появляются реже. (Функциональное сжатие использует алгоритм энтропийного кодирования для сжатия данных без потерь, который был разработан Дэвидом А. Хаффманом, когда он был аспирантом Массачусетского технологического института, в качестве основы.), [4] [8] Смещение кодирования- еще один метод оптимизации сжатия, который используется в BLU Acceleration. Смещение кодирования очень полезно для числовых данных; вместо того, чтобы пытаться сжать значения 100, 101, 102 и 103, например, DB2 сохранит одно значение (100) и только смещения этого значения (1, 2, 3 и т. д.). Это очень похоже на способ, которым DB2 сжимает идентификаторы индексных записей (RID) - один из трех автономных алгоритмов сжатия индексов, которые DB2 может динамически применять к индексам. [4]

С помощью BLU Acceleration значения сжимаются, так что их порядок сохраняется, что означает, что их можно сравнивать друг с другом во время сжатия. Это позволяет выполнять наиболее распространенные сравнения в предикатах SQL с закодированными значениями без необходимости распаковки данных, тем самым ускоряя вычисления, снижая требования к памяти и уменьшая потребность в обработке запросов во время выполнения., [1] [5]

После кодирования данные упаковываются как можно плотнее в набор битов, равный ширине регистра ЦП используемого сервера. Это приводит к меньшему количеству операций ввода-вывода (поскольку объем данных меньше), лучшему использованию памяти (поскольку в памяти может храниться больше данных) и меньшему количеству циклов ЦП (поскольку данные «выравниваются по регистрам»). [4]

Пропуск данных [ править ]

Пропуск данных позволяет DB2 определять диапазоны значений столбцов, которые не нужны для удовлетворения запроса, и избегать чтения страниц, содержащих эти значения, с диска. Пропуск данных использует вторичный объект, называемый таблицей синопсиса , которая представляет собой крошечную таблицу с организацией по столбцам, которая создается и поддерживается автоматически. [4] BLU Acceleration хранит метаданные, которые описывают минимальный и максимальный диапазон значений данных в «порциях» данных (около 1000 записей) в этой таблице. Эти метаданные автоматически поддерживаются во время операций вставки, обновления и удаления, и именно это позволяет DB2 с BLU Acceleration автоматически обнаруживать большие участки данных, которые не нужны во время обработки запроса, и эффективно их игнорировать. [4]

Концептуально пропуск данных BLU Acceleration аналогичен технологии Zone Map из семейства PureData System for Analytics. Однако, в отличие от карт зон, метаданные, хранящиеся в таблице синопсиса, не привязаны к какой-либо конкретной странице или границе экстента ― вместо этого они привязаны к определенному «фрагменту» записей данных. Пропуск данных может обеспечить значительную экономию вычислительных ресурсов (ЦП, ОЗУ и ввода-вывода). [4]

Ускорение процессора [ править ]

BLU Acceleration использует преимущества обработки нескольких данных с одной инструкцией (SIMD), если она доступна на используемом оборудовании. Используя инструкции SIMD, которые являются очень низкоуровневыми инструкциями ЦП, BLU Acceleration может выполнять одну и ту же операцию с несколькими точками данных одновременно. [4] Следовательно, DB2 с BLU Acceleration может использовать одну инструкцию SIMD для получения результатов от нескольких элементов данных (например, для выполнения обработки предиката равенства) - при условии, что они находятся в одном регистре. DB2 также может поместить 128 битов в регистр SIMD и оценить эти данные с помощью одной инструкции. [4]

Достигнутый уровень производительности в конечном итоге будет определяться аппаратными ресурсами, с которыми должна работать BLU Acceleration. [4] Тем не менее, даже если сервер не поддерживает SIMD, BLU Acceleration может эмулировать оборудование SIMD с помощью программного обеспечения SMID (используя битовую маску для достижения некоторого параллелизма), чтобы обеспечить некоторые из преимуществ, которые предлагает SIMD. [4]

Кроме того, BLU Acceleration спроектирован таким образом, что большая часть доступа к памяти происходит в кэше ЦП, а не путем многократного доступа к данным из ОЗУ . [4] Оперируя почти исключительно с данными в кэше ЦП, а не в ОЗУ, BLU Acceleration минимизирует задержку и позволяет загружать ЦП. [4]

BLU Acceleration, предназначенный для обработки данных, размер которых значительно превышает объем памяти, выполняет предварительную выборку и потоковую передачу данных в механизм обработки, выходя за пределы системной памяти на оптимизацию памяти в ЦП. [5] Он использует специализированный алгоритм столбцовой предварительной выборки, оптимизированный в памяти, чтобы заранее на несколько миллисекунд определить, какие данные должны быть загружены в ОЗУ; каждый алгоритм был разработан для минимизации доступа к ОЗУ и максимального увеличения времени обработки в кэшах L3 и L2, которые на порядок быстрее, чем ОЗУ. [9] [10]

Ссылки [ править ]

  1. ^ а б в Раман, Атталури, Барбер, Чайнани и др. (Август 2013 г.) «DB2 с BLU Acceleration: гораздо больше, чем просто хранилище столбцов» , Труды VLDB Endowment, том 6, выпуск 11, страницы 1080-1091 . Проверено 1 февраля, 2014 г.
  2. ^ «IBM BLU Acceleration ускоряет аналитику с помощью динамических вычислений в памяти», получено 1 февраля 2014 г.
  3. ^ DB2 для Linux, UNIX и Windows
  4. ^ Б с д е е г ч я J к л м Zikopoulos, светолит, Huras, Sachedina, Baklarz. «DB2 10.5 с BLU Acceleration: новая динамическая аналитика в памяти для эпохи больших данных». Архивировано 29 декабря 2013 г. в Wayback Machine , McGraw-Hill Education. ISBN  9780071823494 . Проверено 1 февраля, 2014.
  5. ^ a b c «Ускорение BLU меняет правила игры» , официальный документ по программному обеспечению IBM (июль 2013 г.). Проверено 1 февраля, 2014.
  6. ^ Лайтстоун, Ломан, Шифер. (Апрель 2013 г.) «Super Analytics, Super Easy. Знакомство с IBM DB2 10.5 с BLU Acceleration». Архивировано 4 марта2014 г. в archive.today , IBM Data Magazine . Проверено 1 февраля, 2014.
  7. ^ Зикопулос, Винсент. (Август 2013 г.) «Спросите экспертов: DB2 10.5 с ускорением BLU» . Проверено 1 февраля, 2014.
  8. ^ Хаффман, Дэвид А. (сентябрь 1952 г.) «Метод построения кодов с минимальной избыточностью» . Проверено 6 февраля, 2014.
  9. ^ Лайтстоун, Сэм. «Когда ОЗУ слишком медленно: как динамическая обработка в памяти меняет правила игры для аналитики» . SoftwareTradecraft.com . Проверено 1 февраля, 2014 г.
  10. ^ Ховард, Филипп. (Декабрь 2013 г.) «В памяти? Это было вчера!» , IT Analysis.com . Проверено 1 февраля, 2014 г.

Внешние ссылки [ править ]

  • Официальный веб-сайт