После 15 месяцев разработки увидел свет релиз новой стабильной ветки СУБД PostgreSQL 9.4. Выпуск обновлений для ветки 9.4 продлится до декабря 2019 г., 9.0 до сентября 2015 г., 9.1 до сентября 2016 г., 9.2 до сентября 2017 г., 9.3 до сентября 2018 г.

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

  • Новый тип JSONB ("binary JSON") для хранения структурированных наборов данных в бинарном формате, обеспечивающем высокую производительность на уровне документно-ориентированных БД и допускающем создание индексов, функций и операторов для манипулирования данными JSON. В тестах средства обработки неструктурированных данных на основе JSONB показали более высокие результаты производительности, чем MongoDB;
  • Новый Data Change Streaming API, позволяющий декодировать, фильтровать и преобразовывать потоки данных, передаваемые в результате репликации. Указанный API может использоваться для создания новых более гибких, высокопроизводительных и масштабируемых инструментов репликации. Например, можно реализовать механизм двусторонней депликации для создания кластеров c несколькими активными узлами (multi-master);
  • Поддержка слотов репликации, позволяющих запасному серверу передавать системе, с которой поступают данные репликации, информацию о позиции в журнале репликации, которой соответствует текущее состояние запасной системы;
  • Возможность создания систем репликации с отложенной на некоторое время передачей реплик;
  • Выражение "REFRESH MATERIALIZED VIEW CONCURRENTLY" для фонового обновления материализованных представлений без блокировки таблиц до завершения перестроения представления, генерирующего суммарный отчёт над сложным набором данных. Например, "REFRESH MATERIALIZED VIEW CONCURRENTLY mv_data";
  • Выражение "ALTER SYSTEM SET" для изменения настроек, заданных в файле postgresql.conf, из командной строки SQL или удалённых клиентов. Например, "ALTER SYSTEM SET log_min_duration_statement = '5s'";
  • Утилита pg_prewarm для перезапуска сервера в тёплом режиме с сохранением состояния кэшей и буферов между перезапусками;
  • Выражение "WITH ORDINALITY" для вывода номеров строк при выводе результатов функции, например, "SELECT * FROM json_object_keys('{"mobile": 4234234232, "email": "x@me.com", "address": "1 Street Lane"}'::json) WITH ORDINALITY";
  • Возможность установки порядка группируемых значений, например, "SELECT mode() WITHIN GROUP (ORDER BY eye_colour) FROM population";
  • Оптимизация GIN-индексов, которые стали занимать на 50% меньше места и работать до 3 раз быстрее.
  • Более быстрая многопоточная запись в лог транзакций PostgreSQL;
  • Поддержка страниц памяти большого размера (Huge Pages) для оптимизации работы на Linux-серверах с большим объемов памяти;

Дополнительно можно отметить, что 23-го декабря состоится очередная встреча PostgreSQL-сообщества в Москве. На встрече будут обсуждаться новинки релиза PostgreSQL 9.4 и, в частности, тип данных jsonb.

Источник: http://www.opennet.ru/opennews/art.shtml?num=41293