Шрифт:
Новая версия ODS
Значительная часть запланированных изменений потребует реализации новой версии ODS (On-Disk Structure), что было признано неприемлемым для версии 1.5 (которая является полностью совместимой с IB6/FB1), поэтому введение новой ODS отложено до версии 2.0. Элементами новой ODS будут являться:
* увеличение размера полей, хранящих имена метаданных, что позволит обойти текущее ограничение в 31 символ;
* увеличение размера ряда внутренних идентификаторов до 64 бит, что позволит, например, хранить больше записей в одной таблице и обрабатывать большее количество транзакций без необходимости цикла backup/restore;
* более полная реализация безопасности метаданных на уровне SQL, что снимет сразу ряд имеющихся в настоящее время проблем в этой области;
* перенос информации о пользователях и группах из системной базы данных isc4.gdb внутрь оперативных баз данных для более качественной защиты тиражируемых продуктов;
* реализация признака корректности скомпилированного объекта базы данных и соответствующего механизма проверки (validation), что позволит более гибко контролировать зависимость объектов друг от друга и их работоспособность при обнаруженных нарушениях в цепочке зависимостей;
* возможность работы со значительно большими размерами ключа индекса;
* несколько новых типов данных и объектов базы данных.
Поддержка SMP
Несмотря на то что классическая архитектура сервера полностью использует возможности SMP-систем, она имеет ряд недостатков, которые накладывают слишком высокие требования на ресурсы сервера в случае очень большого количества соединений с базой данных. Как известно, корпорация Borland отказалась от развития архитектуры Classic и сосредоточила свои усилия на доработке кода SuperServer. В 2002 году мы увидели первый результат их работы - версию InterBase 7.0, в которой декларирована поддержка SMP.
Одной из целей разрабо!ки Firebird 2.0 также является полноценная поддержка SMP во всех вариантах сервера. Здесь можно пойти двумя путями: доработка кода SS (аналогично тому, что сделали в Borland) или объединение кода SS и CS с получением комбинированной архитектуры, позволяющей в зависимости от конфигурации работать либо в режиме разделяемого сервера с общим пулом потоков, либо в режиме выделенного сервера с одним процессом на каждое соединение, либо в одном из смешанных режимов (один сервер на N соединений, один сервер на каждую БД и т. п.). Оба варианта достаточно трудны в реализации, и разработчики проекта еще не приняли окончательного решения на этот счет, но пока наблюдается тенденция к выбору второго варианта (комбинированная архитектура). Это также позволит унифицировать исходный код и упростить внесение в него низкоуровневых изменений.
Средства мониторинга
Планируется введение ряда так называемых виртуальных таблиц, которые будут предоставлять пользователю или администратору доступ к внутренней информации сервера (подобный подход использован в InterBase 7.0).
Код. реализующий данные функциональные возможности, уже разработан участниками проекта, но необходимость тщательного проектирования виртуальных таблиц и тестирования существующей реализации не позволила включить его в версию 1.5. поэтому эти возможности станут доступными только в версии 2.0
Дальнейшее развитие языка SQL
Развитие будет осуществляться по следующим направлениям:
* добавление новых или расширение возможностей существующих команд DDL, в частности по работе с доменами, признаками полей таблиц, кодом процедур и триггеров;
* реализация уникальных ограничений (unique constraints) с возможностью хранений NULL-значений;
* расширение состава встроенных функций в соответствии с SQL-стандартом (TRIM, POSITION, ROUND и т. п.);
* поддержка стандартного типа BOOLEAN (принимающего значения TRUE, FALSE или UNKNOWN) в полях, переменных и логических предикатах языка;
* большее соответствие существующих команд SQL-стандарту.
Заключение
Итак, мы совершили обзор событий прошедшего года, которые привели к появлению версии 1.5, и оценили ее возможности. С полной уверенностью можно сделать вывод, что развитие проекта перешло в качественно новую стадию по сравнению с ситуацией, имевшей место один-два года назад. Перечень новых возможностей в языке SQL, а также изменения в архитектуре и сопутствующее улучшение производительности действительно дают новой версии СУБД весьма неплохие шансы на рынке открытых систем. Постоянно растущая инфраструктура проекта, включающая в себя сторонние программные продукты, техническую поддержку и документацию, также способствует укреплению положения проекта в мире Open Source. Все это, включая планы по разработке версии 2.0, позволяет считать Firebird серьезным продуктом, способным быстро и качественно решать задачи, предъявляемые к системам такого класса.
Приложения
Глоссарий
Active tables (активные таблицы). Концепция, применяемая в InterBase для реализации системных таблиц (см. статью System tables). Они активны в том смысле, что изменения в них запускают связанные с этими изменениями логические и физические действия. Например, добавление индекса и его сегментов в соответствующие системные таблицы вызывает распределение страниц, которые будут содержать индексные структуры.