Ambassador Tabliček · @strizhechenko
170 followers · 158 posts · Server lor.sh

Заметил в книжке пример о том, что можно делать хитрый WHERE по сочетанию параметров через VALUES и скобочки.

WHERE (x, y) IN (VALUES ('a', 'b'), ('c', 'd'))

Интересно насколько эффективно оно работает в сравнении с пачкой OR? Длина собранного запроса короче, больше шансы уложиться в один TCP PUSH/ACK пакет при средних размерах таких списков, это понятно. Читаемость - хз. А с точки зрения вычислений хз вдвойне. Композитным индексам, наверное, пофигу.

#postgresql #федичитальня #postgresql15

Last updated 1 year ago

Ambassador Tabliček · @strizhechenko
163 followers · 115 posts · Server lor.sh

Перевалил через треть книжки. За полгода. Очень, очень медленно. Сдамплю пометки.

Контрольная точка - метки в wal с началом и концом. Конец - это когда все грязные буферы сдамплены на диск. И по этой контрольной точке можно восстановить согласованное состояние, насколько я понял, на момент её начала. Надо хранить файлы wal предыдущей завершённой и текущей контрольной точки. Остальное бесполезно.

#федичитальня #postgresql #postgresql15

Last updated 1 year ago

pvergain · @pvergain
309 followers · 2947 posts · Server framapiaf.org

@dalibo

- public.dalibo.com/exports/form

- Le manuel en libre accès

Sorti en octobre 2022, PostgreSQL 15 apporte de nombreuses nouveautés améliorant les performances, la fiabilité et l’administration à différents niveaux. Retrouvez un condensé de ces améliorations dans notre article publié en mars 2023.

- public.dalibo.com/exports/form

#dalibo #postgresql15 #postgresql

Last updated 1 year ago

Ambassador Tabliček · @strizhechenko
157 followers · 92 posts · Server lor.sh

не совсем из книги, но по той же теме.

Глянул кусочек 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'ов много.

#федичитальня #postgresql15

Last updated 1 year ago

pvergain · @pvergain
295 followers · 2290 posts · Server framapiaf.org
Ambassador Tabliček · @strizhechenko
142 followers · 57 posts · Server lor.sh

Почитал ещё немного 4 главы про изнутри. Полезного и прикладного мало, но понял одно – транзакции в постгресе хоть и дешёвые, но не бесплатные. Много активных транзакций означают большие списки в описании снапшотов, медленнее будет вычисление видимости.

Всё сводится к деталям внутренних реализаций, которые можно свести к "пишем всё что можно, сами ничего не удаляем, храни господь автовакуум и дешёвые SSD" и "думали просто так у каждой версии строчки заголовок 24кб?"

#postgresql15 #федичитальня

Last updated 2 years ago

Ambassador Tabliček · @strizhechenko
133 followers · 156 posts · Server lor.sh

Собрался с силами и возвращаюсь к книге. Надеюсь чего-нибудь интересного напишу.

Глава 2: изоляция

Время узнавать сколько вариаций локов (7) имеет под капотом постгрес чтобы ничего не терять.

Узнал про то что есть стандарт SQL на ослабление уровня консистентности. Когда-то глубоко копал это в Firebird, но это было давно и не правда. Когда я был маленьким я даже процедуры в БД в копии файла писал на виртуалке по RDP, а git там не было. Вокруг ходили люди с вольчими головами, а мороженное было вкуснее и бабы красивее (те, что без вольчих голов). Теперь по этому стандарту хочу записать альбом Acid House / New Beat:

GenACID - PGBook

1. Lost Update.
2. Dirty Read.
3. Non-Repeatable Read.
4. Phantom Read.

Примеры аномалий автор привёл понятным языком. Отличным примеров неповторяющегося чтения являюсь я.

#федичитальня #postgresql15

Last updated 2 years ago

jay gordon 🦍 · @jaydestro
222 followers · 55 posts · Server hachyderm.io

Deep dive engineering blog post from Ozan Saka about how we made support generally available in for PostgreSQL within just 1 week of the PG 15 release! (Powered by the Citus database extension)

devblogs.microsoft.com/cosmosd

#postgresql15 #AzureCosmosDB

Last updated 2 years ago

Luca Ferrari · @fluca1978
20 followers · 72 posts · Server fosstodon.org
Sysbee · @sysbee
16 followers · 83 posts · Server fosstodon.org

15 is here! 🥳
postgresql.org/about/news/post

Among other new features, this release comes with "jsonlog", structured log format. Finally!

#postgresql #database #postgresql15

Last updated 2 years ago