Релиз СУБД PostgreSQL 9.1
Опубликовано 12 Сентябрь 2011 15:53:49
После года разработки увидел свет релиз открытой СУБД PostgreSQL 9.1. По словам Чарльза Фана (Charles Fan), вице-президента компании VMware, которая недавно анонсировала собственную облачную СУБД на основе PostgreSQL, "PostgreSQL 9.1 представляет лучший набор передовых возможностей промышленного уровня, чем любая другая СУБД с открытым исходным кодом. Проект поддерживается активным и инновационным сообществом с хорошей историей успеха среди пользователей. PostgreSQL хорошо подходит для создания и выполнения приложений в облачной среде."
Источник: http://www.opennet.ru/opennews/art.shtml?num=31731
Из ключевых улучшений PostgreSQL 9.1 можно отметить:
- Поддержка синхронной репликации, при которой запасной сервер (standby) будет содержать гарантированно совпадающие с основным сервером данные - до получения подтверждения записи синхронизированных данных транзакция не будет считаться завершенной. Ранее репликация на запасной сервер осуществлялась только в асинхронном режиме. Синхронную репликацию можно применять для отдельных транзакций, что позволяет комбинировать оба механизма, используя по умолчанию быстрый асинхронный механизм для обычных операций и надежный синхронный для наиболее критичных изменений;
- Поддержка указания COLLATION-свойств для отдельных столбцов, доменов, индексов и выражений, что позволяет задать для разных столбцов свои правила хранения, сортировки и сравнения с учетом указанной локали. Например: CREATE TABLE test1 ( a text COLLATE "de_DE", b text COLLATE "ru_RU"...). Ранее COLLATION могли быть указаны только на уровне БД в целом.
- Возможность исключения отражения в WAL-логе активности по отдельным таблицам. Подобные таблицы отличаются повышенной производительностью, но могут привести к потере данных в случае краха СУБД. Для создания подобных таблиц при выполнении "CREATE TABLE" следует указать признак "UNLOGGED";
- Реализация KNN GiST индексов (K-Nearest-Neighbor), добавляющая в GiST поддержку алгоритма оптимального поиска ближайших соседей, что может быть использовано для организации поиска географических объектов;
- Добавлен уровень изоляции "настоящая сериализация", основанный на REPEATABLE READ (бывший SERIALIZABLE), но с перепроверкой условий запроса (predicate locking);
- Возможность использования выражения "WITH" с операциями INSERT, UPDATE, DELETE, что позволяет осуществить рекурсивное обновление столбцов или обновление по сложному критерию, ранее требовавшему написания встраиваемой процедуры;
- Интеграция поддержки SELinux для управления доступом на уровне объектов БД. Для привязки SELinux-меток к объектам или изменения меток следует использовать выражение "SECURITY LABEL". Пример: "SECURITY LABEL FOR selinux ON TABLE mytable IS 'system_u:object_r:sepgsql_table_t:s0';";
- Поддержка расширений, позволяющих упростить формирование пакетов, расширяющих функциональность СУБД. Для создания расширения следует использовать новые команды "CREATE/ALTER/DROP EXTENSION". Выражения createlang и droplang, а также старые методы установки contrib-модулей, в связи с появлением расширений объявлены устаревшими;
- Поддержка прикрепленных таблиц SQL/MED (Management of External Data), позволяющих через таблицу-враппер управлять при помощи SQL внешними данными, не хранимыми силами СУБД. Например, можно организовать связывание и запросы с другими СУБД;
- Значительно улучшена реализация PL/Python, в том числе исправлена давно портящая жизнь разработчикам утечка памяти при работе с массивами;
- Возможность выполнения сложных многоэтапных операций по обновлению данных в рамках единого запроса;
- Поддержка установки триггеров на представления с целью обеспечения программируемых действий над операциями по вставке, обновлению и удалению данных (INSERT, UPDATE и DELETE);
- Возможность модификации содержимого ENUM-полей (упорядоченный перечисляемый тип данных). Отныне можно добавлять новые значения в тип данных ENUM без пересоздания типа и обновления связанных таблиц;
- Поддержка использования имен хостов вместо IP-адресов в файле pg_hba.conf;
- Дополнительные возможности обслуживания и мониторинга, включая поддержку интроспекции контрольных точек (checkpoint introspection) и учет информации о последних изменениях WAL-лога (last-WAL-timestamp) в репликации;
- Несколько новых встроенных функций: format(), pg_describe_object(), pg_read_binary_file(), которые поддерживают технологию подключения дополнений. Добавлены новые функции для обработки XML-данных: xmlexists, xpath_exists, xml_is_well_formed; Добавлены новые строковые функции: concat(), concat_ws(), left(), right() и reverse();
- Новый модуль auth_delay, позволяющий реализовать дополнительную задержку в случае некорректной аутентификации для защиты от атак по подбору паролей;
- Произведена переработка методов оптимизации для агрегатных функций min/max;
- Увеличены максимальные значения большинства настроек, связанных с установкой таймаутов;
- Добавлена поддержка конструкции "CREATE TABLE IF NOT EXISTS", позволяющая создавать таблицу только если она еще не существует;
- Изменено значение по умолчанию для опции "standard_conforming_strings", которая теперь переведена в активное состояние, что значительно отражается на совместимости с прошлыми выпусками, так как опция блокирует выполнение некоторых операций со стоками, выполняемых небезопасным путем;
- Добавлены новые параметры файла конфигурации: log_file_mode для задания прав доступа на лог-файл, и restart_after_crash для управления поведением сервера в случае краха;
- Добавлена поддержка аутентификации сервера через доменные сокеты Unix (Unix-domain sockets);
- В представления "pg_stat_*_tables" добавлены счетчики выполнения операций vacuum и analyze;
- В утилиты pg_dump и pg_dumpall добавлена опция "--quote-all-identifiers", включающая режим заключения в кавычки идентификаторов;
- В командной оболочке psql расширены возможности команд "\e" и "\ef", в которых теперь допустимо указания номера строки и возможно перемещение курсора в режиме редактирования на указанную позицию. Для просмотра информации о текущих соединениях добавлена команда "\conninfo".
Источник: http://www.opennet.ru/opennews/art.shtml?num=31731
|
0 | Tweet | Нравится |
|