После года разработки представлена (http://www.postgresql.org/about/news/1636/) новая стабильная ветка СУБД PostgreSQL 9.5 (русскоязычный пресс-релиз (http://postgresmen.ru/postgresql-9.5)). Выпуск обновлений для ветки 9.5 будет осуществляться (http://www.postgresql.org/support/versioning/) в течение пяти лет до января 2021 года.
Основные новшества (https://wiki.postgresql.org/wiki/What%27s_new_in_Postgr...):
- Функциональность "UPSERT" (добавить-или-модифицировать), реализованная через новое выражение "INSERT ... ON CONFLICT DO NOTHING/UPDATE", позволяющая обработать ситуацию невозможности добавления данных через "INSERT", например, из-за нарушения условий уникальности или недопустимости значения одного из полей. Вместо вывода ошибки теперь можно игнорировать выполнение оператора или изменить связанные с ключевым полем данные (т.е. если запись уже существует, вместо INSERT выполнить UPDATE);
- Ограничение доступа на уровне строк (Row-Level Security, RLS). Доступ пользователей к данным в таблице теперь можно разграничивать на уровне отдельных строк, например, можно запретить определённой категории пользователей просмотр строк, в которых хранятся данные, добавленные другим пользователем. Для активации RLS следует использовать (http://www.depesz.com/2014/10/02/waiting-for-9-5-row-level-s.../) директиву "ALTER TABLE tablename ENABLE ROW LEVEL SECURITY", после чего следует задать правила доступа при помощи выражения "CREATE POLICY";
- BRIN-индексы ("индексы блоковых зон", Block Range Index), позволяющие сверхкомпактно индексировать очень большие таблицы, без применения традиционных B-деревьев. Суть BRIN-индексов сводится к разбиению общего индекса на блоки, каждый из которых содержит данные индекса только для определённого диапазона значений. В тесте (http://www.depesz.com/2014/11/22/waiting-for-9-5-brin-block-.../) подобный метод оказался примерно в два раза медленнее b-деревьев при осуществлении операций выборки данных, но в 3-4 раза быстрее при создании и обновлении индекса, а также занял значительно меньше места на диске (64 Кб против 28 Мб);
- Новые функции и операторы для типа данных JSONB. Для изменения значений в документе JSONB теперь можно обойтись (http://michael.otacoo.com/postgresql-2/postgres-9-5-feature-.../) без извлечения и переопределения всего документа, благодаря появлению функции jsonb_set(). Также добавлены функции json_strip_nulls (удаление атрибутов, содержащих значения NULL) и jsonb_pretty (вывод в отформатированном JSON). Добавлен оператор "||" для соединения двух значений JSONB;- Инструмент pg_rewind (https://github.com/vmware/pg_rewind), позволяющий существенно упростить (http://hlinnaka.iki.fi/presentations/NordicPGDay2015-pg_rewi...) процесс восстановления отказоустойчивых конфигураций после переключения на резервный сервер. После возвращения в строй основного сервера возникает задача синхронизации его состояния с продолжившим работу запасным сервером, который успел накопить свою порцию изменений. Утилита pg_rewind пытается восстановить состояние первичного сервера по WAL-логу транзакций, перебирая их начиная с момента незадолго до сбоя, определяя изменённые данные и перенося только изменившиеся блоки, что позволяет обойтись без восстановления полной копии с работающего резервного сервера.
- Существенные оптимизации скорости сортировки и хэширования в памяти. Благодаря применению нового метода сортировки строковых значений и чисел, удалось увеличить скорость индексации в три раза;
- Автоматизированное управление размером лога транзакций. Возможность исключения отражения таблиц в логе транзакций (ALTER TABLE ... SET LOGGED / UNLOGGED);
- Аналитические возможности (https://wiki.postgresql.org/wiki/What%27s_new_in_Postgr...) "GROUPING SETS", "CUBE" и "ROLLUP", позволяющие формировать вывод с группировкой по набору полей и рассчитывать число комбинаций различных категорий;
- Улучшения репликации и средств повышения отказоустойчивости;- Множественные улучшения в механизме Foreign Data Wrappers, включая выражение "IMPORT FOREIGN SCHEMA (https://wiki.postgresql.org/wiki/What%27s_new_in_Postgr...)", которое позволяет автоматизировать импорт всех связанных внешних таблиц для уже существующих таблиц с выбранной меткой сервера. Кроме того, обеспечена возможность наследования внешних таблиц в локальных таблицах и наоборот, например, "CREATE local_customers () inherits (remote.customers);"
- В утилиту vacuumdb добавлена опций "-j", позволяющая запускать VACUUM в несколько одновременно выполняемых потоков;
- Существенные улучшения масштабирования на системах с большим количеством процессорных ядер и оперативной памяти.
URL: http://www.postgresql.org/about/news/1636/
Новость: http://www.opennet.me/opennews/art.shtml?num=43639
Торт!
Поздравляю всех с выходом новой версии Слона! )))С каждым резилом становится все лучше и лучше.
> Поздравляю всех с выходом новой версии Слона! )))Присоединяюсь!
> С каждым резилом становится все лучше и лучше.
Кстати, интересный термин получился -- только эт скорее когда "мы их ждали-ждали, ждали-ждали"... ;-)
Таки да - UPSERT лет 15 ждали. А они долго объясняли, почему он не нужен.
Сейчас то же самое с multi-master кластером. Раньше объясняли почему не надо и как это плохо. Сейчас думают как красиво сделать multi мастера и вписать его в текущую архитектуру слоника.Через пару лет получим production multi-master.
До Мускула по репликации так и не дотягивает, обещали сделать хорошо, не сделали.
Спасибо, но репликации как в mysql нам не надо.
+1
Сразу по "горячим следам"...
Google: "PostgreSQL vs MySQL" -> habrhabrРепликация...
Документация...
Стандарты...
И т.д. и т.п.
> "PostgreSQL vs MySQL" -> habrhabrhabrAhabr - поленился ссылку капчить, хоть буковки б для поиска правилные написал
http://habrahabr.ru/company/mailru/blog/248845/
Вот, теперь видно слово "mailru". Анонимы, фас!
> Репликация...
Да, фас! Вслед за Митрофановым, он - вожак этой стаи. Ведь это же так важно в данном контексте, сколько букав в Хабре, и в каких оно отношениях с Майлру!Когда поклонникам Мускула (и видимо ПХП сюда же) хочется что-то сказать в свое оправдание, а нечего, остается только - фас!
...А в это время остальные, те, кому стайные инстинкты не мешают думать, спокойно продолжат изучать и использовать Постгрес. И в том числе пройдут по вышеуказанному пути, не споткнувшись, в отличии от Митрофанова, на недостающей букве и отсутствии прямой ссылки, и прочитают кое что про такую непонятную для Митрофанова вещь, как "репликация".
> До Мускула по репликации так и не дотягивает, обещали сделать хорошо, не
> сделали.А чего не хватило?
PS Кроме зацикливания репликации для получения двунаправленной репликации. Сей зверь под нагрузкой может давать очень странные артефакты.
Объясняли почему его сложно сделать корректно, а не почему не нужно.
апсерт зло.
Уже видно, как потянулись сопли частных случаев.
что не скажешь про дельфина и машу(
А, что тебе в маше не так? Ты свои руки прикрути правильно к телу и будет возможность правильно ими работать.
В этой версии при добавлении нового поля теперь есть поддержка BEFORE/AFTER?!
что уж мелочится, тортище!
Cake!!!
Даже любители сортов тюления приятно удивлены! Поздравляю!!!
Виват разработчикам! Лучшая реляционная СУБД стала еще лучше.
> BRIN-индексыИнтересная вещь, если, конечно, использовать с умом, а не лепить где попало вместо B-Tree.
ждем ебилдов от 1с
А что, в 1С уже 9.4 используем? У меня не получилось, к сожалению.
http://www.postgrespro.ru/products/1c_build
> http://www.postgrespro.ru/products/1c_buildЗнаю, что она там ЕСТЬ. Но база 1С (УПП, платформа 8.3 несколько релизов)при попытке ее использования не создается. На 9.2, 9.3 получается, а на 9.4 нет.
А напишите в суппорт postgrespro. Там вполне доброжелательно относятся к выяснению проблем.
Знаю по себе.
работает
Кстати - на сайте 1с - для продакшена 9.4.2
слишком быстро, тестировать можно, переходить боязно
> слишком быстро, тестировать можно, переходить боязноУгу, надо на досуге релиз-ноутсы миноров **9.3** пере-почитать -- кончили они там уже в конце-то концов data-loss-ы чинить или ещё ждать с переходом. С сабжем - ещё даже и почитать-то%) нечего -- какой переход? </админ-бездельник>
> с переходом. С сабжем - ещё даже и почитать-то%) нечего
> -- какой переход? </админ-бездельник>С другой стороны... ##Да-да, я не прочитал новость наверху %-> сразу.
Josh Berkus "Configuration changes in 9.5: transaction log size"
-- http://www.databasesoup.com/2016/01/configuration-changes-in...
[before 9.5] ..."checkpoint_segments was the old way we had for users to determine [...] The default setting worked for pretty much nobody, so you always had to adjust it.
[at 9.5+] ..."we can set a default which will be "good enough" for 80% of our users, and we have."
#наверху: "Автоматизированное управление размером лога транзакций."jason davis "What’s Under the Radar in PostgreSQL 9.5?"
-- http://www.enterprisedb.com/postgres-plus-edb-blog/jason-dav...
..."enhancements co-developed by EnterpriseDB (EDB) and contributed to the PostgreSQL 9.5 [...] have increased the database’s [...] performance and scalability on large [...] systems. [...] with four to 12 cores/socket, four to eight sockets and 128 GB or more of RAM."
..."9.5 exhibits a 96% performance boost at 64 concurrent connections on a 24 core / 496 GB RAM system and a 25% performance improvement over v9.4 for 32 concurrent connections. "
#наверху: "улучшения масштабирования на системах с большим[...]"
Ernst-Georg Schmid "9.5 Feature: ALTER TABLE SET LOGGED / UNLOGGED"
-- http://theplateisbad.blogspot.cz/2016/01/95-feature-alter-ta...
..."speed difference between LOGGED and UNLOGGED? Very convenient, e.g. when initially populating large tables and then switch to production mode."
..."9.5 is not only jsonb, there is much more goodness inside... :-)"
#наверху: "Возможность [] отражения таблиц [] TABLE ... SET LOGGED / UNLOGGED"* У кого кнопка [исправить] %D под рукой, разъедините два последних пункта в новости?
---
Отдельное спасибо Planet PostgreSQL --https://planet.postgresql.org/ за "чтение новости наверху"
> слишком быстро, тестировать можно, переходить боязноУгу, 9.5.1 уже анонсирован, будет в феврале.
Перешел вчера на 3 боевых серверах (репликация, все дела) полет нормальный
Данные не "критично" нужные?
Критично но не смертельно. А вообще за 7 лет еще ни разу не упарывался чтобы при переходе/работе на новой версии база крошилась, 8.3 - 8.4 - 9.1 - 9.3 - 9.4 - 9.5 Хотя сообщения видел, да
Извиняюсь, не посмотрел внимательно. Спасибо, буду пробовать - есть видимые отличия от стандартной 1С поставки PGSQL.
Ну по функционалу слава богу более-менее закрыли, upsert и jsonb_set радуют), в следующем релизе насколько я понял основной фишкой будет распараллеливание выполнения запроса?
> ... в
> следующем релизе насколько я понял основной фишкой будет распараллеливание выполнения
> запроса?Верится с трудом, слишком много подводных камней ( в т.ч. добавляемых upsert-ами )
Полный перебор в 9.6 вроде уже закомитили, говорят есть большой прогресс по сортировке, может тоже успеют, в планах джойны, но вот подводных камней да..
А как правильно теперь настроить этот мульти-мастер реплику?
Если фактически вторая нода будет использовать только для чтений и для быстрого переключения перебросом IP куда клиенты коннектятся на второй мастер при крушении первого
да нет там никакого мультимастера, не сделали, осталась постгря без репликации.
> А как правильно теперь настроить этот мульти-мастер реплику?Его там наверху нет. Он есть "не там" (см. 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 донесли до апстрима. Раньше он был внеш.расширением.
Греф рассказал, что в ближайшее время Сбербанк полностью поменяет свою платформу. «Мы покупаем пакет акций в российско-американской компании, которая выиграла тендер у Oracle, IB — у всех, оказалась на порядок выше этих крупнейших компаний», — сказал он, добавив, что речь идет об «open source с использованием облачных технологий, искусственного интеллекта, машинного обучения».ОНо ?