Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени И даже в области балета, мы впереди планеты всей Наши клиенты: » » » » » » » » » » » » » » » » » » » Министерство обороны РФ ФСБ РВ МВД РФ ВНИИСИ РАН АФК <Система> ВНИИРА-ОВД Воронежский государственный университет ФГУ РНЦ <Курчатовский институт> ОАО <Сургутнефтегаз> Lucent Technologies Inc. Toshiba American business solutions ADIC AlignMark, Inc. Florida International University Avantgarde Software, Inc. Step2Buy Inc. Ecora Software Corporation Global System Services EC-leasing Corporation Наши партнеры: » » » » » » » » » » » Global System Services ООО <Альт Линукс> ЗАО <Астра СТ> ООО <ЛОТ> Российская академия наук РНЦ Курчатовский институт Министерство промышленности, науки и технологий Российской Федерации Воронежский государственный университет Московский инженерно-физический институт Red Hat, Inc. VDEL Ltd. Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Переносимость » » » » » » » » QNX 4, QNX 6, VxWorks, ОС РВ, ОС/9, OS9000, Windows CE, linux и др. Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Гибкость ЛИНТЕР ЛИНТЕР лок БД Клиент Операторы БД Клиент Операторы БД лок БД Клиент лок БД Клиент лок БД Встроенные устройства Встроенные устройства Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Контроль размера файлов регистрации Контролируемые файлы : linter.out – файл регистрации событий ядра СУБД linter.log – файл трассировки запросов lintrace.log – файл трассировки планов выполнения запросов Пример: Linter.log__20080401010100 → Архив Linter.log__20080402010100 → Архив Linter.log__20080403010100 → Архив Linter.log Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Распределение по хранилищам ЛИНТЕР Временные данные ТЕМР Системная база данных SY00 Редко модифицицируемые данные Секретные таблицы SY01 … … Редко используемые данные … Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Асинхронность ПРОГРАММА ПРОГРАММА . . . . . . Запрос Продолжение работы запрос Запрос с указанием обработчика ЛИНТЕР запрос ЛИНТЕР Продолжение работы Ожидание завершения запроса Асинхронный обработчик Продолжение работы Продолжение работы Вызов асинхронного обработчика Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Многонитевость ПРОГРАММА ПРОГРАММА Нить 1 Нить 2 Нить 1 Нить 2 Запрос Запрос Запрос Запрос . . . . . . . . . . . . Ожидание ответа Ожидание ответа Асинхронный обработчик Асинхронный обработчик ЛИНТЕР ЛИНТЕР Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Статический SQL /* ESQL AT conn EXECUTE IMMEDIATE INSERT INTO T VALUES(:i); */ { PCI_NewVar((char *)&i,4,4,0,0,(int *) 0); #define PCI_STAT_TEXT \ "\276\000\040\111\002\000\001\000\274\000\264\000\067\111\000\040” \ “\000\000\003\000\004\000\002\012\000\377\377\377\377\377\377\000” \ “\000\000\000\377\377\000\000\001\000\030\007\000\000\004\000\002\0 12" PCI_PresetStat(PCIDb[0], 0, (_PCI_B_)PCI_STAT_TEXT, 192, 0, 1, 0); PCI_Exec(PCIDb[0], 4096, 0 , 0, 0); Fill_Sqlca((char *)&sqlca,0); #undef PCI_STAT_TEXT } Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Приоритеты 220 220 220 220 220 220 205 205 205 150 150 150 150 150 150 120 120 120 80 80 80 70 70 70 0 0 0 Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Управление выполнением запросов Оператор (Администратор) БД Запросы Клиенты 1 Клиент 2 Клиент Отменить 3 Клиент Остановить 4 Клиент Продолжить 5 Клиент 6 Клиент … … Повысить приоритет Понизить приоритет Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени События Приложение 2 Таблица Приложение 1 insert Wait event Добавлено! Приложение 1 Приложение 2 Таблица Wait event id=2 Id=2 Установлено! Приложение 2 Таблица 2 БД Таблица 1 Приложение 1 Ждем события АиВ Ответ Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Временные данные БД БД Временная таблица А Таблица А Приложение Приложение 1 Область таблицы «в памяти» Таблица А Таблица А Приложение 2 Таблица А Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Пакетная загрузка и извлечение данных Клиент Сервер … Put Many Линтер Row 2 … Сервер Клиент Row 1 Get Row 1 Row 2 Get Row 2 … Row 100 Get Many Линтер Row 100 Row 100 Клиент Сервер Row 1 Row 1 Row 2 Клиент Линтер … Get Row 100 Сервер Линтер Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Интеграция /app/bin/core – пользовательское приложение /app/bin/plugin.so – компонент пользовательского приложения /app/bin/ext1.so – компонент пользовательского приложения /app/doc/readme.txt /app/doc/user_manual.html /app/linter/linter – основной файл ядра ЛИНТЕР /app/linter/lhb – файл программы-архиватора ЛИНТЕР /app/db – каталог с БД ЛИНТЕР Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Подсистема безопасности • Лицензия ФСТЭК на проведение работ в области создания средств защиты информации • Лицензии РАСУ на разработку, производство и ремонт вооружения и военной техники • Лицензия ФСБ на осуществление работ с использованием сведений, составляющих государственную тайну • Лицензия Министерства обороны Российской Федерации на деятельность в области создания средств защиты информации • Сертификаты ФСТЭК России на соответствие СУБД ЛИНТЕР второму классу защиты информации от НСД и второму уровню контроля отсутствия НДВ Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Подсистема полнотекстовой индексации Поиск документов, содержащих слова или их комбинации Поиск документов, содержащих фразы с определённой последовательностью слов Поиск документов в которых определённые слова расположены на определённом расстоянии Поиск документов, содержащих слова, похожие на шаблон Поиск документов с игнорированием регистра Индексация документов на разных языках Индексация документов в форматах doc, ppt, xls, ps, rtf, xml, html Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Поддержка OpenGIS Типы данных: POINT - точка LINESTRING[ (n) ] - ломаная линия POLYGON[ (n) ] - многоугольник MULTIPOINT[ (n) ] - набор точек MULTILINESTRING[ (n) ] - набор ломаных линий MULTIPOLYGON[ (n) ] - набор многоугольников BOX - прямоугольник LINE - простая (не ломаная) линия CIRCLE - окружность GEOMETRYCOLLECTION[ (n) ] - набор геометрических объектов GEOMETRY - обобщенный геометрический тип (может содержать любой геометрический объект) Поддерживаются WKT- и WKB - форматы Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Архивирование 1. Архивирование набора таблиц. Параллельно разрешена работа других приложений 2. Архивирование всей БД. Параллельно разрешена работа других приложений. 3. Архивирование в режиме инкремента. Архив уже есть. В него переносятся только изменения с момента последнего архивирования. 4. Архивирование в режиме ожидания. Отдельно «висит» программа архивирования, отдельно идёт работа с БД. Как только в БД что-то пишется, то сразу передаётся в архив. 5. Ядро само может выполнять архивирование – клиент только подаёт команду на архивирование. Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Горячий резерв Главный Резервный Клиент Авария Клиент Синхронизация Клиент Резервный Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Дополнительные полезности Использование сверхбольших объёмов памяти Поддержка длинных файлов Поддержка Oracle-расширений (join, connect by, и т.п.) Поддержка новых возможностей SQL-2003 (Sequences, аналитические функции, Siblings, similar, match, select в select и т.п.) 5. Триггеры и хранимые процедуры. 6. Пользовательские функции. 7. Отложенные проверки целостности. 8. Графические утилиты администрирования. 9. Различные программные интерфейсы (odbc, jdbc, .net, oledb, perl, php, python, ruby) 10. И т.д. 1. 2. 3. 4. Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Память Минимальный размер запущенного ядра ЛИНТЕР – 900К. При этом отключены транслятор SQL, процедуры, триггеры, полнотекстовый поиск и т.п. Нормальные требования к памяти 2-4Мб. При этом в ядре СУБД присутствует вся функциональность и используется минимальный кэш. При необходимости, могут быть использованы десятки Гб памяти для кэширования БД. Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Проблемы в ОС реального времени VxWorks – упорядочены глобальные переменные, добавлены инициализаторы статических переменных, добавлены специальные интерфейсы для обмена приложений с ядром и запуска компонент ЛИНТЕР. ОС РВ – модернизированы механизмы обработки сигналов отдельными компонентами ядра и клиентскими приложениями, «обойдена» системная ошибка копирования данных memmove. OS/9 – реализованы специфические методы обмена между процессами, реализована многоуровневая система защиты от «зависания» ОС в случае активной работы с сетью. Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Проблемы в QNX Проблемы в QNX 1. Последний байт 2-Гб файла не читается. 2. Функции read и write для дисковых устройств могут быть прерваны на границе 512 байт. 3. Ошибка «нехватка памяти» при выполнении функции write Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Перспективы развития 1. Перенос в RTOS32 2. Аппарат хранимых событий. Позволит привязать к конкретному временному событию (фиксированному или циклическому) наступление определённого события или запуск хранимой процедуры. 3. Управление процессом квантования запросов по времени и возможность использования функции sleep() в хранимых процедурах. 4. Автоматическая аутентификация по имени пользователя, зарегистрированного в ОС. 5. Библиотека управления запуском и остановом ядра, создания БД и т.п. В глобальной перспективе – модернизация ядра СУБД по технологии микроядра с возможностью «горячего» обновления модулей. Особенности функционирования СУБД ЛИНТЕР в операционных системах реального времени Заключение Мы надеемся на вашу заинтересованность и поддержку в исполнении Планов. Спасибо.