Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

TimesTen - удачное приобретение Oracle

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

Компания TimesTen была образована в 1996 г., взяв за основу своего продукта прототипную реализацию системы Smallbase, разработанной в компании HP. Продукт компании быстро нашел свое место на рынке и в конце прошлого века пользовался достаточно большим спросом. В начале 2000-х в связи с общим кризисом в области IT в бизнес-деятельности компании наблюдался некоторый спад, который сменился новым подъемом в 2002 г. Этот подъем продолжался до июня 2005 г., когда компания была поглощена компанией Oracle.

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

Понятно, что максимальный объем базы данных, которой может управлять TimesTen, ограничен объемом доступной на компьютере основной памяти. Однако в действительности в текущей 32-разрядной версии системы (версии 6, выпущенной уже компанией Oracle) имеются ограничения на максимальный объем базы данных в 1 Гб для Windows и HP-UX и в 2 Гб для других систем (Linux, Solaris, AIX). В 64-разрядной версии подобные ограничения отсутствуют.

В TimesTen поддерживается стандарт SQL:1992 (за исключением некоторых отклонений в ассортименте поддерживаемых базовых типов данных). В том числе имеется поддержка SQL-транзакций. При работе в транзакционном режиме поддерживаются уровни изолированности транзакций Read Commited (без блокирования операций чтения за счет наличия версий) и Serializable. Утверждается, что даже при работе в этом режиме производительность TimesTen в несколько раз выше, чем у традиционных СУБД.

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

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

Следует заметить, что, наряду со строгой поддержкой транзакций, TimesTen обеспечивает возможность использования ряда более слабых режимов, от асинхронной журнализации (с выталкиванием буфера журнала только при его переполнении) до полного отказа от журнализации. Возможны и разные виды конфигурирования системы: она может использоваться в виде отдельного сервера баз данных или «встраиваться» в приложение (последнее не совсем верно, поскольку при работе в транзакционном режиме все равно запускается несколько системных процессов). В любом режиме приложение может взаимодействовать с базой данных через интерфейсы ODBC и JDBC (причем при работе через JDBC наблюдается существенное падение производительности – почти в два раза при использовании наиболее быстрого режима использования системы).

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

Второе направление – использование TimesTen в качестве встроенной СУБД в собственных продуктах Oracle (большей частью, недавно выпущенных). В частности, в настоящее время в продуктах BAM (Business Activity Monitor) и BPEL Process Manager для хранения служебных данных используются разные средства, не являющиеся промышленными продуктами. Имеются планы унифицировать внутренние базы данных продуктов Oracle на основе TimesTen.

Наконец, перспективным направлением, с точки зрения Oracle, является использование TimesTen для кэширования частей баз данных, управляемых сервером Oracle, на стороне клиента. В настоящее время в разных областях применения технологии Oracle применяются разные (иногда самодельные) решения, позволяющие повысить производительность приложений за счет кэширования баз данных на стороне клиента. Возможно, одной из причин, побудивших Oracle купить TimesTen, было то, что у компании TimesTen имелся отдельный инструмент, TimesTen Cache Connect to Oracle, фактически обеспечивающий требуемое кэширование.

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

  • с использованием SQL закачивает из базы данных Oracle требуемые таблицы, части таблиц или материализованные представления,
  • преобразует данные в свой формат (в частности, строит все требуемые индексы, у которых в TimesTen поддерживается особая структура, оптимизированная в расчете на работу в основной памяти)
  • и создает в базе данных Oracle специальный триггер (или группу триггеров), который отслеживает изменения соответствующей части базы данных и отправляет измененные данные в базу данных TimesTen.

Если над кэшированной частью базы данных выполняются операции обновления данных, то действует принцип «сквозной записи» в кэш, то есть измененные данные пересылаются в базу данных Oracle. Детали этой процедуры не слишком понятны, но, похоже, что используется тот же механизм репликации данных на основе журнала: обновления базы данных Oracle происходят при выполнении операции фиксации транзакции TimesTen.

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

CitCity

Ваш комментарий

Имя:

Текст комментария (HTML-теги не допускаются):

Новости мира IT:

Архив новостей

Последние комментарии:

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...