LINUX.ORG.RU

PostgreSQL 10 вышел

 


2

3

5 октября 2017 Всемирная группа разработки PostgreSQL объявила о выпуске PostgreSQL 10, новой версии реляционной системы управления базами данных с открытым исходным кодом.

Критически важная особенность современных высоконагруженных систем — способность распределять данные на несколько узлов для обеспечения более быстрого доступа, управления и анализа, что известно как стратегия «разделяй и властвуй». PostgreSQL 10 содержит ряд существенных улучшений, позволяющих эффективно применять данную стратегию: нативная логическая репликация, декларативное партиционирование таблиц и улучшенное параллельное исполнение запросов.

«Наше сообщество разработчиков сфокусировано на развитии таких свойств системы, которые позволяют наиболее полно использовать возможности современных инфраструктур с распределённым характером нагрузки», — говорит Магнус Хагандер (Magnus Hagander), член основной команды Всемирной группы разработки PostgreSQL. — «Такие функции как логическая репликация и улучшенный параллелизм исполнения запросов отражают годы работы и демонстрируют постоянный фокус сообщества на обеспечении лидирующей роли PostgreSQL в условиях растущих технологических требований».

С появлением данного релиза меняется схема версий PostgreSQL, новый формат — «x.y». Это означает, что следующее минорная версия будет 10.1, а следующий мажорный релиз — 11.

Логическая репликация — фреймворк для распространения данных по модели «публикация/подписка»

Логическая репликация расширяет дополняет существующий набор видов репликации в PostgreSQL за счёт возможности передавать данные о модификации данных на уровне конкретной базы данных или на уровне таблиц в другие базы данных PostgreSQL. Пользователи теперь могут определять, какие именно данные нужно реплицировать. Кроме этого, появляется возможность выполнять переход на новые мажорные версии PostgreSQL без простоя и за счёт встроенных в ядро СУБД средств.

«Мы активно используем PostgreSQL, начиная с версии 9.3, и очень рады появлению версии 10, так как она содержит долгожданные возможности партиционирования и встроенной логической репликации. Это позволит нам использовать PostgreSQL в ещё большем количестве сервисов», — заявил Владимир Бородин, компания «Яндекс».

Декларативное партиционирование таблиц

Возможность партиционирования таблиц долгие годы присутствовала в PostgreSQL, но при этом требовала от пользователя значительных усилий по поддержке нетривиального множества правил и триггеров. В PostgreSQL 10 представлен синтаксис для партиционирования, позволяющий пользователям с лёгкостью создавать и поддерживать таблицы с интервальной или списочной схемой партиционирования. Добавление синтаксиса партиционирования — первый шаг из запланированной серии изменений, ведущих к высокопроизводительному фреймворку партиционирования в PostgreSQL.

Улучшенный параллелизм выполнения запросов

PostgreSQL 10 содержит улучшенную поддержку параллелизации выполнения запросов — ещё больше частей плана выполнения запроса теперь могут исполняться параллельно. Улучшения заключаются в том, что ещё больше типов операций сканирования данных поддаются параллелизации, а также в том, что в некоторых случаях (например, когда данные уже отсортированы) проводится дополнительная оптимизация. В итоге, пользователь получает данные намного быстрее.

Кворум-коммит для синхронной репликации

В PostgreSQL 10 появился кворум-коммит для синхронной репликации, обеспечивающий гибкость процесса оповещения основной БД о том, что изменения успешно записаны на удалённые реплики. Администратор может теперь указывать, что если определённое число реплик получило информацию об изменении, данное изменение можно рассматривать как надёжно зафиксированное.

«Кворум-коммит для синхронной репликации в PostgreSQL 10 даёт нам больше вариантов расширять нашу инфраструктуру баз данных с временем простоя работы приложений, стремящимся к нулю. Это позволяет нам непрерывно выкатывать изменения и обновлять нашу инфраструктуру без необходимости объявления длительных периодов обслуживания», — сказал Курт Микол (Curt Micol), инженер инфраструктуры в компании Simple Finance.

Аутентификация SCRAM-SHA-256

SCRAM (The Salted Challenge Response Authentication Mechanism), описанный в RFC5802, определяет протокол безопасного хранения и передачи паролей за счёт использования специального фреймворка для более строгого сопоставления паролей. В PostgreSQL 10 представлена поддержка метода SCRAM-SHA-256, описанного в RFC7677. Данный подход является намного более безопасным, чем существующий метод аутентификации с использованием MD5.

>>> Подробности



Проверено: leave ()
Последнее исправление: cetjs2 (всего исправлений: 4)
Ответ на: комментарий от postgresmen

А кто пробовал Citus?

Когда проводил исследование всех доступных на то время решений, этот проект не встречал. Единственным решением которое подошло по всем параметрам была galera. И галеру начали юзать почти что с момента выпуска первого релиза. Сейчас все ноды крутятся на FreeBSD 11-STABLE с ZFS(l2arc+ZIL) + MariaDB 10.1. Обновлять MariaDB+galera не планируем, так как пока что все устраивает.

iron ★★★★★
()
Последнее исправление: iron (всего исправлений: 1)
Ответ на: комментарий от iron

Клёвое решение; обоснование почитал, понято. Да и ТЗ выполнили и всё работает - отлично.

EuGeneus ★★
()
Ответ на: комментарий от WereFox

Пожалуйте в биореактор.

Тот случай, когда сарказм настолько тонок, что идиоты тебя приняли за своего.

Йода Мастер новость писал эту.

«Предпочитаемый им порядок — «объект-субъект-предикат», OSV. Однако, иногда персонаж говорит, используя менее экзотический порядок субъект-предикат-объект.»

beck ★★★★
()
Ответ на: комментарий от krotozer

Пусть этой БД, которой за всё время её существования никогда не было удобно пользоваться

В чем «неудобства» ?

ggrn ★★★★★
()
Ответ на: комментарий от ggrn

Помнится во времена джуниорства ее почему-то было сложно завести, создать юзера с нужными правами, базу. Сейчас кажется все предельно просто, но тогда почему-то она казалось намного сложнее MySQL, хз почему. Возможно у товарища те же проблемы

GanGSISoft ★★
()
Последнее исправление: GanGSISoft (всего исправлений: 1)
Ответ на: комментарий от EuGeneus

а зубы через опу не желаете полечить? а что, можно ведь.

anonymous
()
Ответ на: комментарий от krotozer

айти профессианалы, которые не могут в английский, должны быть обоссаны и с позором выгнаны из профессии.

anonymous
()
Ответ на: комментарий от GanGSISoft

Может стоит почитать немного документации перед использованием?

ggrn ★★★★★
()
Ответ на: комментарий от mos

На русский это лучше вообще не переводить, просто выкидывать. Пусть это остается в английском. Как идея?

разумно

kto_tama ★★★★★
()
Ответ на: комментарий от anonymous

Удваиваю.

> разделяйте ваши данные с лёгкостью захватите власть над данными распределяйте данные надёжно обезопасьте доступ к вашим данным

Там в оригинале Quickly conquer your analysis

Как хорошо перевести не уверен. Речь о том, что теперь запросы выполняются быстрее и закрывать задачи по анализу данных будет легче.

anonymous
()
Ответ на: комментарий от krotozer

которой за всё время её существования никогда не было удобно пользоваться

То есть, по-русски говоря, не осилил?

anonymous
()

Создание партицированной таблицы:

CREATE TABLE padre (
id SERIAL NOT NULL,
nombre TEXT NOT NULL,
fch_creado TIMESTAMPTZ NOT NULL
)
PARTITION BY RANGE ( id );

kto_tama ★★★★★
()
Ответ на: комментарий от anonymous

айти профессианалы, которые не могут в перевод английский->русский, должны быть обоссаны и с позором выгнаны из профессии.

Я поправил

anonymous
()
Ответ на: комментарий от krotozer

ключевым моментом является количество телодвижений, необходимых, чтобы добиться от PgSQL того же результата, что и, скажем, от MySQL. C последним всё намного проще.

Примеры?

PgSQL не масштабируема под задачу

Да что ты говоришь... Вообще-то, одна из проблем внедрения PostgreSQL - это то, что по умолчанию он сконфигурирован, чтобы запуститься на древнем-древнем хламе и что-то выдать. И многие пытаются его в таком режиме и эксплуатировать, а потом жалуются на тормоза. В то время как его надо конфигурировать под современное железо. А масштабируемость у него просто потрясающая.

anonymous
()
Ответ на: комментарий от krotozer

Это сколько времени приходится грохать из-за РСУБД избыточного функционала, применённого явно не к месту.

Примеры?

anonymous
()
Ответ на: комментарий от anonymous

должны быть обоссаны и с позором выгнаны из профессии

на мороз?

anonymous
()

Угнал ветку 😁🙈🙊

mos ★★☆☆☆
()
Ответ на: комментарий от Chaser_Andrey

Если фраза не содержит смысла, а написана для раздувания текста - её не обязательно переводить. Язык-то как раз позволяет, не позволять должна совесть.

anonymous
()
Ответ на: комментарий от anonymous

