Многоядерные процессоры и грядущая параллельная революция

Пути развития массовых компьютеров и суперкомпьютеров снова сближаются, и причина этого — параллельная революция.

Леонид Черняк

Сегодня в сферах, так или иначе связанных с ИТ, на слуху все больше слово «аналитика», а не традиционное — «вычисления», что свидетельствует о формировании новой области применения компьютеров, которые все чаще используются в качестве средства расширения интеллектуального потенциала человека и инструмента поддержки принятия решений, чем как орудие для счета. Не без удовлетворения можно отметить, что минуло всего шесть десятилетий компьютерной истории — и начинают сбываться самые смелые, порой фантастические мечты о машинах с искусственным разумом. Но, что удивительно и странно, этот, без всякого преувеличения, великий переход происходит исключительно эволюционным путем, без каких-либо серьезных научных открытий, а только лишь инженерными решениями и под влиянием количественных показателей — с одной стороны, наблюдается рост объемов создаваемых аккумулируемых данных, с другой — развитие методов параллельной обработки данных. Синергия этих двух потоков порождает новое качество.

Новые задачи и новые решения

Универсальность компьютеров всегда рассматривалась как их важнейшее достоинство — меняя программное обеспечение, можно было использовать один и тот же компьютер для разных приложений. Но универсальность имеет оборотную сторону — низкую эффективность использования ресурсов, поэтому семь – десять лет назад начались различные эксперименты по созданию специализированных машин (Computer Appliance, CA), в частности, предназначенных для аналитики больших объемов данных.

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

  • аналитические СУБД — традиционные СУБД с построчной организацией, адаптированные к работе на масштабируемых кластерах MPP-архитектуры;
  • распределенные файловые системы;
  • нереляционные СУБД;
  • СУБД с поколоночным хранением наподобие HP Vertica или SAP SybaseIQ;
  • аналитические пакеты — референтные, рекомендованные инфраструктуры, включающие необходимое ПО и оборудование;
  • технологии для обработки сложных событий (Complex Event Processing, CEP).
Машины хранилищ данных

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

Александр Александров

Но одного хранилища мало — для создания полноценной аналитической платформы нужна еще и специализированная аналитическая машина (Analytic Appliance, AA), включающая в себя необходимое аппаратное и программное обеспечение. Аналитическая платформа включает в себя два компонента — аналитическую СУБД и специализированную аналитическую машину, под которой обычно понимают специализированное, законченное и интегрированное решение, чаще всего построенное по архитектуре MPP и предназначенное для оперирования данными и их анализа. Такое решение имеет преимущество по цене и времени при выполнении аналитических работ в сравнении с универсальными компьютерами. Оно же может быть построено на облачных принципах. Для многих случаев, особенно для стартапов, оказывается более выгодно использовать облачную аналитическую платформу, но крупные компании предпочитают готовые AA.

Поначалу аналитическая специализированная машина была своего рода технологической экзотикой, доступной ограниченному числу крупных потребителей, но пять – семь лет назад бурный рост объемов данных в сочетании с технологиями, основанными на принципах массового параллелизма и MapReduce, радикально изменил ситуацию. Сегодня количество уже реализованных машин исчисляется тысячами, их внедрили около 40% предприятий, входящих в тысячу наиболее крупных, и только менее четверти не намереваются создавать их в ближайшее время. Основными игроками в этой области стали крупнейшие производители, скупившие всех наиболее перспективных стартапов, и среди них прежде всего EMC (Greenplum), HP (Vertica), IBM (Netezza), Microsoft, Oracle Exadata, SAP HANA, Teradata (Aster Data). Игроки второго плана — Cloudera, DataStax, Northscale, Splunk, Palantir, Factual, Kognitio, Datameer, TellApart, Paraccel, Hortonworks. Что их объединяет? Пожалуй, то, что каждый из них по-своему пытается преодолеть ограничение классической схемы компьютера, называемое бутылочным горлом архитектуры Джона фон Неймана.

Контекст для аналитических платформ

Применение компьютеров для аналитики имеет давнюю историю — еще в 1952 году компьютер UNIVAC I с серийным номером 5 был использован для прогноза результатов финального этапа президентских выборов. Программа, написанная одним из его создателей Джоном Мочли, отдала преимущество со счетом 8:7 республиканцу генералу Дуайту Эйзенхауэру. Это были первые выборы с трансляцией в прямом ТВ-эфире, поэтому, когда прогноз оправдался, об успехе узнала вся страна, со всеми вытекающими последствиями. Результат оказался лучшей рекламой для компьютеров и стимулировал приход на компьютерный рынок корпорации IBM, которая до этого выпускала электромеханические табуляторы для статистической обработки данных.

Вычисления с акцентом на данные

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

Леонид Черняк

По временной шкале между табуляторами и АА лежит схема фон Неймана, которая позволила сделать переход от табуляторов к программируемым компьютерам, она же задала направление в развитии на последующие 60 лет, став базисом для создания индустрии, ориентированной на счет, на процессоры и предполагающей, что для обработки данные должны быть извлечены из памяти, обработаны, а результаты возвращены обратно в память. Схема остается эффективной до тех пор, пока данных относительно немного и скоростные характеристики канала между процессором и памятью достаточны, но она стала барьером на пути Больших Данных — непреодолимая теоретическая ограниченность канала передачи данных между процессором и памятью (проблема «бутылочного горла») превратилась в отягощающий фактор. Различного рода ускорители в виде кэшей разного уровня можно считать паллиативными решениями, и их явно недостаточно в эпоху Больших Данных.

Сейчас в ИТ наблюдается следующий великий переход, который внешне проявляется в росте объемов данных, повышении скорости работы устройств хранения (SSD приближаются по скорости к оперативной памяти), но это поверхностные признаки — главное в том, что компьютер перестает быть счетным устройством, а становится инструментом для познания, цепочка разворачивается дальше: от счета к извлечению информации и знаний. Наступает пора когнитивных компьютерных систем. Традиционные компьютеры служат для быстрого счета, а когнитивные системы — для извлечения полезных сведений, но в то же время это не какие-то «думающие машины», наделенные интеллектом. Самый яркий пример — Watson, в нем нет традиционного извлечения данных из файлов, они обрабатываются по месту их нахождения, это и есть модель работы в эпоху Больших Данных. Мы стали свидетелями очередного «сдвига парадигмы» к компьютерным системам, ориентированным не на вычисления, а на данные, где процессоры встроены непосредственно в системы хранения данных. То, что мы сегодня называем аналитическими платформами, есть не что иное, как первые шаги по направлению к когнитивному, понимающему компьютеру.

Время конвергентных инфраструктур

Появление конвергентных инфраструктур стало закономерным результатом эволюции корпоративных ЦОД, и неудивительно, что они оказались сегодня в центре внимания всех крупных ИТ-производителей, выпускающих, в частности, специализированные аналитические машины.

Леонид Черняк

Идея специализированной машины как отдельного перспективного типа систем для работы с данными была предложена Фостером Хиншоу, основателем компаний Netezza и Dataupia, — его называют отцом этого направления. Хиншоу одним из первых обратил внимание на рост объемов данных, опережающий по темпам роста закон Мура, и на то, что существовавшие на тот момент классические инфраструктуры уже не смогут справиться с ним. К тому же именно он обратил внимание еще и на то, что с увеличением количества данных возрастает и потребность в их обработке в режиме, близком к реальному времени. Новый тип устройства должен был быть спроектирован для нужд бизнес-аналитики. АА должны сочетать в себе лучшие качества SMP (symmetrical multiprocessing — «симметричная многопроцессорность») и MPP (massive parallel processing — «массовый параллелизм»), исключить любые узкие места на пути потоков данных и в то же время быть способны поддерживать аналитическое ПО, созданное такими компаниями, как MicroStrategy, Business Objects, Cognos, SAS и SPSS. Их архитектура должна обеспечивать необходимые гибкость, масштабируемость и надежность. Компания Teradata к 2000 году, когда Хиншоу вместе с Джитом Саксеной создали Netezza, уже более десяти лет выпускала изделия, в которых многое из того, о чем он говорил, уже было реализовано. Однако это были чрезвычайно дорогие и уникальные системы, а Хиншоу нашел способ, как делать почти то же самое, но на широко распространенных стандартных компонентах. Он косвенно предложил Teradata альтернативный путь развития, и сегодня она близка к тому, чтобы вообще отказаться от железа и стать в чистом виде софтверной компанией.

Специализированная аналитическая машина

Любая машина АА представляет собой (см. рисунок) аппаратно-программный интегрированный стек, чаще называемый конвергентной инфраструктурой, состоящий из: процессора с памятью, системы хранения, ОС и специализированной СУБД, позволяющей обрабатывать данные непосредственно в собственной структуре, на диске либо в оперативной памяти. Под интеграцией понимается, что АА упрощает развертывание, масштабирование и управление СУБД и инфраструктурой хранения данных, обеспечивая такие качества, как самоуправление (self-managing), самостоятельная настройка (self-tuning) и готовность к работе с момента включения (plug-and-play). Обычно АА объединяют все компоненты в одну стойку, что экономически эффективно.

Инструменты Большой Аналитики
Основные компоненты analytic appliance

 

Специализированные аналитические машины отвечают следующим основным требованиям:

  • оптимальность с точки зрения работы с большими порциями данных (большие блоки, большие фрагменты таблиц) и сложными запросами, типичными для аналитических систем;
  • высокая масштабируемость (в процессе работы объемы данных могут возрасти от терабайтов до петабайтов);
  • высокая готовность (прерывание аналитического процесса может стоить очень дорого, отсюда следует, что не должно быть единственной точки отказа, а готовность должна быть близка к 100%).
Сomputer appliance — ускоритель бизнес-вычислений

В ряде случаев примитивные специализированные устройства демонстрируют свое превосходство, и неудивительно, что в последние годы, когда к вопросам экономической эффективности ИТ привлечено заметное внимание, наблюдается очевидный возврат к специализированным устройствам — computer appliance.

Леонид Черняк

В современных условиях эти качества могут обеспечить системы с массовым параллелизмом, с узлами, работающими независимо друг от друга (shared nothing architecture). Условно все известные АА можно разделить на три группы, каждый из производителей отдает предпочтение чему-то одному, поэтому такое разделение может быть одновременно и классификацией по поставщикам.

Аппаратно-программные машины

Первой по пути создания специализированных машин, содержащих в себе все необходимое аппаратное и программное обеспечение, пошла компания Teradata, позже на него вступили Netezza (куплена корпорацией IBM), DATAllegro (куплена Microsoft) и объединившиеся под именем Kognito британские компании White Cross и Kognito, а совсем недавно в этот лагерь проникла и Oracle. По мере развития в этой категории AA остается все меньше уникальных компонентов, и эти машины превращаются в конвергентные решения, собираемые под именем одного бренда из доступных серверов стандартной архитектуры (Dell, HP, IBM и др.), систем хранения и сетей от Cisco, EMC и т. п. Даже основоположник специализированных машин компания Teradata в ближайшее время откажется от своего фирменного межсоединения BYNET и оставит за собой только сборку из стандартных компонентов.

Teradata. Эта компания, пожалуй, более всех остальных сделала для становления AA. А в статье Алексея Хабарова «Ускорители аналитики» («Открытые системы», № 04, 2011) дан обзор актуальных на сегодняшний день продуктов компании Teradata.

Netezza. Cозданная в 2002 году компания была второй после Teradata, но именно ее деятельность стала импульсом к возникновению нового, не существовавшего прежде сегмента рынка АА. Решение, с которым компания вышла в свет, содержало ряд оригинальных идей («Суперкластер для BI», «Открытые системы», № 06, 2008). Фостер Хиншоу перенес свой опыт работы в аэродинамике на проектирование, уподобив потоки данных потокам воздуха, и постарался избежать лишних «завихрений», сделав эти потоки ламинарными. Для этого потребовалась двухуровневая архитектура, где на верхнем уровне находятся специализированные хосты на базе SMP-серверов Netezza Performance Server (NPS), а на нижнем — сотни специализированных лезвий Snippet Processing Unit (SPU), образующих кластер. В какой-то степени здесь на аппаратном уровне был предвосхищен алгоритм MapReduce — хост сначала преобразует пользовательские запросы в более мелкие запросы к SPU, а затем собирает результаты и возвращает их пользователям. Каждый из SPU отвечает за выполнение своего лоскутка работы (отдельной части запроса). Для этого он комплектуется центральным процессором, памятью, диском и программируемой логической матрицей (FPGA), фильтрующей поток и выполняющей до 90% функциональной нагрузки SPU. При поступлении входного запроса хост формирует план его обработки, выделяя те части, которые выполняются на нем самом и передаются для параллельной обработки в стек SPU. Сегодня выпускаются четвертая версия основного продукта TwinFin и упрощенная Skimmer, в них преимущественно стандартные компоненты, в том числе используются серверы-лезвия IBM и обеспечена поддержка Hadoop.

DATAllegro. Компания была создана Стюартом Фростом в 2003 году, к этому его побудил пример Netezza, а через пять лет ее купила корпорация Microsoft, намереваясь, возможно, пойти по следам Oracle, правда, с тех пор о продолжении ничего не слышно. Тем не менее историческую роль DATAllegro забывать нельзя, Фрост сделал еще один шаг по направлению к «коммодитизации» АА. Специализированные машины собирались из готовых компонентов — серверов Dell или Bull, сетевого оборудования Cisco и систем хранения от EMC в сочетании с СУБД Ingres и ОС Linux.

Kognitio. Британская компания создала свою собственную СУБД WX2 класса in-memory и выпускает три модели: Lakes, Rivers и Rapids —различающиеся по объему памяти и числу ядер.

Oracle. Семейство AA от Oracle, пожалуй, самое малочисленное: система Exadata создавалась еще во времена кооперации с HP, за ней последовали изделия для поддержки приложений Exalogic и Exalytics, плюс к ним в 2011 году появилась Oracle Big Data Appliance, ориентированная на совместную работу Apache Hadoop с СУБД Oracle NoSQL Database и Oracle Database Appliance — уменьшенная версия Exadata. Все эти решения образуют технологический комплекс для выполнения четырех этапов работы с данными: получение (aquire), подготовка (organize), анализ (analyze) и ринятие решений (decide). Принципиально новым является последний этап, он нов как для отрасли в целом, так и для Oracle в частности. В декабре 2011 года Oracle приобрела компанию Endeca, известную своей специализацией на корпоративном поиске и извлечении информации из знаний (неслучайно ее название образовано от entdecken, что в переводе с немецкого означает «обнаружение смысла»).

Программные АА

В 2006 году поднялась новая волна в развитии АА — наличие готового оборудования позволило сосредоточиться на базах данных и аналитическом ПО. В этом сегменте уже работает ряд компаний, в него же намереваются войти и некоторые из тех, о ком уже шла речь (Teradata и Kognito).

SAP. Систему HANA можно отнести к решениям типа High-Performance Analytic Appliance, реализованным на MPP-кластере (SAP HANA appliance) или в облаке (SAP HANA application cloud). Программной основой является одна из двух СУБД — SAP In-Memory Computing Engine (SAP IMCE) и SAP HANA database, известной прежде как NewDB. В целом SAP HANA представляет собой систему, состоящую из аппаратной части (серверов-лезвий x86-архитектуры) и собственного программного обеспечения, поставляемого в виде cконфигурированного комплекса. Программная часть комплекса состоит из трех элементов. Первый — инструмент моделирования, определяющий, какие данные и из каких источников загружаются в HANA, второй — инструменты загрузки данных, задающие правила перемещения данных в HANA, третий — гибридная база данных класса in-memory, хранящая данные как по колонкам, так и построчно.

Greenplum. Компания, входящая ныне в состав корпорации EMC, создала свою СУБД, адаптировав PostgreSQ к работе в параллельном режиме на MPP-конфигурациях. В 2009 году компания развила эту идею до облачного уровня — Enterprise Data Cloud, а в 2010 году Greenplum выпустила версию Database 4.0 и Chorus — первую в мире аналитическую облачную платформу.

Aster Data. Близкую по идеологии к Chorus базу данных nCluster разработала компания Aster Data. Ее решение может работать на MPP-платформах со строками и колонками и интегрироваться с аналитическим сервером. Уникальность Aster Data — в запатентованной технологии SQL-MapReduce. Существует две версии, одна — для работы с облаками, другая — на MPP (Aster Data MapReduce DW Appliance).

Среди других компаний, наибольшую известность приобрели ParAccel с ее СУБД ParAccel Analytic Database, Vertica с ее Vertica Analytic Database и EXASOL с ее EXASolution. Отдельное место занимает СУБД Sybase IQ, поставляемая как Sybase Analytical Appliance на базе серверов IBM pSeries.

По заветам Вилли Саттона

Известный американский грабитель банков, виртуозно распотрошивший целое их множество, на вопрос «Почему вы грабите банки?» ответил: «Потому что там деньги». Он прав, чтобы быть эффективным в любом деле, следует быть ближе к предмету своей деятельности, вот и для анализа не надо загружать данные в хранилища, чтобы потом их извлекать, а делать это следует либо прямо в базе данных (in-databse), либо в памяти (in-memory), потому что, «как учил» Саттон, данные именно там.

Аналитику в базе данных иногда называют «встроенной аналитикой», и выполнение ее операций невозможно непосредственно средствами стандартного SQL, поэтому используются сочетания SQL с другими программными интерфейсами к базе. Этот тип работы с данными приобретает популярность, поскольку позволяет повысить важнейшие характеристики корпоративного хранилища данных (Enterprise Database Warehouse, EDW): производительность, динамичность, масштабируемость и управляемость.

Использование сервера СУБД не только в традиционном качестве (то есть для поддержки запросов), но и для выполнения еще тех действий над данными, которые теперь стали называть in-database analytics, не является чем-то новым. Близкие по сути решения известны с середины 90-х годов и впервые появились в объектно-реляционных СУБД IBM, Illustra/Informix и Oracle. Такие базы позволяют пользователю создавать собственные типы данных, способы индексации и функции для некоторых типов данных, например геоинформационных, текстовых, временных рядов и т. п. Хотя производители снабжали свои СУБД модулями расширения, позволявшими пользователю работать на SQL или на Cи, особенного успеха они на этом поприще тогда не добились. Все изменилось в последние годы — первой для целей аналитики подход in-database применила Netezza, примеру которой последовали Teradata, SAS, Greenplum, Aster Data Systems и другие. Однако не каждая СУБД может быть использована как база для аналитики, а только те, которые имеют отдельные встроенные аналитические функции и средства для создания пользователями своих функций.

Аналитическая работа в режиме in-database складывается из двух этапов, на первом создается модель, на втором она выполняется, что делает ее непохожей на обычную процедуру моделирования, когда аналитик извлекает из базы и готовит некоторое подмножество анализируемых данных, а потом прогоняет его через требуемый ему набор алгоритмов. В случае in-database извлечения не происходит, то же самое подмножество остается в базе, но средствами сервера базы оно преобразуется в модель, удобную для работы. На втором этапе выполняется моделирование и получаются результаты, в том числе в виде кодов на языке прогнозного программирования PMML (Predictive Model Markup Language). Моделирование поддерживается тем же сервером СУБД. С точки зрения результатов то, где выполняется аналитика (вне базы или в ней самой), значения не имеет.

Главное достоинство подхода in-database заключается в его генетически врожденной способности к распараллеливанию, что оказалось как нельзя кстати в связи с массовым распространением кластеров с многоядерными процессорами. Именно возможность параллельной работы с данными открывает путь для решения проблемы аналитики больших данных, поэтому подход in-memory еще носит название intra-query parallelism — параллелизм при выполнении одного запроса. Первые параллельные решения в основном реализовывали одновременное выполнение разных запросов, иначе говоря — inter-query parallelism: системы с такой организацией параллелизма развертывают на кластерах, которые иногда называют grid. Примерно такими были первые аналитические машины Teradata Parallel Transporter и хранилище данных Red Brick Warehouse (Informix).

