The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз СУБД PostgreSQL 9.5

07.01.2016 21:29

После года разработки представлена новая стабильная ветка СУБД PostgreSQL 9.5 (русскоязычный пресс-релиз). Выпуск обновлений для ветки 9.5 будет осуществляться в течение пяти лет до января 2021 года.

Основные новшества:

  • Функциональность "UPSERT" (добавить-или-модифицировать), реализованная через новое выражение "INSERT ... ON CONFLICT DO NOTHING/UPDATE", позволяющая обработать ситуацию невозможности добавления данных через "INSERT", например, из-за нарушения условий уникальности или недопустимости значения одного из полей. Вместо вывода ошибки теперь можно игнорировать выполнение оператора или изменить связанные с ключевым полем данные (т.е. если запись уже существует, вместо INSERT выполнить UPDATE);
  • Ограничение доступа на уровне строк (Row-Level Security, RLS). Доступ пользователей к данным в таблице теперь можно разграничивать на уровне отдельных строк, например, можно запретить определённой категории пользователей просмотр строк, в которых хранятся данные, добавленные другим пользователем. Для активации RLS следует использовать директиву "ALTER TABLE tablename ENABLE ROW LEVEL SECURITY", после чего следует задать правила доступа при помощи выражения "CREATE POLICY";
  • BRIN-индексы ("индексы блоковых зон", Block Range Index), позволяющие сверхкомпактно индексировать очень большие таблицы, без применения традиционных B-деревьев. Суть BRIN-индексов сводится к разбиению общего индекса на блоки, каждый из которых содержит данные индекса только для определённого диапазона значений. В тесте подобный метод оказался примерно в два раза медленнее b-деревьев при осуществлении операций выборки данных, но в 3-4 раза быстрее при создании и обновлении индекса, а также занял значительно меньше места на диске (64 Кб против 28 Мб);
  • Новые функции и операторы для типа данных JSONB. Для изменения значений в документе JSONB теперь можно обойтись без извлечения и переопределения всего документа, благодаря появлению функции jsonb_set(). Также добавлены функции json_strip_nulls (удаление атрибутов, содержащих значения NULL) и jsonb_pretty (вывод в отформатированном JSON). Добавлен оператор "||" для соединения двух значений JSONB;
  • Инструмент pg_rewind, позволяющий существенно упростить процесс восстановления отказоустойчивых конфигураций после переключения на резервный сервер. После возвращения в строй основного сервера возникает задача синхронизации его состояния с продолжившим работу запасным сервером, который успел накопить свою порцию изменений. Утилита pg_rewind пытается восстановить состояние первичного сервера по WAL-логу транзакций, перебирая их начиная с момента незадолго до сбоя, определяя изменённые данные и перенося только изменившиеся блоки, что позволяет обойтись без восстановления полной копии с работающего резервного сервера.
  • Существенные оптимизации скорости сортировки и хэширования в памяти. Благодаря применению нового метода сортировки строковых значений и чисел, удалось до 20 раз увеличить скорость создания индексов, а время выполнения запросов требующих сортировки больших объёмов данных, сократить в 2-12 раз;
  • Добавлена поддержка выражения TABLESAMPLE, позволяющего сформировать выборку над неполным объёмом данных из больших таблиц, без выполнения ресурсоёмких операций сортировки над всей таблицей. Например, запрос "SELECT * FROM test TABLESAMPLE SYSTEM(10)" сформирует вывод, охватив только 10% от таблицы test. Доступно несколько алгоритмов отсеивания значений в процессе неполной выборки;
  • Существенные улучшения масштабирования на системах с большим количеством процессорных ядер и оперативной памяти. Например, на системе с 24 ядрами CPU и 496 Гб ОЗУ в тесте EnterpriseDB при нагрузке в 64 одновременных соединения PostgreSQL 9.5 показал прирост производительности в 96% по сравнению с PostgreSQL 9.4;
  • Автоматизированное управление размером лога транзакций. Возможность исключения отражения таблиц в логе транзакций (ALTER TABLE ... SET LOGGED / UNLOGGED);
  • Аналитические возможности "GROUPING SETS", "CUBE" и "ROLLUP", позволяющие формировать вывод с группировкой по набору полей и рассчитывать число комбинаций различных категорий;
  • Улучшения репликации и средств повышения отказоустойчивости. Добавлен механизм отслеживания состояния выполнения репликации, в том числе реализованы методы для определения причины возникновения отдельных изменений в процессе выполнения логической репликации;
  • Множественные улучшения в механизме Foreign Data Wrappers, включая выражение "IMPORT FOREIGN SCHEMA", которое позволяет автоматизировать импорт всех связанных внешних таблиц для уже существующих таблиц с выбранной меткой сервера. Кроме того, обеспечена возможность наследования внешних таблиц в локальных таблицах и наоборот, например, "CREATE local_customers () inherits (remote.customers);"
  • В утилиту vacuumdb добавлена опций "-j", позволяющая запускать VACUUM в несколько одновременно выполняемых потоков.


  1. Главная ссылка к новости (http://www.postgresql.org/abou...)
  2. OpenNews: В СУБД PostgreSQL добавлена поддержка распараллеливания запросов
  3. OpenNews: Началось альфа-тестирование СУБД PostgreSQL 9.5
  4. OpenNews: Для PostgreSQL представлена реализация условных индексов
  5. OpenNews: Релиз СУБД PostgreSQL 9.4
  6. OpenNews: Представлена инфраструктура по организации параллельных вычислений в PostgreSQL
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/43639-postgresql
Ключевые слова: postgresql, database
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (44) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Я (??), 22:07, 07/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +24 +/
    Торт!
     
  • 1.2, VoDA (ok), 22:49, 07/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    Поздравляю всех с выходом новой версии Слона! )))

    С каждым резилом становится все лучше и лучше.

     
     
  • 2.3, Michael Shigorin (ok), 23:23, 07/01/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Поздравляю всех с выходом новой версии Слона! )))

    Присоединяюсь!

    > С каждым резилом становится все лучше и лучше.

    Кстати, интересный термин получился -- только эт скорее когда "мы их ждали-ждали, ждали-ждали"... ;-)

     
     
  • 3.5, ACCA (ok), 00:09, 08/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Таки да - UPSERT лет 15 ждали. А они долго объясняли, почему он не нужен.
     
     
  • 4.6, VoDA (ok), 00:24, 08/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Сейчас то же самое с multi-master кластером. Раньше объясняли почему не надо и как это плохо. Сейчас думают как красиво сделать multi мастера и вписать его в текущую архитектуру слоника.

    Через пару лет получим production multi-master.

     
     
  • 5.21, Fantomas (??), 21:18, 08/01/2016 [^] [^^] [^^^] [ответить]  
  • –3 +/
    До Мускула по репликации так и не дотягивает, обещали сделать хорошо, не сделали.
     
     
  • 6.22, Аноним (-), 01:22, 09/01/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Спасибо, но репликации как в mysql нам не надо.
     
     
  • 7.24, Perl_Jam (?), 05:47, 09/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    +1
     
  • 7.41, Аноним (-), 00:39, 13/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Сразу по "горячим следам"...
    Google: "PostgreSQL vs MySQL" -> habrhabr

    Репликация...
    Документация...
    Стандарты...
    И т.д. и т.п.

     
     
  • 8.42, Andrey Mitrofanov (?), 10:26, 13/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    habrAhabr - поленился ссылку капчить, хоть буковки б для поиска правилные написа... текст свёрнут, показать
     
     
  • 9.43, Аноним (-), 16:35, 13/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Да, фас Вслед за Митрофановым, он - вожак этой стаи Ведь это же так важно в да... текст свёрнут, показать
     
  • 6.30, VoDA (ok), 17:05, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > До Мускула по репликации так и не дотягивает, обещали сделать хорошо, не
    > сделали.

    А чего не хватило?

    PS Кроме зацикливания репликации для получения двунаправленной репликации. Сей зверь под нагрузкой может давать очень странные артефакты.

     
  • 4.11, Аноним (-), 02:12, 08/01/2016 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Объясняли почему его сложно сделать корректно, а не почему не нужно.
     
  • 4.16, Аноним (-), 12:00, 08/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    апсерт зло.
    Уже видно, как потянулись сопли частных случаев.
     
  • 2.8, Аноним (-), 00:26, 08/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    что не скажешь про дельфина и машу(
     
     
  • 3.28, Ape (ok), 12:42, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А, что тебе в маше не так? Ты свои руки прикрути правильно к телу и будет возможность правильно ими работать.
     

  • 1.4, Аноним (-), 23:52, 07/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В этой версии при добавлении нового поля теперь есть поддержка BEFORE/AFTER?!
     
  • 1.7, Аноним (-), 00:25, 08/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    что уж мелочится, тортище!
     
  • 1.9, Аноним (-), 01:05, 08/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Cake!!!
     
  • 1.10, Аноним (-), 01:08, 08/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Даже любители сортов тюления приятно удивлены! Поздравляю!!!
     
  • 1.12, Вареник (?), 02:35, 08/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Виват разработчикам! Лучшая реляционная СУБД стала еще лучше.
     
  • 1.13, Ilya Indigo (ok), 03:03, 08/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > BRIN-индексы

    Интересная вещь, если, конечно, использовать с умом, а не лепить где попало вместо B-Tree.

     
  • 1.14, Аноним (-), 04:28, 08/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    ждем ебилдов от 1с
     
     
  • 2.17, Anonymous1 (?), 12:05, 08/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А что, в 1С уже 9.4 используем? У меня не получилось, к сожалению.
     
     
  • 3.19, Аноним (-), 14:31, 08/01/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    http://www.postgrespro.ru/products/1c_build
     
     
  • 4.20, Anonymous1 (?), 19:57, 08/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > http://www.postgrespro.ru/products/1c_build

    Знаю, что она там ЕСТЬ. Но база 1С (УПП, платформа 8.3 несколько релизов)при попытке ее использования не создается. На 9.2, 9.3 получается, а на 9.4 нет.

     
     
  • 5.32, 1 (??), 10:29, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А напишите в суппорт postgrespro. Там вполне доброжелательно относятся к выяснению проблем.
    Знаю по себе.
     
  • 5.45, Аноним (-), 16:01, 16/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    работает
     
  • 3.38, 1 (??), 15:23, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Кстати - на сайте 1с - для продакшена 9.4.2
     

  • 1.15, Аноним (-), 04:59, 08/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    слишком быстро, тестировать можно, переходить боязно
     
     
  • 2.18, Andrey Mitrofanov (?), 12:25, 08/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > слишком быстро, тестировать можно, переходить боязно

    Угу, надо на досуге релиз-ноутсы миноров **9.3** пере-почитать  --  кончили они там уже в конце-то концов data-loss-ы чинить или ещё ждать с переходом.  С сабжем - ещё даже и почитать-то%) нечего  -- какой переход?   </админ-бездельник>

     
     
  • 3.34, Andrey Mitrofanov (?), 15:58, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    С другой стороны Да-да, я не прочитал новость наверху - сразу Josh Berk... большой текст свёрнут, показать
     
  • 2.23, Аноним (-), 01:23, 09/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > слишком быстро, тестировать можно, переходить боязно

    Угу, 9.5.1 уже анонсирован, будет в феврале.

     
  • 2.26, Аноним (-), 20:19, 09/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Перешел вчера на 3 боевых серверах (репликация, все дела) полет нормальный
     
     
  • 3.36, Аноним (-), 09:51, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Данные не "критично" нужные?
     
     
  • 4.40, Аноним (-), 20:24, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Критично но не смертельно. А вообще за 7 лет еще ни разу не упарывался чтобы при переходе/работе на новой версии база крошилась, 8.3 - 8.4 - 9.1 - 9.3 - 9.4 - 9.5 Хотя сообщения видел, да


     

  • 1.25, Anonymous1 (?), 11:56, 09/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Извиняюсь, не посмотрел внимательно. Спасибо, буду пробовать - есть видимые отличия от стандартной 1С поставки PGSQL.
     
  • 1.27, Аноним (-), 20:29, 09/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ну по функционалу слава богу более-менее закрыли, upsert и jsonb_set радуют), в следующем релизе насколько я понял основной фишкой будет распараллеливание выполнения запроса?
     
     
  • 2.37, Аноним (-), 09:52, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > ... в
    > следующем релизе насколько я понял основной фишкой будет распараллеливание выполнения
    > запроса?

    Верится с трудом, слишком много подводных камней ( в т.ч. добавляемых upsert-ами )

     
     
  • 3.39, Аноним (-), 19:58, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Полный перебор в 9.6 вроде уже закомитили, говорят есть большой прогресс по сортировке, может тоже успеют, в планах джойны, но вот подводных камней да..
     

  • 1.31, Anonymous4245345 (?), 00:15, 11/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А как правильно теперь настроить этот мульти-мастер реплику?
    Если фактически вторая нода будет использовать только для чтений и для быстрого переключения перебросом IP куда клиенты коннектятся на второй мастер при крушении первого
     
     
  • 2.33, Fantomas (??), 14:14, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    да нет там никакого мультимастера, не сделали, осталась постгря без репликации.
     
  • 2.35, Andrey Mitrofanov (?), 16:13, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > А как правильно теперь настроить этот мульти-мастер реплику?

    Его там наверху нет. Он есть "не там" (см. 2ndquadrant).  #По-прежнему не в апстриме.

    -- http://blog.2ndquadrant.com/why-logical-replication/

    > Если фактически вторая нода будет использовать только для чтений

    Для только этого достаточно UDR -- _он_ то есть в апстриме. С 9.4 afair.

    > и для быстрого переключения перебросом IP куда клиенты коннектятся на второй мастер при крушении первого

    А вот эта часть, да, уже мастер-мастер... Возможны варианты, да, UDR + переключение ==как и streaming(hot-чего-то там) + переключение

    http:/openforum/vsluhforumID3/ubb/103468.html#7 и далее везде
    http:/openforum/vsluhforumID3/105100.html#67 "работает, как streaming replication, выглядит, как"

    ...и да, к переключениям (не знам, кторому из двух, или обоим) теперь(9.5+) pg_rewind донесли до апстрима. Раньше он был внеш.расширением.

     

  • 1.44, Аноним (-), 15:06, 15/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Греф рассказал, что в ближайшее время Сбербанк полностью поменяет свою платформу. «Мы покупаем пакет акций в российско-американской компании, которая выиграла тендер у Oracle, IB — у всех, оказалась на порядок выше этих крупнейших компаний», — сказал он, добавив, что речь идет об «open source с использованием облачных технологий, искусственного интеллекта, машинного обучения».

    ОНо ?

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру