Pull to refresh
13
0
Ринат Сунгатуллин @rinace

Администратор баз данных PostgreSQL

Ускоряем работу с графами в 20000 раз

Reading time 5 min
Views 9.8K
PostgreSQL *Programming *Algorithms *NoSQL *Big Data *

Использовать стандартные библиотеки и общеизвестные реализации алгоритмов — признак хорошего тона. Вместо изобретения своего алгоритма шифрования данных или своей хэш функции лучше взять уже готовое решение. Избегаем ошибок и не изобретаем велосипед заново. Но что если готового решения нет? В наше время это что-то невероятное. Есть github.com, есть набор платных решений.Тем интереснее обсудить необычную проблему. В данной статье расскажу о своем опыте оптимизации работы с данными, которые по своей природе представляют граф. А точнее сеть — разновидность графов.

Читать далее
Total votes 29: ↑26 and ↓3 +23
Comments 22

Битвы на территории ZFS

Reading time 6 min
Views 17K
Postgres Professional corporate blog PostgreSQL *
Один из крупных клиентов нашей компании попал в грустную ситуацию: базы данных подросли, потребности тоже, купили мощные NUMA-сервера, установили любимую файловую систему ZFS (ZFS — для краткости: формально это OpenZFS), а производительность PostgreSQL стала хуже, чем до покупки.

Базы нешуточные: две базы, в каждой по 180ТБ. В них сливаются данные из многих других, непостгресовых баз. А этими, огромными, напрямую пользуются аналитики компании, и эта деятельность критически важная. ZFS сжала эти базы в два раза — теперь каждая занимает на диске по 90 ТБ, железу бы вздохнуть с облегчением. А стало только хуже. Пригласили наших сотрудников из поддержи, они провели аудит. Случай нам показался интересным, и мы решили о нём рассказать. Заодно напомнив о средствах диагностики.
Читать дальше →
Total votes 89: ↑87 and ↓2 +85
Comments 103

Тюнинг производительности PostgreSQL под использование с Zabbix

Reading time 5 min
Views 6.3K
Gals Software corporate blog System administration *PostgreSQL *IT Infrastructure *Database Administration *


В этой статье я расскажу о способах оптимизации производительности СУБД PostgreSQL, на базе которой работает Zabbix.

Для начала разберемся с процессами Zabbix, которые прямо или косвенно утилизируют БД. В процессе исследования вопроса выяснился один любопытный факт. Оказывается, был такой ZBXNEXT-782, который зарейзил сам Алексей Владышев (напомню, что это автор Zabbix и основатель одноименной компании) аж в 2011 году. В рамках этого реквеста в версии Zabbix 5.4 были наконец-то устранены подключения поллеров к БД. То есть раньше каждый поллер имел собственное подключение к БД для апдейта статуса элементов данных и хостов. Поллеры отвечают за сбор данных. Таким образом, каждый такой поллер, работающий на Zabbix Server занимал одно соединение к БД.

Максимально допустимое число этих поллеров — 1000 штук. Несложно представить к чему это приводило. Выход — использование прокси. В крупных инсталляциях так обычно и поступают. Под катом разберемся с переменными конфигураций Zabbix и PostgreSQL, которые могут помочь повысить производительность системы мониторинга. Погнали!
Читать дальше →
Total votes 13: ↑11 and ↓2 +9
Comments 5

PostgreSQL: Случай в вакууме

Reading time 6 min
Views 31K
Postgres Professional corporate blog PostgreSQL *

Один из наших клиентов, эксплуатирующий PostgreSQL под большой нагрузкой, столкнулся с проблемой, связанной с переполнением счетчика транзакций (xid wraparound), причем выхода из нее штатными средствами не существовало. Мы решили проблему с помощью хирургического вмешательства и выпустили патч, предотвращающий возникновение таких ситуаций в будущем.


В этой заметке мы расскажем, как и почему может произойти проблема и как ее не допустить.

Читать дальше →
Total votes 42: ↑41 and ↓1 +40
Comments 11

Опыт миграции кластера PostgreSQL на базе Patroni

Reading time 17 min
Views 12K
Флант corporate blog System administration *PostgreSQL *Database Administration *
Tutorial

Недавно мне посчастливилось заниматься переносом кластера PostgreSQL под управлением Patroni на новое железо. Задача казалась простой — я и не думал, что могут возникнуть проблемы. Но в процессе реализации встретились некоторые сложности, которые натолкнули на мысль поделиться полученным опытом. В этой работе описываются практические шаги и нюансы, которые встретились во время переноса кластера на новую платформу. Использовались следующие версии ПО: PostgreSQL 11.13, Patroni 2.1.1, etcd 3.2.17 (API version 2). Итак, поехали!

Читать далее
Total votes 48: ↑48 and ↓0 +48
Comments 15

5 инструментов для анализа первопричин (RCA), которые помогут вам улучшить тестирование и QA

Reading time 6 min
Views 12K
OTUS corporate blog IT systems testing *Project management *Agile *
Translation

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

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

Читать далее
Total votes 5: ↑4 and ↓1 +3
Comments 0

Postgresso 34

Reading time 19 min
Views 3.4K
Postgres Professional corporate blog PostgreSQL *


В ожидании PostgreSQL 15


PostgreSQL 15: Часть 1 или Коммитфест 2021-07

Думаю, вы следите за обзорами Павла Лузанова о новостях коммитфестов. Если нет, то задумайтесь, не стоит ли. Павел, между прочим, не перечисляет буквально все патчи, а отбирает значимые, обычно с SQL-примерами.

Название скромничает: в обзоре также и о PostgreSQL 14 — принятые доработки. Но больше о 15-й. Часто Павел даёт коротенький код, демонстрирующий изменения — в духе «вот так запрос работал в 14-й, а в 15-й уже вот так». Иногда заныривает и глубже в историю — в 13-ю, если это оправдано контекстом, как при анализе pg_dump и схема public, например.

Напоминаем, что самое интересное о 14 версии можно прочитать и в предыдущих статьях: 2020-07, 2020-09, 2020-11, 2021-01 и 2021-03.

Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Comments 1

Знакомство с методологией ITIL в ITSM

Reading time 7 min
Views 66K
ИТ Гильдия corporate blog IT Standards *Development for e-commerce *
Менеджмент в IT знает несколько подходов. Главное различие между ними — приоритеты. Один метод сконцентрирован на технологиях (IT Systems Management), другой — на услугах (IT Service Management). Последний обозначается аббревиатурой ITSM и часто встречается в сопровождении другого понятия: библиотека инфраструктуры информационных технологий, или ITIL. В этой части серии статей об ITIL мы рассмотрим роль лучших практик в ITSM, а также совершим экскурс в историю зарождения ITIL и проведем краткий обзор методологии.
 
Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 4

«Как близнецы»: 3 пары похожих терминов ITIL

Reading time 5 min
Views 18K
ИТ Гильдия corporate blog IT Standards *Help Desk Software *IT Terminology Service Desk *
Библиотека ITIL — подробный набор методов управления ИТ-услугами, который применяют с восьмидесятых годов. Но путаница в используемых терминах и их значении до сих пор преследует тех, кто только начинает внедряет у себя соответствующие методологии.

В этой статье мы попытаемся разграничить три пары похожих терминов:

  • Инцидент и проблема
  • Управление инцидентами и управление проблемами
  • Service desk и Help Desk

На основе примеров покажем, для чего нужен каждый из них.

Читать дальше →
Total votes 27: ↑21 and ↓6 +15
Comments 5

Запросы в PostgreSQL: 2. Статистика

Reading time 19 min
Views 16K
Postgres Professional corporate blog PostgreSQL *SQL *

В прошлый раз я рассказал об этапах выполнения запросов. Прежде чем переходить к тому, как работают различные узлы плана (способы доступа к данным и методы соединения), надо разобраться с той основой, на которую опирается стоимостной оптимизатор — со статистикой.

Как обычно, я буду приводить примеры из демобазы. В этой статье будет довольно много планов выполнения, но про их составные части я буду рассказывать только в следующих статьях. Здесь же нас в первую очередь будут интересовать оценки количества строк (кардинальности), то есть числа, указанные в верхней строке плана в позиции rows.

Читать далее
Total votes 18: ↑18 and ↓0 +18
Comments 2

Как мы использовали расширенную статистику Postgres и ускорились в 2850 раз

Reading time 9 min
Views 12K
SkillFactory corporate blog Website development *PostgreSQL *Programming *Server optimization *
Translation

В этом переводе к старту курса по Fullstack-разработке на Python напоминаем о том, насколько важно знать технологии в деталях, грамотно применять их и планировать работу в целом. Цифра 2850 в заголовке — не преувеличение: ранее занимавший две минуты запрос в базе данных компании Affinity сегодня выполняется за 42 миллисекунды. Подробности, как всегда, под катом. А если вам нужен план развития навыков с большим количеством практики, вы можете обратить внимание на наши курсы.

Читать далее
Total votes 25: ↑22 and ↓3 +19
Comments 5

PostgreSQL Antipatterns: «слишком много золота»

Reading time 6 min
Views 8.7K
Тензор corporate blog High performance *PostgreSQL *SQL *Database Administration *

Иногда мы пишем SQL-запросы, мало задумываясь над тем фактом, что сначала они должны быть по сети как-то доставлены до сервера, а затем их результат - обратно в клиентское приложение. Если при этом на пути до сервера присутствует еще и пулер соединений типа pgbouncer, дополнительно "перекладывающий" байты между входящими и исходящими коннектами, ситуация становится еще тяжелее...

Поэтому сегодня рассмотрим некоторые типичные ситуации, в которых разработчики иногда принимают не самые оптимальные решения, гоняя по сети мегабайты трафика при общении с сервером PostgreSQL - а заодно посмотрим, как можно увидеть такую ситуацию в плане с помощью explain.tensor.ru и подумаем над вариантами, как сделать подобное взаимодействие более эффективным.

Читать далее
Total votes 29: ↑28 and ↓1 +27
Comments 6

PostgreSQL 15: Часть 1 или Коммитфест 2021-07

Reading time 13 min
Views 6.6K
Postgres Professional corporate blog PostgreSQL *SQL *
Закончился июль, не только самый жаркий месяц года, но и месяц первого коммитфеста очередного релизного цикла PostgreSQL. Самое время собрать свежую версию сервера и посмотреть на принятые изменения.

SELECT version();
                          version                           
------------------------------------------------------------
 PostgreSQL 15devel on x86_64-pc-linux-gnu, compiled by gcc
 (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, 64-bit

Напомню, что самое интересное о 14 версии можно прочитать в предыдущих статьях: 2020-07, 2020-09, 2020-11, 2021-01 и 2021-03.
Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Comments 1

Real-time мониторинг тормозящих запросов PostgreSQL своими руками за полчаса

Reading time 4 min
Views 11K
Karuna corporate blog Website development *PostgreSQL *Programming *Go *

В моей практике не раз были ситуации, когда хотелось посмотреть, какие именно запросы долго тупили в базе в определённый (конкретный) момент времени. А может, запросы не тупили, но каких-то запросов было слишком много.


Ключевое слово — в конкретный момент времени. Например, база непонятно от чего напряглась на 5 минут, потом всё само рассосалось, и очень хочется знать, почему. Отчёты за сутки, присылаемые dba на основе pg_stats_statements, не всегда проясняют ситуацию. Другие графики и логи могут помочь. Но всё же хочется не гадать на кофейной гуще, а конкретно посмотреть, что такому-то запросу в такое-то время было плохо, или его было много.


Можно, конечно, подключить системы а ля okmeter, но okmeter стоит денег. Да ещё и отсылает запросы в чужое облако — что, понятно, не в каждой организации можно считать безопасным.


На удивление, сделать такой мониторинг самому занимает всего полчаса времени, буквально с помощью нескольких строк Go-кода и палок.

Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 8

Как сделать alter table в высоконагруженной таблице

Reading time 3 min
Views 14K
Karuna corporate blog PostgreSQL *Programming *Go *Microservices *

Ещё лет 5 назад на собеседованиях с backend-разработчиками был популярен вопрос: как переименовать колонку в высоконагруженной таблице (возможны вариации: как сделать любой другой alter table)?

Вопрос всё ещё часто звучит на собесах. И актуальность его выросла, так как за последние 5 лет стало намного больше масштабных проектов с высокой нагрузкой.

Читать далее
Total votes 27: ↑25 and ↓2 +23
Comments 29

Postgresso 33

Reading time 15 min
Views 5.4K
Postgres Professional corporate blog PostgreSQL *


Продолжаем экспериментировать с форматом: в этом выпуске нет раздела Релизы, но несколько релизов разбросаны по соответствующему контексту.

Люди


Список коммитеров прирос Даниэлем Густафссоном (Daniel Gustafsson, Greenplum, из Стокгольма) и Джоном Найлором (John Naylor, 2ndQuadrant=EDB)

Даниэль: я использую, разрабатываю и продвигаю open source последние 15 лет, фокусируясь в основном на PostgreSQL и curl. Сейчас я работаю в Greenplum. Я контрибьютор PostgreSQL и работаю над кодом ядра PostgreSQL. А ещё над веб-сайтом, там я коммитер. Кроме программистских дел, я ещё и организую международные конференции: Nordic PGDay, FOSDEM, PGDay и PostgreSQL Conference Europe.

Джон не любит, видимо, говорить о себе. В корпоративном блоге есть парочка его статей.

Интервью: Брин Льюэллин
Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Comments 10

Почему мы перешли с Oracle на PostgreSQL, и как это сделать

Reading time 19 min
Views 20K
Ростелеком corporate blog Oracle *PostgreSQL *SQL *


Всем привет!


Сегодня расскажем о сравнительно новой для нас теме — про перевод приложения с Oracle на Postgres Pro (далее в тексте везде сокращу до PG). В общем смысле тема не столь уж нова — многие компании этим также занимаются или даже уже прошли этот путь. Так, например, на ежегодной конференции pgConf всегда есть несколько интересных докладов по этой теме (https://pgconf.ru/). Если говорить о формальностях, то мы реализуем инициативу согласно (Приказ Министерства связи «Об утверждении плана по импортозамещению программного обеспечения» от 01.02.2015 № 96). По факту — ещё и денег экономим, слезая с "лицензионной иглы". На эту тему можно отдельную статью написать, а в этой речь пойдёт о программной стороне вопроса. Кому интересно, добро пожаловать под кат.

Читать дальше →
Total votes 37: ↑34 and ↓3 +31
Comments 54

Теория графов. Часть третья (Представление графа с помощью матриц смежности, инцидентности и списков смежности)

Reading time 4 min
Views 42K
Algorithms *Network technologies *Mathematics *Machine learning *Artificial Intelligence

Пытаюсь объяснить, как представлять матрицы смежности, инцидентности и списки смежности (инцидентности). И немного говорю о взвешенном графе.

Залетай
Total votes 8: ↑7 and ↓1 +6
Comments 19

Google и Facebook обязали сотрудников, работающих в кампусах, пройти вакцинацию

Reading time 2 min
Views 3.2K
Health IT-companies

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

«Любой, кто придет на работу в наши кампусы, должен будет пройти вакцинацию, — заявил генеральный директор компании Сундар Пичаи в электронном письме для сотрудников. — Вакцинация — один из важнейших способов сохранить здоровье нас самих и наших сообществ в предстоящие месяцы».

Читать далее
Total votes 19: ↑18 and ↓1 +17
Comments 4

Измеряем расходы на память у Postgres процессов

Reading time 7 min
Views 8.2K
Configuring Linux *PostgreSQL *Database Administration *
Translation

Это вольный перевод поста одного из сильных разработчиков Postgres - Andres Freund. Кроме того что разработчик сильный, так еще и статья довольно интересная и раскрывает детали того как работает ОС Linux.

Довольно часто можно слышать заявления что постгресовые соединения используют слишком много памяти. Об этом часто упоминают сравнивая процессную модель обработки клиентских соединений с другой моделью, где каждое соединение обслуживается в отдельном потоке (thread).

Как по мне, здесь есть что обсудить...

Читать далее
Total votes 9: ↑9 and ↓0 +9
Comments 4

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity