Computerworld, США

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

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

Некоторые из этих инструментов «хранят» информацию в размещаемых в оперативной памяти базах данных – либо реляционных, либо обюектно-ориентированных. Однако в основном они предназначены для анализа данных и ускорения обработки транзакций, а не для того чтобы выступать в роли эффективного хранилища.

Спасибо за память

Компания Interact, разработчик программного обеспечения для телекоммуникационных операторов, уже более десяти лет использует возможности базы данных, размещаемой в памяти серверов HP NonStop, для вычисления стоимости входящих телефонных звонков. Однако, как пояснил директор Interact по развитию бизнеса Том Массей, большие, дорогие компьютеры оказались чрезмерными для некоторых клентов Interact, например, для небольших реселлеров услуг мобильной телефонии.

Поэтому полтора года назад Interact начала предлагать сервис расчета стоимости звонков, которая работает на серверах Linux и Unix и использует СУБД Open TimesTen In-Memory.

«NonStop – большой компьютер, который подходит для крупных операторов, – пояснил Массей. – Платформы Linux и Unix масштабируются значительно лучше, а операторы зачастую отдают им предпочтение просто потому, что не знают о NonStop».

Oracle приобрела технологию TimesTen в июне 2005 года. Руководство корпорации рассматривало базу данных, размещаемую в памяти, как способ распространить возможности базового хранения корпоративных данных на высокопроизводительные приложения реального времени, такие, как приложения Interact. Кроме того, в Interact используют СУБД Oracle в качестве основного механизма хранения данных, пока не поддерживая интерфейс с TimesTen, но, по словам Массея, планируют это сделать.

«Нам необходимо время ответа менее 10 мс, и добиться такой производительности от реляционной СУБД Oracle невозможно», – заметил Эд Макки, директор Interact по приложениям.

С другой стороны, как отметил он, базы данных TimesTen, размещаемые в памяти, не подходят для крупномасштабного архивирования данных. Interact может обслуживать 1 млн. телефонных абонентов, размещая в памяти данные обюемом всего 2 Гбайт, ведь в интерактивном доступе должна находиться только информация о балансе счета абонента.

Компания Aspect Software использует TimesTen для поддержки работы своего контакт-центра. По словам директора Aspect Software по технологии Гэри Барнетта, традиционные СУБД не обеспечивают возможность маршрутизации звонков за время менее 500 мс, что необходимо для таких операций. В контакт-центрах Aspect, как правило, имеются большие базы данных с информацией о клиентах, но данные о ключах для кэша размещаются в памяти, что позволяет практически мгновенного получать информацию при обращении клиентов.

Однако очень непросто принять решение о том, какие данные необходимо тиражировать и насколько часто.

«Компромисс очевиден: чем больше данных вы помещаете в память, тем более интеллектуальным должен быть механизм маршрутизации звонков. Но чем больше данных вы получаете в режиме реального времени, тем дороже это обходится», – заметил Барнетт.

Некоторые пользователи выбирают резидентный в памяти механизм, ориентируясь на его функциональность, а высокая производительность становится побочным результатом. Например, компания Interstate Hotels & Resorts, в состав которой входят более 300 отелей, выбрала инструментарий финансового анализа TM1, в первую очередь, высоко оценив удобство его использования.

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

Инструментарий TM1, который в самой компании Applix называют «самым быстрым в мире механизмом бизнес-анализа», переносит размещаемую на диске информацию из базы данных Oracle в систему бухгалтерских расчетов Interstate, находящуюся в памяти, в формате электронных таблиц Excel. Отсюда пользователи, не имеющие никаких технических навыков, могут запускать финансовые модели, построенные по принципу «что – если», а также генерировать различные финансовые отчеты с учетом специфических для пользователя критериев.

«В системе бухгалтерских расчетов для того, чтобы создать одну справку о финансовом состоянии за месяц одного отеля при работе с реляционной СУБД может потребоваться около 30 минут, – сказал Бушмен. – Но теперь мы можем получать сводную ведомость по всем 300 отелям буквально за пару секунд».

Анализ «на лету»

Если большинство эти продуктов «реального времени» добиваются своей фантастической производительность за счет переноса данных в память, то механизм потоковой обработки StreamBase компании StreamBase Systems анализирует входящие данные. Приложения StreamBase используют модель «входящей» обработки запросов, при которой записи обрабатываются до их индексации и сохранения. Записи передаются через запрос, который может преобразовывать данные при их перемещении.

Компания Vision Systems & Technology помогает нескольким предприятиям оборонной отрасли оценить технологии StreamBase. По словам Керол Ландквист, консультанта VSTI, эта технология может формировать уведомления в тех случаях, когда передаваемая запись, например, содержит определенное имя или телефонный номер.

«Некоторые системы государственных ведомств переполнены данными, – подчеркнула Ландквист. – Традиционные системы для их поддержки не подходят, и данные попросту теряются».

Одна из информационных систем, с которой работала Ландквист, получала по 1 млрд. записей в день.

«Для некоторых таких систем фильтрация может оказаться спасением, – считает Брайан Харрис, директор VSTI по технологиям. – Идея заключается в том, чтобы загрузить иголку, а не стог сена».

По мнению Харриса, потоковые технологии могут дополнять традиционные реляционные СУБД, а не конкурировать с ними. И в любом случае, по его словам, они не обязательно являются альтернативой базам данных, размещаемым в памяти.

«Если вы передаете запросы к множеству различных систем, то это требует большого обюема обработки по всей сети, – сказал он. – При кэшировании данных в памяти, если все сделано корректно, можно значительно сократить используемые системные ресурсы. Но это, в целом, не решает вопроса обработки потока».

По мнению Харриса, в зависимости от состава имеющихся приложений, компания может выиграть, если будет использовать некую комбинацию дисковых баз данных, баз данных, размещаемых в памяти, и потоковых технологий.

Еще один вариант размещаемых в памяти баз данных предлагает компания Ants Software. Ants Data Server представляет собой реляционную СУБД, которая изначально совместима с популярными дисковыми системами, такими как Microsoft SQL Server, IBM DB2 и Informix, а также с продуктами Oracle, Sybase и MySQL. И, поскольку они размещаются на диске, в памяти, или и там, и там, нет необходимости создавать интерфейс между внешними и внутренними базами данных. Благодаря сочетанию таких характеристик, Ants легко масштабируется.

Однако своей популярностью Ants, в первую очередь, обязана тому, что, несмотря на то, что она использует реляционную технологию, в ней практически исключена блокировка на уровне строк таблицы, которая может замедлить поиск в традиционных реляционных СУБД при высоких нагрузках. По словам генерального директора Ants Бойда Пирса, причина того, что традиционные реляционные СУБД не выдерживают высоких нагрузок, заключается в том, что они плохо определяют ситуации, когда возникает реальный конфликт операций чтения и записи и когда нужна блокировка.

«На самом деле, блокировка необходима в крайне редких случаях», – заметил Пирс. Компания Wireless Services, которая предоставляет операторам беспроводной связи услуги хостинга данных, выбрала Ants, в первую очередь потому, что это решение предлагает очень простой способ перехода на Microsoft SQL Server. Как считает Курт Миллер, небольшие компании могут полностью разместить все свои данные на одном SQL-сервере. По мере роста системы, компания переходит на два или несколько компьютеров с SQL Server. И в какой-то момент Миллер добавил серверы Ants для высокопроизводительной обработки сообщений в интерфейсных компонентах. Он вспоминает, что при отсутствии Ants функция блокировки таблицы при нагрузке более 1000 сообщений в минуту, просто выводила его из себя.

Поскольку Ants поддерживает стандарт ODBC, перейти на новое решение можно мгновенно.

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

Стимуляция спроса

Джим Грофф, старший вице-президент корпорации Oracle и бывший генеральный директор компании TimesTen, считает, что превращение размещаемых в памяти баз данных из решений для специализированных рынков, таких как торговля ценными бумагами, в массовые продукты, определяют две тенденции. Первая тенденция – это появление недорогих 64Б??разрядных микропроцессоров, отодвинувших существовавший ранее предел емкости физической памяти в 2 Гбайт, которые были ранее доступны приложениям Wintel. Вторая связана, по словам Гроффа, с появлением в корпоративной архитектуре интеллектуального промежуточного уровня. К этому уровню относят серверы приложений и программное обеспечение промежуточного слоя, здесь выполняется мониторинг бизнес-операций и находятся Web-сервисы. И именно здесь выполняется огромный обюем операций, относящихся к корпоративным ИТ.

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

«Ни масштабирование, ни возможности базовых систем не позволяют сами по себе решить эту задачу, – подчеркнул Грофф. – Поэтому основным решением становится интеллектуальное кэширование нужной информации на промежуточном уровне».

Применение потоковых технологий в системах управления цепочками поставки станет необходимым, когда метки радиочастотной идентификации будут устанавливаться не на коробках с товарами, а на каждом товаре отдельно. «В перспективе сети датчиков станут одной из основных сфер применения таких решений, – считает Майк Стоунбрекер, директор по технологиям StreamBase. – Практически на любые предметы можно установить такие метки».


Участники рынка

Высокопроизводительные механизмы управления базами данных предлагает целый ряд производителей.

Ants Data Server

Ants Software, www.ants.com

Основные особенности: SQL-совместимая реляционная СУБД размещается в памяти или на диске, либо и там, и там. Позволяет исключить большинство случаев блокировки таблиц.

TM1

Applix, www.applix.com

Основные особенности: финансовый анализ/моделирование в памяти в формате Excel или Web-клиента для данных, получаемых из основных баз данных.

db4o

Db4objects, www.db4o.com

Основные особенности: свободно распространяемая обюектная СУБД для сред Java и .Net.

GemFire Enterprise Data Fabric

GemStone Systems, www.gemstone.com

Основные особенности: виртуализация данных, распределенное кэширование и сложная обработка событий.

kdb+

Kx Systems, www.kx.com