Возникает вполне естественный вопрос: как in-database соотносится с MapReduce? Оказывается, самым лучшим образом — обе технологии удачно дополняют друг друга. В принципе Apache Hadoop, реализацию MapReduce с открытым кодом, можно использовать как самостоятельную СУБД, хотя со строгих научных позиций такая база имеет ряд недостатков, и не случайно Майк Стоунбрейкер назвал Hadoop «гигантским шагом назад, если рассматривать его как программную парадигму для приложений, предназначенных для работы с большими объемами данных». Однако интеграция MapReduce с СУБД позволяет компенсировать эти недостатки. В объединенной конструкции Hadoop — СУБД файловую систему HDFS (Hadoop Distributed File System) можно рассматривать как внешнее хранилище, доступ к которому обеспечивают необходимые определенные пользователями функции in-database или какие-то иные механизмы. В результате получается надежная и масштабируемая платформа, сочетающая в себе лучшие качества из двух миров. Наличие двух технологий в одной платформе позволяет оптимальным образом распределить между ними обязанности: требующие большого счета операции можно выполнять в базе, а менее требовательные — в Hadoop.

Использовать преимущества in-database можно несколькими способами: писать свои собственные аналитические программы, использовать готовое. Поставщики классических аналитических пакетов, например SAS, уже могут предложить решения, поддерживающие in-database. Но, по всей видимости, перспективнее еще один способ — сейчас активно формируется рынок заказных приложений, создаваемых специализированными компаниями, имеющими в своем составе сотрудников новой квалификации, называемых data scientist, способных разобраться в тонкостях прикладной области и разработать продукт, в точности соответствующий требованиям заказчика.

Большинство известных на сегодняшний реализаций in-database рассчитаны на упомянутые здесь аналитические машины, но в тех случаях, когда используются те или иные методы облачного хранения данных, целесообразно и аналитику перенести в облака. Примеры таких решений уже есть, они особенно интересны, когда данные не являются конфиденциальными, а у заказчика и исполнителя нет достаточных средств для приобретения дорогостоящих ресурсов. В качестве характерного применения аналитических систем класса in-database можно назвать весьма актуальную задачу страховки будущего урожая, решение которой усложняется тем, что отдельные фермеры, в отличие от крупных корпораций, не могут ее профинансировать, при том что все необходимые данные (метеорологические, экологические и др.) имеются.

По данным аналитиков Aberdeen Research, из 196 обследованных компаний, решающих аналитические задачи, 33 уже используют продукты класса in-memory, в которых их привлекает скорость, на два порядка более высокая, чем при традиционной обработке. Главная проблема на пути массового распространения технологий in-memory в высокой, хотя и постоянно снижающейся стоимости памяти. Но спрос есть, и в этом сегменте уже работают несколько компаний: Oracle (Big Data и Exalytics Appliances), SAP HANA, IBM, SAS и несколько стартапов.

Другая проблема состоит в незрелости технологий in-memory, и хотя каждый производитель утверждает, что именно он сделал решение, превосходящее все остальные, из-за отсутствия четких критериев и оценок, объективного мнения о достоинствах и недостатках того или иного подхода пока нет. Тем не менее можно выделить несколько доминирующих: размещение данных в СУБД, работающих в памяти; непосредственная работа с данными, чаще всего с привлечением технологий MapReduce/Hadoop; специальные фирменные решения.

На рынке появились так называемые чистые системы баз данных, работающие в памяти (Pure In-Memory Database System, Pure IMDS), которые следует отличать от традиционных СУБД, размещающих данные не на дисках, а в памяти, интерпретируемой как диск (RAM-disk). Перенос всех атрибутов в память замедляет работу таких баз, и по сравнению с ними Pure IMDS заметно быстрее. По своим «потребительским качествам» IMDS мало отличаются от обычных СУБД, они поддерживают и SQL, и интерфейсы к языкам программирования. Перенос функционала традиционной СУБД на RAM-disk увеличивает скорость работы в разы, а на IMDS дает ускорение на два-три порядка. Помимо чистых IMDS существуют различные гибридные варианты — Hybrid IMDS, позволяющие размещать часть данных в памяти, а часть на диске.

