Релиз СУБД PostgreSQL 9.1

Материал из Викиновостей, свободного источника новостей

12 сентября 2011 года

После года разработки увидел свет релиз открытой СУБД PostgreSQL 9.1. По словам Чарльза Фана (Charles Fan), вице-президента компании VMware, которая недавно анонсировала собственную облачную СУБД на основе PostgreSQL, "PostgreSQL 9.1 представляет лучший набор передовых возможностей промышленного уровня, чем любая другая СУБД с открытым исходным кодом. Проект поддерживается активным и инновационным сообществом с хорошей историей успеха среди пользователей. PostgreSQL хорошо подходит для создания и выполнения приложений в облачной среде."

Из ключевых улучшений 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".

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Релиз СУБД PostgreSQL 9.1», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.