это в любом случае английский.

anonymous
()

Записочку когда вернется не оставлял?

Pavval ★★★★★
()
Ответ на: комментарий от borisych

пока только 8, вон партишены и логическую репликацию наконец завезли.

anonymous
()
Ответ на: комментарий от EuGeneus

Ну правда оно на триггерах, но пашет же.

Отвратно пашет по сравнению с Oracle, поэтому ждем их революционных изменений. Надеюсь уже в 11 версии.

zloelamo ★★★★
()
Ответ на: комментарий от krotozer

количество телодвижений, необходимых, чтобы добиться от PgSQL того же результата, что и, скажем, от MySQL.

примеры в студию или врёшь

autonomous ★★★★★
()
Ответ на: комментарий от iron

Давно дело было, уже даже забыл причину почему не взлетело. То ли не собиралось, то ли глючило, то ли по функционалу не подошло.

постгрес так быстро развивается, что дела давно минувших дней приводить в пример нет никакого смысла

autonomous ★★★★★
()

Прячьте под кат, сукины дети.

anonymous
()
Ответ на: комментарий от iron

включении ноды после мейтененса, galera подтягивает diff базы

И это всё при мастер-мастер? Как он определяет, какой диф годнее, если происходит конфликт?

autonomous ★★★★★
()
Ответ на: комментарий от autonomous

Как он определяет, какой диф годнее, если происходит конфликт?

Конфликта быть не может, так как если нода не в кластере то на нее не идут запросы. Там есть общий счетчик транзакций кластера. При загрузке нода спрашивает у кластера, мол какой последний номер транзакции и выкачивает все транзакции начиная с последней своей актуальной по ту что в кластере. После чего galera убеждается что нода консистентна и включает ее в кластер.

iron ★★★★★
()

PostgreSQL объявила о выпуске PostgreSQL 10

Отличная новость.

Odalist ★★★★★
()
Ответ на: комментарий от autonomous

Это если кворум есть, а если отвалится много нод одновременно и произойдет сплитбрейн?

Да, и придется определять какая из нод имеет самые свежие данные ручками синкать.

iron ★★★★★
()
Ответ на: комментарий от iron

Да, и придется определять какая из нод имеет самые свежие данные ручками синкать.

А сколько на это может потребоваться времени?

autonomous ★★★★★
()
Ответ на: комментарий от NoNameNoNumber

Есть ли минусы в PostgresXL по сравнению с сабжем?

Я не тестировал XL версии 10. У меня не проработан траблшутинг, раздражает что документации не сильно много.

EuGeneus ★★
()
Ответ на: комментарий от zloelamo

Отвратно пашет по сравнению с Oracle, поэтому ждем их революционных изменений. Надеюсь уже в 11 версии.

Нормально оно пашет и уже годами.

Кстати Оракл тоже надо уметь готовить, а то совсем не торт.

EuGeneus ★★
()
Ответ на: комментарий от autonomous

А сколько на это может потребоваться времени?

Столько же, сколько занимает копирование базы по сети. Т.е. от объема базы и скорости соединения.

iron ★★★★★
()
Ответ на: комментарий от EuGeneus

Кстати Оракл тоже надо уметь готовить, а то совсем не торт.

Если руки из попы лучше вообще к СУБД не подходить. Но все же у Оракл это на уровне ядра сделано, а не тригерами. Правда это дорого, очень дорого.

zloelamo ★★★★
()
Ответ на: комментарий от iron

копирование базы по сети

Не совсем понял что куда будет копироваться. Я думал, что нужно определить самую консистентную ноду, сказать, что она теперь single source of truth и остальные начинают забирать с нее диффы. Но ты говоришь, что нужно качать целиком базу.

autonomous ★★★★★
()
Ответ на: комментарий от autonomous

Я думал, что нужно определить самую консистентную ноду, сказать, что она теперь single source of truth и остальные начинают забирать с нее диффы. Но ты говоришь, что нужно качать целиком базу.

Все верно. Только в том случае, если galera уверена в том, что именно эта нода самая свежая. А если в момент обрыва связи на другие ноды пишуться данные, тут не понятно где данные свежее. И самый надежный но трудоемкий вариант - дропнуть базу на неконсистентной ноде и засинкать актуальную версию по сети ручками. Я не сильно вникал в то, как galera себя ведет при различных сценариях, так как на это не выделялись человеко-часы работы. Просто придерживаюсь золотого правила, что должно быть в онлайне минимальное количество нод чтоб кластер не развалился.

iron ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Срочно выпилите

Ага, и с сайта пострги тоже.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.