Началось бета-тестирование СУБД PostgreSQL 10

5 месяцев ago admin 0

Доступна для тестирования бета-версия СУБД PostgreSQL 10. Релиз ожидается в начале осени. Выбор номера версии 10.0 вместо 9.7.0 связано с переходом проекта на новую нумерацию выпусков. Вместо трёхуровневневой нумерации (Major1.Major2.Minor) отныне будет применяться схема «Major.Minor», в которой «Major» указывает номер значительной ветки, а «Minor» — номер корректирующего обновления, не требующего перезаливки БД. Таким образом, первым корректирующим релизом PostgreSQL 10 станет 10.1, а следующей значительной версией PostgreSQL 11. Как и раньше значительные версии будут формироваться раз в год.

Основные улучшения:

  • Режим логической репликации, позволяющий выборочно реплицировать только заданные таблицы или использовать репликацию в процессе обновления. Данный вид репликации манипулирует логическими изменениями на уровне выполняемых операций, в то время как традиционная репликация работает на очень низком уровне, перенося байтовые изменения в WAL-журнале;
  • Добавлены встроенные возможности партицирования таблиц по диапазонам значений и спискам — разбивка теперь может задаваться через выражения «PARTITION BY» и «PARTITION OF» в директиве «CREATE TABLE». Например:
       CREATE TABLE padre (    id       serial not null,    nombre     text not null,    fch_creado   timestamptz not null   )   PARTITION BY RANGE ( id );    CREATE TABLE hijo_0    partition of padre (id, primary key (id), unique (nombre))    for values from (unbounded) to (9);    CREATE TABLE hijo_1    partition of padre (id, primary key (id), unique (nombre))    for values from (10) to (unbounded); 
  • Обеспечено распараллеливание с задействованием нескольких ядер CPU таких операций, как сканирование индексов и битовых карт, выполнение запросов со слиянием таблиц (JOIN);
  • Возможность подтверждения коммитов на основе кворума для предотвращения потери данных после выхода из строя сразу нескольких синхронно реплицируемых узлов. Например, теперь можно указать, что коммит должен быть подтверждён любыми К из N запасных синхронно реплицируемых серверов, без жестко заданной последовательности проверки;
  • Поддержка отслеживания незавершённых коммитов — позволяет выяснить статус недавно запущенной транзакции для организации восстановления после краха или обрыва соединения;
  • Поддержка аутентификации SCRAM для организации более безопасного доступа по паролю;
  • Многохостовый режим отказоустойчивости в libpq, при котором клиент соединяется с первым работающим хостом из заданного списка;
  • Добавлен параметр «target_session_attrs», позволяющий клиенту запросить хост, доступный на запись или чтение;
  • Для индексов типа Hash обеспечена поддержка репликации и повышена устойчивость к сбоям после крахов;
  • Добавлен новый тип полномочий, определяющий доступ к функциям мониторинга;
  • Добавлено выражение XMLTABLE, позволяющее представить XML-документ в табличном формате, что существенно упрощает разбор XML-данных, хранимых в БД;
  • Поддержка полнотекстового поиска для типов JSON и JSONB;
  • Поддержка сжатия данных в журналах pg_receivewal;
  • Добавлены средства для накопления статистики по корреляции данных в разных столбцах, которая может оказаться полезной для исключения выбора планировщиком некоторых ошибочных стратегий;
  • Добавлена независимая от операционной системы реализация свойства локали «Collation», позволяющего задавать правила сортировки и методы сопоставления с учётом смысла символов. Реализация основана на libicu и идентична для Linux и Windows;
  • Увеличена производительность функции SUM(), преобразования кодировок символов, выполнение выражений, группировки множеств и выполнения операций JOIN над уникальными столбцами. При выполнении аналитических запросов над большим числом строк наблюдается ускорение до 40%;
  • Из нарушающих совместимость изменений отмечается переименование «xlog» в «wal», прекращение поддержки устаревшего протокола FE/BE 1.0, изменение настроек по умолчанию для репликации и резервирования (pg_basebackup), прекращение поддержки значений времени (Timestamps) с плавающей запятой, удаление contrib/tsearch2 и прекращение поддержки в pg_dump баз данных от PostgreSQL 7.4 и более ранних выпусков.


Source: pirates.in.ua