Основные особенности: интегрированная реляционная СУБД связывает память и диск для потоковой обработки в режиме реального времени и хранения в основных системах.

TimesTen In-Memory

Oracle, www.oracle.com

Основные особенности: размещаемая в памяти реляционная СУБД для встроенных приложений или интерфейсного кэширования данных.

ObjectStore ODBMS

Progress Software, www.progress.com

Основные особенности: обюектная система управления базами данных и моделирования в режиме реального времени для сред Java и C++.

Prime Processing

Skyler Technology, www.skylertech.com

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

EmbeddedEngine и BoostEngine

Solid Information Technology, www.solidtech.com

Основные особенности: интегрированные реляционные СУБД, размещающие данные в памяти и на диске.

StreamBase

StreamBase Systems, www.streambase.com

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

Velocity

Vhayu Technologies, www.vhayu.com

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


Управление данными со скоростью доступа к памяти

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

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

Если вы хотите посылать запросы к базе данных пользующихся спросом книг более 1 млн. раз в минуту, сделать это в стандартной реляционной СУБД будет весьма затруднительно. Но именно в таких условиях работает система ObjectStore компании Progress Software, используемая Amazon.com. Если вы хотите пересчитывать множество OLAP-кубов в режиме реального времени, не стоит даже думать о системе, ориентированной на работу с жестким диском. А вот TM1 компании Applix для этого подойдет. И, если вы хотите установить экземпляры СУБД на 99 узлах телекоммуникационной сети, причем так, чтобы они все тиражировали данные на сотый узел, дисковая система – далеко не лучший выбор. Однако Solid Information Technology предлагает продукт, который прекрасно справится с этой задачей. По сути своей каждый из этих программных продуктов использует один и тот же технологический подход: большое количество перекрестных указателей. Случайный доступ при работе с диском – вещь крайне затратная и требующая, по крайней мере, миллисекунды для того, чтобы перейти от одной точки к другой. Но в случае оперативной памяти проблем не возникает.

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

Аналитическая технология, рассчитанная на работу с памятью, используется уже давно, но вполне возможно, что вы ничего о ней не слышали. Росту популярности подобных решений мешают ограниченные по размеру адресного пространства 32-разрядные процессоры и, больше того, лимит масштабируемости большинства параллельных аппаратных архитектур. Но так было до того как масштабные лезвийные и grid-архитектуры позволили обюединять вместе огромное количество центральных процессоров. Вы хотите иметь на своем сервере оперативную память емкостью 100 Гбайт? Нет проблем. Можно даже 1 Тбайт, если вам это по карману. И с каждым днем это становится сделать все проще, по мере того, как емкость оперативной памяти на плате удваивается и есть возможность использовать высокую производительность 64-разрядных процессоров.

Возможно, самый простой из ориентированных на работу с оперативной памятью подходов к управлению аналитическими данными состоит в использовании сверхбыстрого инструментария SAP BI Accelerator (он же HPA, он же Euclid). По существу, следует взять InfoCube, предварительно созданное хранилище SAP, имеющее звездчатую структуру, закачать его в оперативную память с помощью подходящего алгоритма сжатия разреженных данных и выполнять все аналитические запросы с помощью поиска целиком по всем таблицам. Конкурировать с таким решением сложно, если вы ограничены скоростью доступа к диску. Самый уникальный подход, по-видимому, это TM1 – рассчитанный на работу с памятью MOLAP-инструментарий компании Applix, который поддерживает абсолютно гибкие правила оценки без каких бы то ни было выполняемых на диске предварительных вычислений. Благодаря этому он одновременно обладает большинством преимуществ аналитической СУБД и многими достоинствами обычных электронных таблиц и заслуживает стать основой большинства приложений планирования, по крайней мере, до тех пор, пока не появится что-то лучшее.

Рассчитанные на работу с памятью OLTP, не столь зависящие от общего обюема имеющейся оперативной памяти, скорее всего, пока остаются самыми известными на рынке, хотя, главным образом, в очень небольшом количестве сегментов. ObjectStore предлагает обюектно-ориентированные решения, рассчитанные на работу с памятью, для некоторых, наиболее требовательных к производительности OLTP-приложений. Причем используется эта система не только в книжном магазине Amazon.com, но и в некоторых системах планирования и бронирования авиабилетов. Продукты компаний Progress, TimesTen и StreamBase применяются в критичных ко времени системах поддержки финансовых операций. TimesTen и Solid Information Technology поддерживают управление в режиме реального времени биллинговыми и некоторыми другими функциями в крупных телекоммуникационных сетях.

Подозреваю, ярлык «специализированные» применительно к подобным решениям в скором времени утратит свой смысл. Oracle купила TimesTen и, скорее всего, не для нескольких частных приложений. Вы недавно приобрели лицензию на Real Application Clusters? Отлично. Значит, в скором времени вам предстоит решать общую проблему, связанную с производительностью и кэшированием. Так что ждите появления в своем офисе представителя Oracle.

– Курт Монаш, Computerworld, США