Примером IMDS может служить решение Oracle Exalytics Business Intelligence Machine, в котором используется аналитическая программа Oracle Business Intelligence Foundation, in-memory СУБД Oracle TimesTen In-Memory Database и серверы Oracle SunFire, память которых может быть доведена до 1 Тбайт. Всего этого достаточно для задач бизнес-аналитики, но может не хватить для анализа больших объемов неструктурированных данных. Для таких случаев предлагается комбинированное решение на базе Oracle Big Data Appliance, использующего сочетание Oracle Database 11g с Apache Hadoop, и Exalytics, работающая поверх Big Data Appliance.

При создании своей платформы HANA корпорация SAP тоже использует программные средства in-memory и аппаратное обеспечение от партнеров, на одном уровне интегрируя базу данных и вычисления. Основа HANA — резидентная в памяти платформа ICE (In-memory Computing Engine), состоящая из СУБД и вычислительного модуля BAE (Business Analytic Engine). База данных полностью совместима со стандартом SQL ANSI 92, поддерживает требования ACID и допускает как построчную, так и поколоночную организацию данных. С аппаратной точки зрения HANA — это стек сертифицированного SAP оборудования с предустановленной ICE и дополнительными программами, например Sybase Replication Server.

SAS развивает линейку High-Performance Analytics (HPA), в которой хронологически первым было решение SAS Grid Computing, поддерживающее распределенную обработку процессов в кластерной среде. Затем были выпущены продукты класса in-database, где распределенная обработка достигается путем переноса вычислений внутрь хранилища данных. Очередным шагом в развитии HPA стало создание третьей категории продуктов и решений, в которых воплощена технология in-memory. Детали реализации in-memory не раскрываются, а лишь утверждается, что речь идет не о варианте IMDS, а о ПО, рассчитанном для работы с серверами, построенными по MPP-архитектуре, и поддерживающем MapReduce, SQL и NoSQL. В декабре 2011 года было объявлено, что в первую очередь платформой HPA будут изделия от Greenplum и Teradata.

У IBM также имеется решение IMDS под названием solidDB, которое досталось ей после приобретения в 2007 году финской компании Solid, ориентированной на различного рода встроенные системы. СУБД solidDB основана на реляционной технологии, обеспечивает производительность порядка тысяч транзакций в секунду со временем ответа, измеряемым в микросекундах, и гарантирует максимальную готовность, поскольку всегда хранит два синхронизируемых экземпляра данных. В случае сбоя системы приложения могут восстановить доступ к solidDB менее чем за секунду без потери данных. СУБД имеет низкую стоимость владения и достаточно адаптивна.

Интересные решения предлагают некоторые стартапы. Компания Pentaho известна своими модульными аналитическими решениями с открытым кодом Pentaho BI Platform. Последнюю версию Pentaho Business Intelligence Enterprise Edition 4.1 отличает модуль Inifinispan In-Memory, служащий для кэширования СУБД. Компания Birst выпускает свою собственную IMDS Birst In-Memory Analytics Database, специально ориентированную на аналитику. Компания Terracotta в 2011 году была куплена Software AG, которая планирует использовать ее наработки в области технологий in-memory в своих будущих продуктах.

Уникальная Dataupia

Компания Dataupia — еще одно начинание Фостера Хиншоу, новые идеи которого не менее оригинальны, чем вложенные им в свое время в Netezza. Хиншоу развивает направление, которому он дал название omniversal transparency, первое слово придумано им самим, его можно интерпретировать как нечто среднее между универсальностью и всеядностью. Этим качеством обладает Satori Server, который еще называют Complimentary VendorDataupia, то есть дополнение к продуктам других производителей. Сервер всеяден — на его входе могут быть любые базы, и он является дополнением к другим базам. На самом деле это аппаратно-программный комплекс, имеющий в своем составе систему хранения, серверы, собственную базу данных и операционную систему.

***

Идея специализированной аналитической машины сегодня захватила многих ведущих игроков ИТ-индустрии — для решения проблемы Больших Данных, в частности обеспечения возможности решения аналитических задач в режиме реального времени, традиционные инфраструктуры уже не годятся. Новые устройства специально проектируются под нужды бизнес-аналитики и сочетают в себе лучшие качества современных аппаратных и программных архитектур, чтобы исключить возникновение любых узких мест на пути огромных потоков данных и обеспечить необходимую гибкость, масштабируемость и надежность.