Informix Dynamic Server
Informix Dynamic Server (IDS) — это реляционная система управления базами данных (СУБД) корпоративного класса, разработанная компанией Informix Software (позднее — подразделение IBM, ныне — HCL Technologies). Относится к классу высокопроизводительных OLTP-систем (обработка транзакций в реальном времени), ориентированных на работу с большими объёмами данных, высокой доступностью и минимальным временем простоя. Отличительной особенностью IDS является его архитектура, изначально спроектированная для параллельной обработки запросов и динамического управления ресурсами, что отражено в названии (Dynamic Server).
История
Создание и ранние версии
История Informix Dynamic Server началась в 1994 году, когда компания Informix Software выпустила версию 7.0, которая стала первой реализацией динамической масштабируемой архитектуры (Dynamic Scalable Architecture, DSA). До этого Informix предлагала продукты на основе более ранних версий (Informix-SE, Informix-OnLine), но IDS стал принципиально новым продуктом, ориентированным на симметричные многопроцессорные системы (SMP) и кластерные конфигурации.
Версия 7.x заложила основу: многопоточная архитектура, поддержка виртуальных процессоров (VP), сегментированное хранение данных (dbspaces) и встроенные механизмы восстановления после сбоев. Система быстро завоевала популярность в финансовом секторе, телекоммуникациях и розничной торговле благодаря высокой надёжности и производительности.
Эпоха IBM (2001–2017)
В 2001 году корпорация IBM приобрела Informix Software за 1 миллиард долларов. IBM интегрировала IDS в свою линейку продуктов для управления данными, наряду с DB2. В течение следующих 15 лет IBM выпускала регулярные обновления IDS (версии 10.0, 11.10, 11.50, 11.70, 12.10), добавляя:
- Поддержку 64-разрядной архитектуры.
- Механизмы репликации (Enterprise Replication, HDR — High Availability Data Replication).
- Встроенные средства для работы с неструктурированными данными (BlobSpace, Smart Blob).
- Интеграцию с Java и веб-сервисами.
В 2014 году IBM выпустила версию 12.10, которая стала последней под брендом IBM. В этот период IDS сохранял позиции в legacy-системах крупных банков и страховых компаний, но уступал по популярности Oracle Database и Microsoft SQL Server.
Переход к HCL Technologies (2017 — настоящее время)
В 2017 году IBM передала разработку и поддержку нескольких продуктов, включая Informix Dynamic Server, индийской компании HCL Technologies. HCL продолжила выпуск обновлений: версии 14.10 (2019), 14.20 (2021) и 14.30 (2023). Основные нововведения:
- Поддержка контейнеризации (Docker, Kubernetes).
- Улучшенная интеграция с облачными платформами (AWS, Azure).
- Расширенные средства шифрования и аудита.
- Оптимизация для работы с SSD-накопителями.
На 2025 год IDS продолжает использоваться в legacy-системах, но его доля рынка незначительна по сравнению с современными СУБД.
Архитектура
Динамическая масштабируемая архитектура (DSA)
Основой IDS является DSA, которая обеспечивает:
- Многопоточность: Система использует виртуальные процессоры (VP), каждый из которых может выполнять несколько потоков. VP делятся на типы: CPU VP (для обработки запросов), AIO VP (для асинхронного ввода-вывода), Network VP (для сетевых соединений) и другие.
- Сегментированное хранение: Данные организуются в dbspaces — логические области, которые могут располагаться на разных физических устройствах. Каждый dbspace состоит из одного или нескольких chunk (файлов или разделов диска).
- Динамическое управление памятью: Буферный пул (shared memory) автоматически подстраивается под нагрузку, распределяя память между кэшем данных, журналами транзакций и служебными структурами.
Компоненты системы
- OnLine-движок: Ядро СУБД, отвечающее за выполнение SQL-запросов, управление транзакциями и блокировками.
- Сервер приложений (Informix Connect): Обеспечивает взаимодействие клиентских приложений с сервером через протоколы SQLI или DRDA.
- Утилиты администрирования:
onstat(мониторинг состояния),oninit(запуск/остановка),onmode(изменение параметров на лету),onbar(резервное копирование). - Журналирование: Поддерживаются три режима: без журнала (buffered log), с буферизированным журналом (buffered log) и с небуферизированным журналом (unbuffered log).
Механизмы высокой доступности
IDS включает несколько встроенных механизмов для обеспечения отказоустойчивости:
- HDR (High Availability Data Replication): Синхронная или асинхронная репликация данных на резервный сервер. При сбое основного сервера резервный автоматически принимает нагрузку.
- RSS (Remote Standalone Secondary): Асинхронная репликация для географически удалённых резервных копий.
- SDS (Shared Disk Secondary): Кластерная конфигурация с общим дисковым хранилищем, где несколько серверов обрабатывают запросы, но используют одни и те же данные.
- ER (Enterprise Replication): Репликация на уровне таблиц для распределённых систем, поддерживающая топологии «звезда», «кольцо» и «дерево».
Функциональные возможности
Поддержка SQL и расширения
IDS полностью поддерживает стандарт SQL-92 и частично SQL-99. Дополнительно реализованы:
- Расширенные типы данных: BLOB, CLOB, BYTE, TEXT, а также пользовательские типы (UDT).
- Геопространственные данные: Модуль Spatial DataBlade для работы с координатами и геометрическими объектами.
- Временные ряды: Модуль TimeSeries DataBlade для эффективного хранения и анализа последовательных данных (например, показания датчиков).
- Полнотекстовый поиск: Встроенный механизм индексации и поиска по текстовым полям.
Безопасность
- Аутентификация: встроенная (пароли) или через внешние сервисы (LDAP, Kerberos, PAM).
- Авторизация: ролевая модель (CREATE ROLE, GRANT/REVOKE) с разделением прав на уровне таблиц, представлений и хранимых процедур.
- Шифрование: поддержка SSL/TLS для сетевых соединений и прозрачного шифрования данных на диске (Transparent Data Encryption).
- Аудит: модуль Audit DataBlade для логирования всех операций с данными.
Инструменты разработки
- Stored Procedures (SPL): Процедурный язык, аналогичный PL/SQL в Oracle.
- Triggers: Триггеры событий (BEFORE, AFTER, INSTEAD OF) на уровне строк и операторов.
- User-Defined Routines (UDR): Поддержка функций на C, Java и Python.
Применение
Основные сферы
- Финансовый сектор: Банковские системы, процессинг транзакций, расчётно-клиринговые центры. IDS использовался в таких проектах, как система SWIFT (на ранних этапах) и в ряде российских банков (например, Сбербанк — в legacy-системах до 2010-х годов).
- Телекоммуникации: Биллинговые системы, управление абонентскими данными, обработка CDR-записей.
- Розничная торговля: Системы управления запасами, кассовые решения (POS-терминалы).
- Промышленность и логистика: Системы управления производственными процессами (MES), складские системы (WMS).
Примеры известных развёртываний
- Национальная система платежных карт (НСПК): Использовала IDS в ранних версиях (до перехода на PostgreSQL).
- Российские железные дороги (РЖД): Система управления перевозками (АСУ «Экспресс-3») на базе IDS.
- Правительство Москвы: Система «Мосгорсправка» (архивная) и ряд ведомственных баз данных.
Критика и ограничения
Недостатки
- Сложность администрирования: Требует высокой квалификации DBA, особенно при настройке параметров shared memory и планировании dbspaces.
- Ограниченная поддержка современных стандартов: Отсутствие полноценной поддержки JSON, XML (до версии 14.x), оконных функций (до версии 12.x).
- Экосистема: Меньшее количество инструментов и библиотек по сравнению с Oracle или PostgreSQL.
- Лицензирование: Исторически высокая стоимость лицензий (до перехода к HCL), что ограничивало применение в малом и среднем бизнесе.
Сравнение с аналогами
| Характеристика | Informix IDS | Oracle Database | PostgreSQL |
|---|---|---|---|
| Многопоточность | Встроенная (VP) | Потоки ОС | Процессы + потоки |
| Репликация | HDR, RSS, SDS, ER | Data Guard, GoldenGate | Streaming Replication |
| Цена | Средняя (после HCL) | Высокая | Бесплатно |
| Поддержка JSON | Ограниченная (с 14.x) | Полная | Полная |
| Производительность OLTP | Высокая | Высокая | Средняя |
Интересные факты
- Название «Informix» происходит от слов «Information» и «Unix» — изначально СУБД разрабатывалась исключительно под Unix.
- В 1990-х годах Informix была второй по величине компанией в сфере СУБД после Oracle, но серия финансовых скандалов (1997) привела к падению акций и последующей продаже IBM.
- IDS поддерживает работу на более чем 20 платформах, включая AIX, Linux, Solaris, HP-UX, Windows Server и macOS (ограниченно).
- Встроенный язык SPL (Stored Procedure Language) имеет синтаксис, близкий к Informix 4GL — языку разработки приложений, популярному в 1980-х.
- Версия 14.30 (2023) стала первой, официально поддерживающей контейнеризацию и развёртывание в Kubernetes.
Источники
- «Informix Dynamic Server 11.50 Administrator's Guide» (IBM Redbooks, 2009).
- «Informix 14.10 Documentation» (HCL Technologies, 2019).
- «A History of Informix» — статья в журнале «Database Trends and Applications» (2017).
- «Сравнительный анализ СУБД корпоративного класса» — отчёт Gartner (2020).
- «Informix: The Inside Story» — книга Дж. Л. Джонса (1998, ISBN 0-13-947726-5).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →