#postgresql15 — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #postgresql15, aggregated by home.social.
-
Recuerden actualizar sus passwords en #postgresql15 -> scram-sha-256 🤖
-
Looks like #Glom is broken on #Debian because #libgda 5 does support #postgresql15 anymore basically. That should not be too hard to fix even though I need to update #libgdamm as well.
-
#федичитальня #postgresql #postgresql15
Сортировка по индексу.
#Btree #индексы можно и для сортировки за O(n) использовать без буферизации всех строк где-либо. Но с неопределёнными значениями и порядком сортировки есть нюанс - положение их в индексе задаётся при создании и, если запрашиваемое положение отличается, то индекс не может быть использован.
Вообще странно, что не воткнули костыль для простейших случаев, если nulls не там, просто читаем индекс с другого конца, до тех пор, пока не наткнёмся на не #null, после чего начнём читать индекс так, как изначально и планировалось, до тех пор, пока не на кнёмся на null, который послужит нам эдаким EOF. Сложность чтения бы сохранилась линейной, всего пару переменных и ифников для стейт-контрола добавить. Не думаю, что это был бы значимый оверхед.
-
#PostgreSQL #федичитальня #postgresql15
Заметил в книжке пример о том, что можно делать хитрый WHERE по сочетанию параметров через VALUES и скобочки.
WHERE (x, y) IN (VALUES ('a', 'b'), ('c', 'd'))
Интересно насколько эффективно оно работает в сравнении с пачкой OR? Длина собранного запроса короче, больше шансы уложиться в один TCP PUSH/ACK пакет при средних размерах таких списков, это понятно. Читаемость - хз. А с точки зрения вычислений хз вдвойне. Композитным индексам, наверное, пофигу.
-
#федичитальня #PostgreSQL #PostgreSQL15
Перевалил через треть книжки. За полгода. Очень, очень медленно. Сдамплю пометки.
Контрольная точка - метки в wal с началом и концом. Конец - это когда все грязные буферы сдамплены на диск. И по этой контрольной точке можно восстановить согласованное состояние, насколько я понял, на момент её начала. Надо хранить файлы wal предыдущей завершённой и текущей контрольной точки. Остальное бесполезно.
-
#ФедиЧитальня #PostgreSQL15 не совсем из книги, но по той же теме.
Глянул кусочек highload.guide, выцепил хорошую выжимку про классификацию репликаций:
- логическая - работает с кортежами; пример - row based binary log в MySQL; бутылочное горлышко - процессор slave.
- физическая - работает со страницами; примеры - pg_wal, innodb undo-redo; бутылочное горлышко - диск (не совсем понял master'а или slave'а, не совсем понял, а как же буферы; возможно дело в большей степени касается MySQL с несколькими журналами одновременно)
- statement based - сплошная боль, есть места где можно получить неконсистентные данные между master и slave, но в случае условной бигдаты - очень низкие накладные расходы на передачу данных по сети, большой update на всю таблицу прилетит практически одним запросом; разве что выполнять его придётся заново на slave, из-за этого может быть длинный лаг репликации.Если slave может блокировать удаление журнала master'ом, чтобы догнаться в случае ребута, чем больше отставание, тем больше размер журнала. Если slave вообще не догоняет master в принципе и отставание только нарастает - со временем это закончится забитым дисковым хранилищем.
В PostgreSQL есть Logical Log Streaming Replication, который позволяет не миррорить часть таблиц на slave. Как это применять я не придумал. В теории можно не хранить на слейвах для актуальных данных архивные данные, что позволит немного сэкономить на дисковом пространстве, особенно если slave'ов много.
-
Почитал ещё немного 4 главы про #postgresql15 изнутри. Полезного и прикладного мало, но понял одно – транзакции в постгресе хоть и дешёвые, но не бесплатные. Много активных транзакций означают большие списки в описании снапшотов, медленнее будет вычисление видимости.
Всё сводится к деталям внутренних реализаций, которые можно свести к "пишем всё что можно, сами ничего не удаляем, храни господь автовакуум и дешёвые SSD" и "думали просто так у каждой версии строчки заголовок 24кб?"
#федичитальня -
#PostgreSQL15 has been released today!
https://www.postgresql.org/about/news/postgresql-15-released-2526/
-
#PostgreSQL 15 is here! 🥳
https://www.postgresql.org/about/news/postgresql-15-released-2526/Among other new features, this release comes with "jsonlog", structured log format. Finally!