Rambler's Top100

(c)2009-2017 openinfotech.ru

СУБД HyTech

Пресса о СУБД


СУБД HyTech: ОЦЕНКА ПЕРСПЕКТИВ РАЗВИТИЯ И ПРИМЕНЕНИЯ АРХИТЕКТУРНЫХ РЕШЕНИЙ

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

Широкое применение зарубежных средств вычислительной и телекоммуникационной техники, программного и информационного обеспечения, вызванное объективной невозможностью отечественной промышленности удовлетворить спрос на современные информационные технологии, привело к тому, что сегодня российский рынок информационных технологий более чем на 90 % представлен инструментальными средствами импортного производства. В программном обеспечении состояние еще более плачевное. 99 % – это импортное программное обеспечение, включающее операционные системы, системы управления базами данных, системы разработки приложений, системы поддержки сетевых протоколов и другие универсальные базовые средства.

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

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

Примером такого успешного программного продукта является СУБД HyTech, которая существует более 20 лет. Следует заметить, что ее идеология разрабатывалась коллективом, большинство членов которого являются выпускниками МИФИ. Примером масштабного проекта с применением СУБД HyTech в качестве информационного ядра является система Фонда социального страхования РФ (ФСС). БД ФСС является распределенной и включает в себя тысячи узлов, система рассчитана на одновременную работу десятков тысяч пользователей.

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

Основные достоинства универсальных коммерческих СУБД:

  • стандартизация интерфейсов (SQL);
  • высокая надежность;
  • хорошая масштабируемость;
  • наличие рынка специалистов;
  • наличие большого количества бизнес-приложений с универсальной СУБД в качестве основного компонента;
  • СУБД разработаны ведущими производителями – лидерами ИТ рынка.

    Однако универсальные СУБД не лишены и недостатков. Вот основные из них:

  • недостаточная производительность при применении в специальных областях;
  • высокая сложность (следствие – высокая стоимость подготовки специалистов);
  • неоправданно высокая стоимость владения (лицензии, аппаратура, персонал);
  • как правило, отсутствие открытых программных кодов;
  • практически невозможна сертификация СУБД, как компонента систем ответственного применения;
  • недостаточно быстрая реакция на новые требования.

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

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

    Перейдем к СУБД HyTech и ее перспективам с учетом реалий современного рынка СУБД. Прежде всего, заметим, что СУБД HyTech сочетает в себе как элементы универсальной СУБД, так особенности, присущие специализированным.

    Прежде всего, СУБД HyTech – это универсальная СУБД, которая предназначена для применения в качестве информационного ядра в OLTP системах и системах анализа данных.

    Характерные черты СУБД HyTech:

  • распространяется как полностью бесплатное ПО;
  • СУБД HyTech стандартизованный интерфейс (SQL соответствует ANSI SQL-89);
  • в основу СУБД положен архитектурный принцип "ничего лишнего". Поддержаны базовые функции СУБД, остальная функциональность реализуется сторонним ПО;
  • высокая масштабируемость и производительность;
  • низкие требования к аппаратному обеспечению;
  • высокая надежность (ядро СУБД существует более 20 лет);
  • встроенное процедурное расширение SQL (тригеры, хранимые процедуры и т.п.)
  • простота использования (разработка и администрирование);
  • встроенные возможности для поддержки работы с распределенными БД;
  • возможность сертификации исходного кода.

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

    Остановимся подробнее на дифференциальной организации БД.

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

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

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

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

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

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

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

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

    Каковы дальнейшие перспективы СУБД HyTech? Говоря о технических перспективах следует упомянуть такие направления развития, как: повышение уровня стандартизации интерфейсов (SQL), совершенствование интерфейсов с популярными средствами разработки, развитие открытой модульной архитектуры, новые процедурные расширения, совершенствование ядра СУБД (новые типы данных, оптимизация запросов, повышение производительности), совершенствование средств администрирования, совершенствование средств обеспечения безопасности. Помимо чисто технических перспектив, СУБД HyTech имеет и перспективы организационно – экономические: расширенные рынка специалистов (в том числе, целевая подготовка в вузах), использование HyTech в качестве компонента информационных систем в бизнесе, сертификацию СУБД для использования в системах ответственного применения (государственные структуры), развитие проекта HyTech как открытого ПО.

    И.О. АТОВМЯН, Р.В. АЛФИМОВ, С.С. КОВАЛЕВСКИЙ, В.Б. ШУВАЛОВ, Национальный исследовательский ядерный университет «МИФИ».