Представлена (http://www.postgresql.org/about/news/1595/) альфа-версия СУБД PostgreSQL 9.5. Релиз ожидается осенью.
Среди добавленных улучшений (https://wiki.postgresql.org/wiki/What%27s_new_in_Postgr...) (первод (http://postgresmen.ru/node/2524) подробного обзора основных новшеств):
- Функциональность "UPSERT" (добавить-или-модифицировать), реализованная через новое выражение "INSERT ON CONFLICT NOTHING/UPDATE", позволяющая обработать ситуацию невозможности добавления данных через "INSERT", например, из-за нарушения условий уникальности или недопустимости значения одного из полей. Вместо вывода ошибки теперь можно игнорировать выполнение оператора или изменить связанные с ключевым полем данные (т.е. если запись уже существует, вместо INSERT выполнить UPDATE);
- BRIN-индексы ("индексы блоковых зон", Block Range Index), позволяющие сверхкомпактно индексировать очень большие таблицы, без применения традиционных B-деревьев. Суть BRIN-индексов сводится к разбиению общего индекса на блоки, каждый из которых содержит данные индекса только для определённого диапазона значений. В тесте (http://www.depesz.com/2014/11/22/waiting-for-9-5-brin-block-.../) подобный метод оказался примерно в два раза медленнее b-деревьев при осуществлении операций выборки данных, но в 3-4 раза быстрее при создании и обновлении индекса, а также занял значительно меньше места на диске (64 Кб против 28 Мб);- Ограничение доступа на уровне строк (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";
- Новые функции и операторы для типа данных JSONB. Для изменения значений в документе JSONB теперь можно обойтись (http://michael.otacoo.com/postgresql-2/postgres-9-5-feature-.../) без извлечения и переопределения всего документа, благодаря появлению функции jsonb_set(). Также добавлены функции json_strip_nulls (чиста NULL-значений и jsonb_pretty (отформатированный вывод). Добавлен оператор "||" для соединения двух значений JSONB;
- Инструмент pg_rewind (https://github.com/vmware/pg_rewind), позволяющий существенно упростить (http://hlinnaka.iki.fi/presentations/NordicPGDay2015-pg_rewi...) процесс восстановления отказоустойчивых конфигураций после переключения на резервный сервер. После возвращения в строй основного сервера возникает задача синхронизации его состояния с продолжившим работу запасным сервером, который успел накопить свою порцию изменений. Утилита pg_rewind пытается восстановить состояние первичного сервера по WAL-логу транзакций, перебирая их начиная с момента незадолго до сбоя, определяя изменённые данные и перенося только изменившиеся блоки, что позволяет обойтись без восстановления полной копии с работающего резервного сервера.
- Существенные оптимизации скорости сортировки и хэширования в памяти. Благодаря применению нового метода сортировки строковых значений и чисел, удалось увеличить скорость индексации в три раза;
- Автоматизированное управление размером лога транзакций;
- Аналитические возможности (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...)", которое позволяет автоматизировать импорт всех связанных внешних таблиц для уже существующих таблиц с выбранной меткой сервера.- Существенные улучшения масштабирования на системах с большим количеством процессорных ядер и оперативной памяти.
URL: http://www.postgresql.org/about/news/1595/
Новость: http://www.opennet.me/opennews/art.shtml?num=42555
Ну вот, а где VODKA? замяли?
> Ну вот, а где VODKA? замяли?http://www.postgresql.org/message-id/CAF4Au4xZDFhhxcBJkKhw2m...
cсылка #1 в seatch://postgresql vodka
http://www.pgcon.org/2014/schedule/attachments/318_pgcon-201...
Очень люблю эту БД. Но "Существенные улучшения"+"UPSERT" как-то не тянут на смену версии... (и чет приуныл).
Row-Level Security, RLS не тянет?!?!?! Да "ви слишком много кушать" ! (С)
А позвольте поинтересоваться, где оно применимо?Я вот сходу не придумал, поэтому не понимаю восторгов по поводу.
Да ну заелись вы) один только jsonb_set() чего стоит, + UPSERT, + GROUPING SETS, многопоточный вакуум, как по мне так весьма
UPSERT не тянет? да UPSERT сразу на 10.0 тянет, их года с 2007 минимум его просят сделать
как дела с BDR?
> как дела с BDR?В release notes-ах видишь эти буквы? Нет. Значит, по-прежнему http:/openforum/vsluhforumID3/102644.html#27 + http:/openforum/vsluhforumID3/102644.html#21
Думаю, пока функциональность не допилят(поддержка truncate+ некоторых ALTER)
рано вопрос ставить.
И с split-brain - тоже вопрос серьёзный.
Дядя Вася с бульдозером победит любую оптику, а 2 сервера будут считать себя главными.
Судя по всему, как разруливать такое пока что не придумали.
> Думаю, пока функциональность не допилят(поддержка truncate+ некоторых ALTER)
> рано вопрос ставить.
> И с split-brain - тоже вопрос серьёзный.Это же BDR! Мастер-мастер! И так 48 раз!! Как Вы не понимаете?!? Просто перепишите Ваши приложения!!!11
""Other systems are loosely-coupled. They don't attempt to appear like a single seamless virtual database [...] There is generally no global lock manager or transaction manager, so transactions on one node aren't affected by locks taken on other nodes. [...] This can make application development more difficult, [...]
BDR is a loosely coupled shared-nothing multi-master design.
У них нет сплитов, у них "Multi-master conflicts". Про них они ещё не написали убедительной агитки.
> Дядя Вася с бульдозером
>разруливать такое пока что не придумали.Как не придумали? Конечно, придумали. Я в них верю.
>Судя по всему, как разруливать такое пока что не придумали.Как известно для разрешения brain split нужна либо единая точка отказов, либо нечетное количество резервируемых элементов. :)
BDR пока что сыроват, не хватает поддержки операций.
А такие вещи как VODKA быстро не делаются.
Тут не баран чихнул. Это ж не MySQL, не отлаженные фичи в релиз внедрять.
Чото мне кажется, что 9.6 версии не будет, а будет сразу 10.
я и 9.5 удивлён.
7.4, 8.4 - и следующий релиз. Значит водку Братунов хочет в 9-й ветке сделать :)
Подскажите, кто пользуется, как настроить postgre, чтобы она записывала данные на жд не чаще чем раз в час?
> Подскажите, кто пользуется, как настроить postgre, чтобы она записывала данные на жд
> не чаще чем раз в час?Положить WAL-логи на флэш и поставить интервал checkpoint в 61 минуту. А да, и не писать в базу больше, чем вызовет checkpoint раньше... Элементарно, Ватсон.
http://www.inp.nsk.su/~baldin/PostgreSQL/postgresql-tuning.pdf
в разделе "Журнал транзакций (Write Ahead Log)", лучше вы будете понимать что делаете, а не просто скидывать кеш раз в 61 минуту.
> - Функциональность "UPSERT" (добавить-или-модифицировать), реализованная через новое
> выражение "INSERT ON CONFLICT NOTHING/UPDATE"ну вот почему через жопу, а не через уже устоявшийся синтаксис MERGE?
и где пакеты?
А в чём разница?
В том что merge есть в стандарте, а INSERT ON CONFLICT нет в стандарте
> В том что merge есть в стандарте, а INSERT ON CONFLICT нет
> в стандартеРазрабы неоднократно говорили, что есть у них есть границы поддержки стандарта.
Что там есть
1)откровенно глупые вещи.
2)вещи, которые невозможно корректно реаизовать
И что они этого делать не будут не под каким видом.
ЗЫ
Забавно, что 2011 стандарт в части индексов, говорят, списан с postgresql.
Не с большой тройки. Это уже о многом говорит.
Потому что полноценный merge практически невозможно реализовать корректно для всех уровней изоляции транзакций.В этом месте проблемы и в Оракле, и в MSSQL.
>где пакеты?чем вам extension не угодили?
Концепция ИМХО, круче оракловой.
А если вам валидация нужна - идите туда
http://postgresql.uservoice.com/forums/21853-general/suggest...
и голосуйте за эту фичу.
По мне - если они водку сделают и бдр с разруливанием - оракля пойдёт курить бамбук.