Pull to refresh
115
0
Алексей @lesovsky

PostgreSQL DBA

Send message

Всё, понял теперь, спасибо :)

Но уплощение выполняется только если оно не приведет к появлению в плоском списке более join_collapse_limit элементов (значение параметра по умолчанию — 8). В данном примере при любых значениях параметра, меньших 5, узел JOINEXPR не будет уплощен.

Несколько раз перечитал, мне кажется что первое предложение противоречит второму.
То есть первое предложение говорит "уплощать пока итоговое значение в списке меньше 8".
Второе говорит наоборот "НЕ уплощать пока итоговое значение меньше 5+3"

Все ли верно в цитате? или таки в первом предложении есть лишняя частица "не"?

Автор статьи прямо указывает что НЕиспользовать большие страницы НЕ рекомендуется — Especially when not utilizing huge_pages (not recommended)
С моей точки зрения большие страницы имеет смысл использовать если памяти больше 8-16GB, на калькуляторах с меньшим объемом памяти лишняя суета с настройкой.
Репортинг памяти самим постгресом, сделан не очень удачно имхо (((.
Репортинг в консоль работает только для текущей сессии, при этом нельзя также взять и посмотреть репорт по соседней сессии, только через функцию pg_log_backend_memory_contexts сбросить дамп в лог и потом грепать его. Печаль.
хороший вопрос, давайте наверно тут
Заведите issue тут. Там есть шаблон для bug report. Там нужно будет приложить чуть больше данных.
Планы расширения конечно есть, на очереди odyssey, patroni и pgbackrest (потом wal-g, и возможно pg_probackup т.к. с ним меньше всего опыта).
Дашбордов нет, пока руки не дошли. Первым по плану для графаны, потом возможно для заббикса. С последним сложно, т.к. у меня вообще его нигде нет.
ага, есть такое в планах, в pg как раз есть соотв. семейство функций has_*_privilege().
круто, еще раз спасибо!
Большое спасибо за развернутый ответ по пп 1 и 2, так стало сильно понятней.

Но по п.3 в итоге все равно получается так что может быть только один метод Get и он всегда возвращает только либо успех (err == nil), только либо ошибку (err != nil).
Спасибо за статью, есть несколько вопросов по п.1 «Используем интерфейсы при разработке»:

1. как быть если методов относительно много? в той же redis библиотеке их довольно много — выходит что каждый внешний метод нужно оборачивать в свой или идти в сторону кодогенерации?

2. как быть если внешний метод возвращает какой-то свой интерфейс? например pgx.Begin, возвращает транзакцию pgx.Tx (которая тоже интерфейс) — для транзакции тоже нужно писать свой интерфейс обертку и затем писать обертки для методов?

3. в обертках всегда возвращается «успех», а как быть если нужно также тестировать и случаи когда возвращаются ошибки? Ну то есть как сделать так чтобы метод-обертка мог возвращать не только успех, но и error.
Интересный способ, надо подумать. Пока смущает что требуется GDB как внешняя зависимость.
Лично мне — на случай если нужно локально что-то выполнить, например погнать тесты или собрать бинарник.

Судя по вашему комментарию я так понимаю что вы знаете о GH Actions больше чем я, тогда вам встречный вопрос — нет ли у вас готовых примеров (с гитхаба) по сборке докер образов и их выкладке в registry. Я понимаю что описание можно найти в их документации, но хотелось бы увидеть как это устроено в реальных workflow.
Согласен, периодически от него подгорает, но пока в целом Makefile удовлетворяет мои скромные потребности. За альтернативы спасибо, а из этих двух сами к чему склоняетесь больше и почему?
Зависит от кейса:
— если «что-то» что лежит в коде, то просто кладем в целевой контейнер через COPY/ADD
— если «что-то» принадлежит другому пакету (корневые сертификаты), то это также можно через multi-stage сделать — установить пакет в одном контейнере и затем оттуда скопировать в целевой.
— если «что-то» создается самим пользователем (конфиги например) — то это создается отдельно до запуска контейнера, а при запуске контейнера подкладывается через тома (volumes).
Спасибо за проделанную работу, но перевод хромает. Переводчку надо повышать свою тех.грамотность и избегать англицизмов (консюмер) и английских слов в переведенном тексте (fan-out, amplification и т.п) — для большинства слов уже давно есть устоявшиеся термины на русском языке.
Согласен с вами, когда собираешь метрики на основе pg_stat_activity там много чего чем можно дополнительно обогатить метрику )))
1
23 ...

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Registered
Activity