The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз СУБД PostgreSQL 11, opennews (?), 19-Окт-18, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


34. "Релиз СУБД PostgreSQL 11"  –2 +/
Сообщение от Цезий Родонович (?), 19-Окт-18, 17:19 
Дайте UNDO !!!
Кто скажет, есть табличка статусов, 2000 строк, обновляются половина каждые 10 секунд, и читаются постоянно, как запилить что бы оно не умирало?
Ответить | Правка | Наверх | Cообщить модератору

36. "Релиз СУБД PostgreSQL 11"  +1 +/
Сообщение от Аноним (27), 19-Окт-18, 17:23 
Автовакуум поставить очень часто. Вот и всё. И вообще, иногда полезно читать документацию.
Ответить | Правка | Наверх | Cообщить модератору

87. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Цезий Родонович (?), 20-Окт-18, 10:25 
Так жопа получается, непрерывно работает вакум на одной таблице, а  базе еще кроме этого много чем нужно заниматься :)
и мне нужно в одной таблице (большой), часто у 5 % строк менять статусы поле число 0,1,2,3
какого хрена таблица растет ппц как?
и что теперь, вакумы работают непрерывно, а базе данных что делать больше ничего не надо?
Ответить | Правка | Наверх | Cообщить модератору

120. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Мудила (?), 20-Окт-18, 20:37 
Но тут гонка получается. Один процесс лепит новые строки, под которые нужны новые или "удалённые" страницы: нет возвращённых страниц -- тогда нужно выделять новые. Другой должен успевать очищать страницы с удалёнными и ненужными строками. Баланс между ними настраивается стоимостью операций. В результате можно добиться, чтобы автовакуум был в приоритете, но тогда снизится производительность записи свежих данных. Поэтому выбор прост -- либо быстрее запись и файл будет пухнуть, либо пухнуть не будет (вернее будет существенно медленней пухнуть), но скорость записи на пиках просядет. У вас, насколько я понял, нагрузка равномерная и постоянная, а не периодическая. Поэтому, по-моему, вам подход с разрастанием файла вряд ли подойдёт; дайте больше шансов автовакууму успевать чистить файл. Повышайте лимит операций и снижайте время "сна", ну и памяти больше выдайте автовакууму (сразу в разы больше, а потом снижайте до приемлемого уровня). Настройка порогов включения, думаю, никаких сложностей само по себе не вызовет -- всё очевидно.
Ответить | Правка | Наверх | Cообщить модератору

37. "Релиз СУБД PostgreSQL 11"  +2 +/
Сообщение от Аноним (27), 19-Окт-18, 17:25 
Чем undo-то лучше? Вы даже самому себе этого объяснить не сможете. Потому что понятия не имеете, как Сегменты отката в Оракле работают.
Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

39. "Релиз СУБД PostgreSQL 11"  –4 +/
Сообщение от Цезий Родонович (?), 19-Окт-18, 17:35 
Имею, Oracle DBA уже 20 лет как :)
Ответить | Правка | Наверх | Cообщить модератору

42. "Релиз СУБД PostgreSQL 11"  +2 +/
Сообщение от Аноним (27), 19-Окт-18, 17:46 
И что с того? То, что вы имеете 45-ть лет вождения жигулей на дачу не делает из вас раллийного гонщика. Сами ведь понимаете.
Ответить | Правка | Наверх | Cообщить модератору

47. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Аноним (27), 19-Окт-18, 17:55 
На DBA об этом знать ничего и не требуется.
Ответить | Правка | К родителю #39 | Наверх | Cообщить модератору

38. "Релиз СУБД PostgreSQL 11"  –1 +/
Сообщение от PereresusNeVlezaetBuggy (ok), 19-Окт-18, 17:28 
Держите UNDO:

                                                               ##
                                                               ##
                                                               ##
                           ######################################
                        #########################################
                      ###########################################
                    #############################################
                   ##########                                  ##
                 ########                                      ##
                 #######                                       ##
                 #####
                #####
                #####
                ####
                ####
                 ###
                 ####
                  ####
                   ###
                    ####                                       ##
                      #####                                    ##
                        #########################################
                           ######################################
                                                               ##
                                                               ##
                                                                
                ###                                            ##
                ###                                            ##
                ###                                            ##
                #################################################
                #################################################
                ###                                     #########
                ###                                  ############
                                                  ###############
                                               ################
                                              ###############
                                          ################
                                        ###############
                                     ###############
                                 ################
                               ###############
                            ###############
                         ###############
                      ###############                          ##
                    ###############                            ##
                 ################                              ##
                #################################################
                #################################################
                                                               ##
                                                               ##
                ###                                            ##
                ###                                            ##
                ###                                            ##
                #################################################
                #################################################
                #################################################
                #################################################
                ###                                            ##
                ###                                            ##
                ###                                            ##
                ###                                            ##
                ###                                           ###
                ####                                         ####
                 ###                                         ###
                 ####                                       ####
                  #####                                   #####
                   ######                               #######
                    ##########                     ##########
                    #############               #############
                      #####################################
                        #################################
                          #############################
                              #####################
                                  #############
                               ###################
                           ###########################
                        #################################
                      #####################################
                     ###########                 ###########
                   #######                             #######
                  #####                                   #####
                 ####                                       ####
                 ###                                         ###
                ###                                           ###
                ###                                            ##
                ###                                            ##
                ###                                           ###
                 ###                                         ###
                 ####                                       ####
                  #####                                   #####
                   #######                             #######
                    #########                       #########
                     #######################################
                       ###################################
                         ###############################
                             #######################
                                  #############

Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

40. "Релиз СУБД PostgreSQL 11"  –1 +/
Сообщение от Аноним (40), 19-Окт-18, 17:37 
Я сделал UNDO, но потом случайно запустил, поэтому опять ничего нет...
Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

56. "Релиз СУБД PostgreSQL 11"  –4 +/
Сообщение от пох (?), 19-Окт-18, 18:17 
> Дайте UNDO

это из той же серии где и vacuum full; reindex;

> как запилить что бы оно не умирало?

никак. Или сменить базу данных на такую, авторы которых не изобретали time travel или хотя бы исправили ошибки молодости.

а с форматом хранилища постгреза ничего сделать уже нельзя, только взорвать к чертям.

Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

59. "Релиз СУБД PostgreSQL 11"  +2 +/
Сообщение от Аноним (27), 19-Окт-18, 18:32 
Ну к чему эту чушь транслировать? Вы же не разбираетесь в вопросе совсем. Автовакуум полностью эту проблему решает сейчас. Vacuum Full совсем про другое. И в Оракле нечто подобное тоже приходится делать. До 10-той версии это было крайне мутурное, к слову, занятие.
Ответить | Правка | Наверх | Cообщить модератору

75. "Релиз СУБД PostgreSQL 11"  –2 +/
Сообщение от пох (?), 19-Окт-18, 22:36 
в том и дело что не решает. Проблему раздувания стора, я имею в виду, при банальных апдейтах (причем вовсе не PK, а вообще неиндексированного поля) и, как следствие - тормозов даже при банальном индексном селекте. Потому что индекс, внезапно, у нас отрос в десятки раз больше чем на самом деле надо.

в орацле приходится делать в других случаях и случаи эти изрядно небанальны, если не сказать извратны. Неудивительно что и делается через задницу.

В innodb вообще не приходится - другая конструкция хранилки.

Ответить | Правка | Наверх | Cообщить модератору

83. "Релиз СУБД PostgreSQL 11"  –2 +/
Сообщение от Мудила (?), 19-Окт-18, 23:38 
Ну, ё-маё, ну, ребята, читайте доки. Нет там никакого "раздувания стора". Если вы не обновляете статистику в соответствии с развитием модели, то, да, вы получаете снижение адекватности "разборщика" запросов. Это настолько очевидные вещи, что смешно о них тут упоминать.
Ответить | Правка | Наверх | Cообщить модератору

99. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Аноним (98), 20-Окт-18, 13:32 
> Нет там никакого "раздувания стора"

Мамкин dba пытается спорить о вкусе устриц с теми, кто их таки ел?

Ответить | Правка | Наверх | Cообщить модератору

105. "Релиз СУБД PostgreSQL 11"  –1 +/
Сообщение от Мудила (?), 20-Окт-18, 14:46 
Очень уныло и не понятно к чему.
Ответить | Правка | Наверх | Cообщить модератору

117. "Релиз СУБД PostgreSQL 11"  +1 +/
Сообщение от Аноним (98), 20-Окт-18, 18:47 
Зато твой ник очень в тему, да.
Ответить | Правка | Наверх | Cообщить модератору

121. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Мудила (?), 20-Окт-18, 20:42 
Кластерные индексы что в Инно, что Сиквеле всё равно нужно обслуживать. В Оракле же ситуация с индексами очень похожа на Слона. Но, и тут я спорить не буду, Оракл значительно быстрее, но он в совсем другой лиге. В Оракле как раз крайне банальны. Куча и индексы по ней очень быстро расходятся под высокой нагрузкой. Но это всё неизбежно. Другое дело, что Оракле это от версии к версии всё больше делается само.
Ответить | Правка | К родителю #75 | Наверх | Cообщить модератору

61. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Аноним (27), 19-Окт-18, 18:56 
А, извините, переоценил. Вам, насколько я понял, сама концепциям мультиверсионности аппетит испортила. Ну так, дерзайте, делайте что-то другое.
Ответить | Правка | К родителю #56 | Наверх | Cообщить модератору

77. "Релиз СУБД PostgreSQL 11"  –1 +/
Сообщение от пох (?), 19-Окт-18, 22:39 
не сама концепция, а последствия конкретно этой ее реализации. Образца 1995го года. Что сейчас нельзя сделать эффективно работающую - очень сомневаюсь.

> Ну так, дерзайте, делайте что-то другое.

вам миллиона существующих storage egnines мало?

Ответить | Правка | Наверх | Cообщить модератору

82. "Релиз СУБД PostgreSQL 11"  –1 +/
Сообщение от Аноним (79), 19-Окт-18, 23:33 
У нас и сейчас всё работает прекрасно.
Ответить | Правка | Наверх | Cообщить модератору

65. "Релиз СУБД PostgreSQL 11"  +1 +/
Сообщение от Аноним (65), 19-Окт-18, 20:40 
Если данные условно временные, можете использовать UNLOGGED таблицы (не генерируют события WAL и при фейлах чистятся).

Для частых обновляющихся действий довольно неплохо подходит.

Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

70. "Релиз СУБД PostgreSQL 11"  –1 +/
Сообщение от Аноним (69), 19-Окт-18, 22:03 
Поменять подход не пробовали?
Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

88. "Релиз СУБД PostgreSQL 11"  –1 +/
Сообщение от Цезий Родонович (?), 20-Окт-18, 10:31 
Дохрена чего пробовали, но вот НАДО, очень, при том что есть и оракл, на тех же задачах, на гораздо  более слабом железе, у него не возникает проблем совсем никаких,
без холиваров, нравится постгрес, для небольших задач где только вставки-запросы, все хорошо, sql возможностями нравится и т.д.
Ответить | Правка | Наверх | Cообщить модератору

90. "Релиз СУБД PostgreSQL 11"  –1 +/
Сообщение от Цезий Родонович (?), 20-Окт-18, 10:58 
Кортежей доступно    2130    
«Мертвых» кортежей    206960    
Последняя автоочистка    2018-10-20 10:55:03.599286+03    
Размер таблицы    114 MB

автовакум работает практически непрерывно, 2000 строк Карл!!!, 114 mb
как победить? такая таблица с таким режимом работы нужна.

Ответить | Правка | К родителю #70 | Наверх | Cообщить модератору

92. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Forthemail (ok), 20-Окт-18, 11:24 
Как часто апдейты идут?
Типичный апдейт покажите запросом.
Ответить | Правка | Наверх | Cообщить модератору

93. "Релиз СУБД PostgreSQL 11"  –1 +/
Сообщение от Цезий Родонович (?), 20-Окт-18, 11:40 
Я же писал уже задержку сдедал, не чаще чем 30 сек
в цикле от 30% до 100% строк  
update po.status set last_send_time=, ....= where id=:id по примари кей
ну очень нужна таблица статусов
Ответить | Правка | Наверх | Cообщить модератору

106. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Мудила (?), 20-Окт-18, 14:49 
Режим изоляции какой? Как транзакция разграничена? И разграничена ли вообще?
Ответить | Правка | Наверх | Cообщить модератору

114. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Forthemail (ok), 20-Окт-18, 17:48 
Вы транзакцию закрываете? Commit есть?
То что наблюдаете очень похоже на типичный недосмотр, нет коммита в коннекте. Апдейты делаете, а транзакцию не закрываете.
Ответить | Правка | К родителю #93 | Наверх | Cообщить модератору

135. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Мудила (?), 21-Окт-18, 23:18 
Да-да-да. Поэтому автовакуум и держит всю это помойку нетронутой.
Ответить | Правка | Наверх | Cообщить модератору

131. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от smit (??), 21-Окт-18, 17:57 
Сделайте отдельную таблицу из двух полей: ID и STATUS.
Ответить | Правка | К родителю #93 | Наверх | Cообщить модератору

103. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Мудила (?), 20-Окт-18, 14:23 
Ещё раз, читайте как настраивать автовакуум. Покажите тут действующие настройки.
Ответить | Правка | К родителю #90 | Наверх | Cообщить модератору

108. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Мудила (?), 20-Окт-18, 15:11 
Давайте попробуем разобраться. Версия Слона у вас какая? Что вас конкретно не устраивает? То, что файл пухнет? Сценарий ваш довольно типичен и к такому поведению при адекватных настройках приводить не должен.
Ответить | Правка | К родителю #90 | Наверх | Cообщить модератору

74. "Релиз СУБД PostgreSQL 11"  –1 +/
Сообщение от Аноним (74), 19-Окт-18, 22:25 
Тот случай Когда архитектор должен повеситься от стыда
Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

89. "Релиз СУБД PostgreSQL 11"  –1 +/
Сообщение от Цезий Родонович (?), 20-Окт-18, 10:47 
Или его пристрелят бизнесс процессы которые не смогут подстроится под кривизну архитектуры СУБД
Ответить | Правка | Наверх | Cообщить модератору

94. "Релиз СУБД PostgreSQL 11"  –2 +/
Сообщение от Andrew (??), 20-Окт-18, 11:44 
Вас должен спрасти ZHeap. Прототип показали в марте, и уже тогда было понятно, что в 11 версию оно не попадает. Но всё-ещё есть надежда, что к 12 версии его таки успеют допилить.

Если пропустили, то анонс был тут: https://www.enterprisedb.com/blog/zheap-storage-engine-provi...
Текущий статус тут: https://wiki.postgresql.org/wiki/Zheap
За прогрессом следить тут: https://github.com/EnterpriseDB/zheap

Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

127. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от nox (??), 21-Окт-18, 12:54 
Ваша проблема, на самом деле, в дизайне. Добавьте поле last_updated или insert_ts и замените UPDATE на INSERT, а запросы на чтение замените на выборку только самого актуального результата. При INSERT вакуум не работает, а удаление старых записей (и запуск вакуума) можно сделать по крону в периоды наименьшей нагрузки и чтобы удалял все и сразу (плюсом будет еще и то, что все удаляемые строки будут к конце таблицы, так что длинных блокировок не будет)

А по хорошему, постгрес не для этой задачи, возьмите другую БД под именно этот функционал и не делайте себе мозг.

Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

130. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Мудила (?), 21-Окт-18, 14:32 
Это очень плохое и некомпетентное предложение.
Ответить | Правка | Наверх | Cообщить модератору

143. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от nox (??), 22-Окт-18, 16:39 
> Это очень плохое и некомпетентное предложение.

Сказал человек с ником "Мудила"
Обоснуйте тогда, что ли

Ответить | Правка | Наверх | Cообщить модератору

145. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Аноним (27), 22-Окт-18, 17:46 
Ставить диагноз, когда потциент слился в неизвестном направлении, даже не расписав, что его конкретно не устраивает, занятие бесполезное. "Оракле ДБА" с седыми яйцами, вроде как, не понравилось что "файл разрастается". Ну так замена delete/insert на insert точно ситуацию не улучшит (инсерты точно будут требовать новых страниц, и проблему с устаревание нужно будет решать врукопашную; этим обычно админы Сиквела любят страдать -- читать доки для них сложнее, чем невообразимо идиотские триггеры лабать). В действительности, по-моему, никакой проблемы у жалобщика со Слоном нет, кроме того факта, что Слона он даже минимально не пытался настроить, а с логикой модели у него что-то явно не так (видимо, есть застарелая длительная транзакция, которая мертвые кортежи держит). Потому как движок Слона даже с умолчальными настройками автовакуума с подобным справляется вообще без проблем. Сам проверил: сделал отношение с несколькими тысячами строк и менял в них по циклу значение, выбирая произвольно по ключу (обновление одной строки за одну транзакцию). Ни тормозов на выборках, ни какого-то роста размера файла за час нагрузки получить не удалось. Это плёвая задача. Оно вообще никак особо на загрузке сервера не сказалась. Да и к тому же оставляет массу возможностей по оптимизации: хошь периодичность чекпоинтов повысь и тогда вообще ничего на диск падать не будет, хошь приоритет автовакуума подними -- всё будет чиститься влёт и файл расти будет очень умеренно.
Ответить | Правка | Наверх | Cообщить модератору

146. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Аноним (27), 22-Окт-18, 17:49 
Up: неверное выразился -- периодичность чекпоинтов нужно понижать, т.е. повышать промежутки между ними.
Ответить | Правка | Наверх | Cообщить модератору

148. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от nox (??), 22-Окт-18, 17:53 
Ну так вот и я о том же. Просто топикстартер жаловался, что у него вакуум не устраивает, что он распространяется на всю базу и частый запуск ему мешает или не работает, т.к. блокировки. В этом плане моё решение работает как раз норм, т.к. можно контролировать когда делать delete и соответственно вакуум (просто как идея, я ж хз что у него за данные и за модель)

Но вообще да, Слон спокойно справляется с такими вещами, более того, у меня была таблица с 5 млрд строк и 50к апдейтов в секунду - каждый апдейт 5Мб размером и ничего - всё работало и не жужжало и место особенно сильно не ело

Просто Мудилы и ДБА с яйцами видать не очень умеют доки/код читать - вакуум простая штука, пару дней курения мануалов, на крайняк почитать немного кода - и всё становится ясно - где, что и как работает и за что отвечает

Ответить | Правка | К родителю #145 | Наверх | Cообщить модератору

149. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от nox (??), 22-Окт-18, 18:02 
> В этом плане моё решение работает как раз норм, т.к. можно контролировать
> когда делать delete и соответственно вакуум (просто как идея, я ж
> хз что у него за данные и за модель)

Забыл уточнить - у него UPDATE, то есть он часто и много делает UPDATE. Если делать часто INSERT, но редко и много DELETE и сразу после этого вакуум, то файл будет расти, но только в периоды между запусками вакуума

Ответить | Правка | Наверх | Cообщить модератору

151. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от пох (?), 22-Окт-18, 22:04 
> то файл будет расти, но только в периоды между запусками вакуума

если мы правильно угадали его проблему (что это именно из-за особенностей стора, а не, действительно, "ой, commit забыли") - не будет (будет один раз, до первого delete ; vacuum).

vaccum прошел - следующие insert попадут в области того, что недавно delete, ничего особо заметно расти не будет.

и выполняется он при таком раскладе быстрее. Но решеньице, прямо скажем, выглядит кривоватенько.

Ответить | Правка | Наверх | Cообщить модератору

156. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Аноним (27), 23-Окт-18, 11:41 
Настройка стоимости операции для (авто)вакуума сделает тоже самое, только скрипты плодить и от Update-а отказываться не нужно будет.
Ответить | Правка | Наверх | Cообщить модератору

129. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Мудила (?), 21-Окт-18, 14:30 
Ладно, понял, что осмысленно диалога "DBA с двадцатилетним стажем" не выйдет.
Просто накрутите
-- autovacuum_vacuum_cost_limit в десять раз (больше 1000) поставьте;
-- autovacuum_vacuum_cost_delay сделайте в районе 5--10.
Если не помогло, то предварительно всё же стоило убедиться, что проблема именно в недостаточно частой "уборке" файла отношения. Потому что подобное поведение может быть следствием очень длительной транзакции, которая работает по данным, которые вы часто изменяете, а значит -- это ошибка вашей модели и её нужно корректировать. В общем, не тупите и читайте документацию.
Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

153. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Цезий Родонович (?), 23-Окт-18, 09:36 
Ну нету там длинных транзакций, нету инсертов, делейтов, много коротких апдейтов, и это НЕ единственная таблица, другим тоже нужны ресурсы процессора, память, вакумы, и т.д.
Вакуум на ней висит практически постоянно, и не успевает, блять 2000 строк уже 260MB, простенький запрос к этой таблице должен выполнятся мгновенно, а он задумывается
Ответить | Правка | Наверх | Cообщить модератору

154. "Релиз СУБД PostgreSQL 11"  –1 +/
Сообщение от Аноним (27), 23-Окт-18, 11:31 
Думаю, вы уже знаете, что в Слоне update-ов нет, а есть delete/insert. Как и все современные РСУБД Слон работает исключительно с кэшем буферов (не с диском), а синхронно пишет изменения только в WAL. Поэтому ваш характер нагрузки на нормально настроенном серваке не должен приводить к частым сбросам буферов в файл (и его росту) -- данные меняются в кэше и, по идее, их вообще не нужно сбрасывать в файл. Вам этого и нужно добиться. Увеличивайте а) время между чекпоинтами, б) размазывайте фактический сброс по этому времени сильнее, в) проверьте достаточно ли памяти вашим процессам автовакуума (см. логи на предмет ошибок недостатка памяти, их в таком случае будет очень много), г) настройте параметры вакуума для конкретного отношения (настройки выше проскакивали), д) чтобы HOT-механизм работал эффективней (а это как раз ваш случай, у вас же не меняются индексные поля), увеличивайте значение филфактора для данной конкретной таблички.
С много процессов параллельно пытаются эти ваши статусы менять?
Ответить | Правка | Наверх | Cообщить модератору

157. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Цезий Родонович (?), 23-Окт-18, 14:40 
есть и много процессов, но разные строки, read commited,
в данном конкретном случае, 2-3 процесса, (плюс позанимался, добавил нужных индексов для других таблиц, в целом уменьшилась нагрузка на сервер), сделал
alter table  set (autovacuum_vacuum_cost_limit = 1000);
alter table  set (autovacuum_vacuum_cost_delay = 5);
теперь автовакум не висит постоянно, остановил все сервисы, сделал VACUUM FULL
через пол дня:
Кортежей доступно    2130    
«Мертвых» кортежей    28101
vacuum verbose
найдено удаляемых версий строк: 0, неудаляемых - 30230,
какого хрена?, никто таблицу не блокирует
select * from pg_catalog.pg_locks l where l.relation=23037
пусто
Ответить | Правка | Наверх | Cообщить модератору

158. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Аноним (27), 23-Окт-18, 15:32 
Блокировки тут не причём.
Зомби-транзакции поищите. Всё же, очень похоже на то, что транзакции не фиксируются или разграничены не так, как вы себе представляете. Поэтому задействованные ими кортежи и не подвергаются уборке.
А vacuum full эти мёртвые кортежи убирает?
Понимаете, если у вас много обновляющих данные процессов в одном отношении, то подобная картинка вполне себе типична. В том, что в результате дофига хранится исторических данных, нет ничего ужасного и необычного. Их будет тем больше, чем больше параллельных процессов, работающих с отношением: им же всем нужно получить состояние кортежей на момент начала каждой из транзакций. Другое дело, что шлака столько не должно оставаться.
Ответить | Правка | Наверх | Cообщить модератору

159. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Аноним (27), 23-Окт-18, 16:01 
Вот, скажем, началась у вас транзакция Т1. Она длиться, условно, 10 единиц времени. Через десять единиц времени она фиксируется.
T1 началась во время t1.
T2 началась в t1 + 1.
T3 : t1 + 2
T4 : t1 + 3.
Ну и т.д.
Т2 хочет видеть состояние БД на момент t1 + 1. И, соответственно, те кортежи, которые T1 похерила, но не зафиксировала, вакуум удалять не может -- они нужны T2, T3... И так по цепочке. В результате если у вас много процессов которые производят большое кол-во обновлений по ключу, то исторических "хвост" нужно будет держать весьма значительный.
На этом фоне замена обновление на вставку, а потом явное удаление устаревших событий, не кажется таким уж нелепым решением.
Ответить | Правка | К родителю #157 | Наверх | Cообщить модератору

160. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Аноним (27), 23-Окт-18, 16:05 
А памяти у нас на серваке много? Значение maintenance_work_mem сколько выставлено? БД в кластере много?
Ответить | Правка | К родителю #157 | Наверх | Cообщить модератору

161. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Цезий Родонович (?), 26-Окт-18, 09:10 
Короче, нашел, в этой же базе но, вообще не имеюшее к этой таблице никакого отношения, "чужое" приложение после select-а не делает коммит. но у него свои таблицы и к моей никогда не обращается!!!
Ответить | Правка | Наверх | Cообщить модератору

162. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Forth (ok), 26-Окт-18, 10:24 
> Короче, нашел, в этой же базе но, вообще не имеюшее к этой
> таблице никакого отношения, "чужое" приложение после select-а не делает коммит. но
> у него свои таблицы и к моей никогда не обращается!!!

Чужое приложение научили делать commit? Помогло?


Ответить | Правка | Наверх | Cообщить модератору

163. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Цезий Родонович (?), 26-Окт-18, 16:42 
Чужого разработчика надо пнуть, а потом чтобы обновилось на сотнях ПК, я рубал все их сессии, и пока не налезли опять, вакум проходил
но он же НИКАК не касается этой таблицы, оно делает ЗАПРОСЫ и к СВОИМ таблицам, короче бред какойто
Ответить | Правка | Наверх | Cообщить модератору

164. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Forth (ok), 26-Окт-18, 18:26 
> Чужого разработчика надо пнуть, а потом чтобы обновилось на сотнях ПК, я
> рубал все их сессии, и пока не налезли опять, вакум проходил
> но он же НИКАК не касается этой таблицы, оно делает ЗАПРОСЫ и
> к СВОИМ таблицам, короче бред какойто

Если дело в одной БД происходит и даже в разных схемах - бывает просто имена совпадают, допустим в вашей схеме (дефолтный public) есть таблица state и у него есть в его схеме таблица с тем же имененм, но в запросе указать схему чужой разраб забыл и обращается не к своей, потом получает не те колонки вылетает с софте ошибка и коннект с тразакцией теряется и висит бесконечно.

Ответить | Правка | Наверх | Cообщить модератору

155. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Аноним (27), 23-Окт-18, 11:38 
Не зря вас про уровень изоляции транзакции спрашивали. Если у вас много параллельных запросов на изменение, к тому же все они serializable, то что-то подобное может произойти. Если приложение работает через jdbc-драйвер нужно проверить какой режим изоляции для транзакций выбран.
Ответить | Правка | К родителю #153 | Наверх | Cообщить модератору

136. "Релиз СУБД PostgreSQL 11"  +1 +/
Сообщение от лютый джо__ (?), 22-Окт-18, 07:11 
>есть табличка статусов, 2000 строк, обновляются половина каждые 10 секунд

Накукуй тут вообще реляционная субд?

Если нужна мегаскорость (ну там сотни тысяч запросов в сек с 1 сервера) любой in-memory KV носкль будет хорошо работать или вообще hashmap какой-нибудь с записью журнала и lazy-persistence.
10 строчек кода.

Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

147. "Релиз СУБД PostgreSQL 11"  +/
Сообщение от Аноним (27), 22-Окт-18, 17:52 
Слон с этим тоже работает без проблем. Собственно, как раз это самое lazy persistence и происходит: блоки из буферов практически с файл и не успевают попадать большую часть времени. Там фактический I/O с диском получается вообще мизерный.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру