про ошибки проектирования
== Как устроить хайлоад на ровном месте
https://youtu.be/jcCLqVQs5No?t=678
ошикби:
- неэффективное использование ресурсов
- база наружу
- разные сервисы на одной машине
- одна синхронная реплика ПОНИМАЖАЕТ надежность. Лучше одна синхронная и онда Асинхроннная с быстрым переключением
- неправильное тестирование
- пиковые нагрузки (по времени, по событиям, таймзонам)
- разумный отлуп роботов
Ошибки проектирования БД
- пагинация
- узкие таблицы (оверхед заголовков)
- широкеи таблицы (не более 50-100 колонок)
- NoSQL когда не надо
- json/xml когда не надо
- ненужная точность вычислений
- виртуализация для ДБ = ЗЛО
В индии ОДНА таймзона. нагрузка по времени в пике просто дичайшая!
F-sync через ядро ОС гостя, через фс ОС, дойти до ядра ОС, потом до ОС хоста, и тп...
== Как устроить хайлоад на ровном месте
https://youtu.be/jcCLqVQs5No?t=678
ошикби:
- неэффективное использование ресурсов
- база наружу
- разные сервисы на одной машине
- одна синхронная реплика ПОНИМАЖАЕТ надежность. Лучше одна синхронная и онда Асинхроннная с быстрым переключением
- неправильное тестирование
- пиковые нагрузки (по времени, по событиям, таймзонам)
- разумный отлуп роботов
Ошибки проектирования БД
- пагинация
- узкие таблицы (оверхед заголовков)
- широкеи таблицы (не более 50-100 колонок)
- NoSQL когда не надо
- json/xml когда не надо
- ненужная точность вычислений
- виртуализация для ДБ = ЗЛО
В индии ОДНА таймзона. нагрузка по времени в пике просто дичайшая!
F-sync через ядро ОС гостя, через фс ОС, дойти до ядра ОС, потом до ОС хоста, и тп...
YouTube
Как устроить хайлоад на ровном месте / Олег Бартунов, Федор Сигаев
HighLoad++ Moscow 2018
Тезисы и презентация:
http://www.highload.ru/moscow/2018/abstracts/4181
Название конференции подразумевает устойчивое понимание докладчиками и слушателями, что такое хайлоад, однако наш многолетний опыт участия в конференции и работы…
Тезисы и презентация:
http://www.highload.ru/moscow/2018/abstracts/4181
Название конференции подразумевает устойчивое понимание докладчиками и слушателями, что такое хайлоад, однако наш многолетний опыт участия в конференции и работы…
== Транзисторный ключ, эмиттерный повторитель, пуш-пулл, полумост и мост. Самое подробное объяснение.
https://youtu.be/MgpT7ZICZSk
https://youtu.be/MgpT7ZICZSk
YouTube
Транзисторный ключ, эмиттерный повторитель, пуш-пулл, полумост и мост. Самое подробное объяснение.
ПОДДЕРЖАТЬ КАНАЛ (ЮMoney): https://musicboy.ru/majortomworkshop
КАРТА СБЕР: 5336 6900 6775 7700
ПОДДЕРЖАТЬ (ежемесячно): https://www.youtube.com/majortomworkshop/join
https://boosty.to/majortom
https://news.1rj.ru/str/majortomworkshop
ЗАКАЗАТЬ Футболку, Кепку, Аксессуары…
КАРТА СБЕР: 5336 6900 6775 7700
ПОДДЕРЖАТЬ (ежемесячно): https://www.youtube.com/majortomworkshop/join
https://boosty.to/majortom
https://news.1rj.ru/str/majortomworkshop
ЗАКАЗАТЬ Футболку, Кепку, Аксессуары…
== Полнотекстовый поиск в PostgreSQL
https://youtu.be/5ZATiyvPQ-A
Индексы
- GIN - указатель (часто ищу)
- GIST - хэш дерево (редко ищу)
- RUM (extension)
Fuzzy search
- pg_trgm (extension)
https://youtu.be/5ZATiyvPQ-A
Индексы
- GIN - указатель (часто ищу)
- GIST - хэш дерево (редко ищу)
- RUM (extension)
Fuzzy search
- pg_trgm (extension)
YouTube
Полнотекстовый поиск в PostgreSQL / Александр Алексеев (Postgres Professional)
Приглашаем на конференцию HighLoad++ 2024, которая пройдет 2 и 3 декабря в Москве!
Программа, подробности и билеты по ссылке: https://clck.ru/3DD4yb
--------
РИТ++ 2017, Backend Conf
Тезисы:
http://backendconf.ru/2017/abstracts/2780.html
Не всем известно…
Программа, подробности и билеты по ссылке: https://clck.ru/3DD4yb
--------
РИТ++ 2017, Backend Conf
Тезисы:
http://backendconf.ru/2017/abstracts/2780.html
Не всем известно…
прикольно, я думал что MIRO будут на редиске до конца жизни))) но...
== Отказоустойчивый кластер PostgreSQL + Patroni.
https://youtu.be/ZvLw9PU--_w
== Отказоустойчивый кластер PostgreSQL + Patroni.
https://youtu.be/ZvLw9PU--_w
YouTube
Отказоустойчивый кластер PostgreSQL + Patroni. Реальный опыт внедрения / Виктор Еремченко (Miro)
Приглашаем на конференцию HighLoad++ 2025, которая пройдет 6 и 7 ноября в Москве!
Программа, подробности и билеты по ссылке: https://highload.ru/moscow/2025
________
HighLoad++ Siberia 2019
Тезисы и презентация:
https://www.highload.ru/siberia/2019/abstracts/5143…
Программа, подробности и билеты по ссылке: https://highload.ru/moscow/2025
________
HighLoad++ Siberia 2019
Тезисы и презентация:
https://www.highload.ru/siberia/2019/abstracts/5143…
== Odyssey - масштабируемый пулер соединений для PostgreSQL
https://youtu.be/Wq7wQ9oyvSw
под каждый запрос постгрес делает FORK процесса !!! поэтому экономить подключения необходимо !!!
https://youtu.be/Wq7wQ9oyvSw
под каждый запрос постгрес делает FORK процесса !!! поэтому экономить подключения необходимо !!!
YouTube
Odyssey - масштабируемый пулер соединений для PostgreSQL / Д. Симоненко и Д. Сарафанников (Яндекс)
HighLoad++ Siberia 2018
Тезисы и презентация:
http://www.highload.ru/siberia/2018/abstracts/3747
Многие знают, что соединения в PostgreSQL дорогие, а потому их надо экономить. Для решения этой задачи давно есть PgPool-II и PgBouncer.
…
--------
Нашли ошибку…
Тезисы и презентация:
http://www.highload.ru/siberia/2018/abstracts/3747
Многие знают, что соединения в PostgreSQL дорогие, а потому их надо экономить. Для решения этой задачи давно есть PgPool-II и PgBouncer.
…
--------
Нашли ошибку…
== PostgreSQL worst practices
https://youtu.be/HxwLCyCY8ec
- используйте индексы
- не используйте ОРМ
- юзайте джоины
- НЕ юзайте json поля
- не юзайте EAV (entity, attr, value)
- не ставьте индексы везде, только где надо и только где выигрыш по времени, меряй!
- не юзайте реплику как бэкап
- тестируйте бэкапы
- НЕ выключайте автовакуум
- архивируйте старые данные !
- используйте SLONY если надо, не юзайте велики!
- реплики и мастеры должны быть на одинаковом железе и с одинаковыми настройками!!!!
- не исполльзуйте синхронную репликацию для разных ЦОД
- юзайте FK. контроль целостности должен работать на строне БД а не приложения !!!!
- не патчите постгрес!
- надо делать маленькие транзакции !
- хранимка это место для только внутренних запросов. никаких запусков сторонних сервисов
- писать код нужно для того что бы потом читать
- оптимизируйте запросы
- юзайте PgQ
- попробуйте PL/pgSQL
- используйте Exceptions
- меньше коннекшнов! т.к. один запрос = 1процесс = 1ядро
- юзайте pgbouncer
- НЕ ЮЗАЙТЕ pgPool
- настраивайте shared_buffers! дефолтные натсройки PG для самого гголимого железа !
- не юзайте xmin/xmax для продакшна !
- мониторинг!
- надо делать меньше потоков
- юзайте COPY
https://youtu.be/HxwLCyCY8ec
- используйте индексы
- не используйте ОРМ
- юзайте джоины
- НЕ юзайте json поля
- не юзайте EAV (entity, attr, value)
- не ставьте индексы везде, только где надо и только где выигрыш по времени, меряй!
- не юзайте реплику как бэкап
- тестируйте бэкапы
- НЕ выключайте автовакуум
- архивируйте старые данные !
- используйте SLONY если надо, не юзайте велики!
- реплики и мастеры должны быть на одинаковом железе и с одинаковыми настройками!!!!
- не исполльзуйте синхронную репликацию для разных ЦОД
- юзайте FK. контроль целостности должен работать на строне БД а не приложения !!!!
- не патчите постгрес!
- надо делать маленькие транзакции !
- хранимка это место для только внутренних запросов. никаких запусков сторонних сервисов
- писать код нужно для того что бы потом читать
- оптимизируйте запросы
- юзайте PgQ
- попробуйте PL/pgSQL
- используйте Exceptions
- меньше коннекшнов! т.к. один запрос = 1процесс = 1ядро
- юзайте pgbouncer
- НЕ ЮЗАЙТЕ pgPool
- настраивайте shared_buffers! дефолтные натсройки PG для самого гголимого железа !
- не юзайте xmin/xmax для продакшна !
- мониторинг!
- надо делать меньше потоков
- юзайте COPY
YouTube
PostgreSQL worst practices / Илья Космодемьянский (Data Egret)
Приглашаем на конференцию Saint HighLoad++ 2025, которая пройдет 23 и 24 июня в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
HighLoad++ 2017
Тезисы:
http://www.highload.ru/2017/abstracts/3111.html…
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
HighLoad++ 2017
Тезисы:
http://www.highload.ru/2017/abstracts/3111.html…
== Блокировки в PostgreSQL
https://youtu.be/_R2-IsKfsUU
pg_stat_activity
pg_wait_sampling
pg_locks
deadlock_timeout
https://youtu.be/_R2-IsKfsUU
pg_stat_activity
pg_wait_sampling
pg_locks
SELECT pid, query, pg_blocking_pids(pid) AS blocking FROM pg_stat_activitypg_row_locks
SELECT llocked_row, xids, modes, pids FROM pgrowlocks('t);SELECT pid, locktype, transactionid AS xid, tuple as t, granted FROM pg_locks;
deadlock_timeout
YouTube
Блокировки в PostgreSQL / Егор Рогов (Postgres Professional)
Приглашаем на конференцию HighLoad++ 2025, которая пройдет 6 и 7 ноября в Москве!
Программа, подробности и билеты по ссылке: https://highload.ru/moscow/2025
________
При поддержке AvitoTech мы впервые публикуем все видео с HighLoad++ 2019 в открытый доступ.…
Программа, подробности и билеты по ссылке: https://highload.ru/moscow/2025
________
При поддержке AvitoTech мы впервые публикуем все видео с HighLoad++ 2019 в открытый доступ.…
== Девять кругов ада или PostgreSQL Vacuum
https://youtu.be/TDWC66qzxCs
MVCC - multiversion concurency control
- всегда включен автовакуум!
- надо тюнить настройки!
- врапэраунд не страшен!
- вакуум не всегда может вычистить таблицу
- избегайте длинных транзакций
https://youtu.be/TDWC66qzxCs
MVCC - multiversion concurency control
- всегда включен автовакуум!
- надо тюнить настройки!
- врапэраунд не страшен!
- вакуум не всегда может вычистить таблицу
- избегайте длинных транзакций
YouTube
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consulting LLC)
Приглашаем на конференцию Saint HighLoad++ 2025, которая пройдет 23 и 24 июня в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
Презентация и тезисы:
http://www.highload.ru/2016/abstracts/2381.html
Если…
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
Презентация и тезисы:
http://www.highload.ru/2016/abstracts/2381.html
Если…
== Зачем нужны Витрины данных (Data Mart)
https://telegra.ph/Prostor-dlya-dannyh-02-09
https://telegra.ph/Prostor-dlya-dannyh-02-09
Telegraph
Простор для данных
Зачем вообще нужны витрины и тем более Система для их построения? Если коротко, то витрины (витрина от англ. data mart) – это набор структурированных данных. Обычно это данные по определенной теме или задаче в компании. Например, витрина с данными о заказчиках…
== Postgres 14 и высокие нагрузки
https://youtu.be/PIBuf3E4C04
https://youtu.be/PIBuf3E4C04
YouTube
Postgres 14 и высокие нагрузки / Иван Панченко (Postgres Professional)
Приглашаем на конференцию HighLoad++ 2023, которая пройдет 27 и 28 ноября 2023 в Москве!
Программа, подробности и билеты по ссылке: https://clck.ru/354BuE
--------
HighLoad++ Весна 2021
Крупнейшая профессиональная конференция для разработчиков высоконагруженных…
Программа, подробности и билеты по ссылке: https://clck.ru/354BuE
--------
HighLoad++ Весна 2021
Крупнейшая профессиональная конференция для разработчиков высоконагруженных…
== Энтерпрайзные вызовы для Postgres'а
https://youtu.be/bra0bQhIF8k
1) вызов горизонтальной масштабируемости
- масштабируется сейчас только READ нагрузка
- шардинг единственный способ для WRITE - только руками
- распределенные транзакции
2) Вызовы репликации
- проблема долгих запросов
- проблема временных таблиц на реплике
- задача сокращения WAL файлов
- логическая репликация DDL
- параллельное применение логического репликации
- физиологическая репликация
3) развигание пределов
- большине таблицы = решается секционированием
- BYTEA не гигабайт
- эффективное секционирование
- большое количество таблиц = стратегия вакуума
- большие поля - специализированный TOAST
- Wraparound (64бит!!!!)
https://youtu.be/bra0bQhIF8k
1) вызов горизонтальной масштабируемости
- масштабируется сейчас только READ нагрузка
- шардинг единственный способ для WRITE - только руками
- распределенные транзакции
2) Вызовы репликации
- проблема долгих запросов
- проблема временных таблиц на реплике
- задача сокращения WAL файлов
- логическая репликация DDL
- параллельное применение логического репликации
- физиологическая репликация
3) развигание пределов
- большине таблицы = решается секционированием
- BYTEA не гигабайт
- эффективное секционирование
- большое количество таблиц = стратегия вакуума
- большие поля - специализированный TOAST
- Wraparound (64бит!!!!)
YouTube
Энтерпрайзные вызовы для Postgres'а / Иван Панченко (Postgres Professional)
Приглашаем на Saint HighLoad 2023, которая пройдет 26 и 27 июня 2023 в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: http://bit.ly/3JZHEg2
--------
При поддержке AvitoTech мы впервые публикуем все видео с HighLoad++ 2019 в открытый доступ.…
Программа, подробности и билеты по ссылке: http://bit.ly/3JZHEg2
--------
При поддержке AvitoTech мы впервые публикуем все видео с HighLoad++ 2019 в открытый доступ.…
== Как стать классным спецом по базам данных?
https://youtu.be/SpLVs6lfXps
DBA:
- Computer science
- soft skills
- development
- sql & Ko
- data science
- dba
- operations
- backend
- clouds
важно
- нормальные формы 1,2,3
- 2 phase locking
- deadlock detection
- MVCC
- write ahead log (WAL)
- писсимистические алгоритмы !
- RTFM
опционально
- реляционная алгебра
- нормальные формы 3+
- b-tree, B+, B*
подводные камни
- не путать 2pl и 2pc
- не противопоставлять 2pl и MVCC
- читайте доку по .conf
- keep calm
- dont tune the query !!!
https://youtu.be/SpLVs6lfXps
DBA:
- Computer science
- soft skills
- development
- sql & Ko
- data science
- dba
- operations
- backend
- clouds
важно
- нормальные формы 1,2,3
- 2 phase locking
- deadlock detection
- MVCC
- write ahead log (WAL)
- писсимистические алгоритмы !
- RTFM
опционально
- реляционная алгебра
- нормальные формы 3+
- b-tree, B+, B*
подводные камни
- не путать 2pl и 2pc
- не противопоставлять 2pl и MVCC
- читайте доку по .conf
- keep calm
- dont tune the query !!!
YouTube
Как стать классным спецом по базам данных? / Илья Космодемьянский (Data Egret)
Приглашаем на конференцию Saint HighLoad++ 2025, которая пройдет 23 и 24 июня в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
HighLoad++ Moscow 2018
Тезисы и презентация:
http://www.highload.ru/mos…
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
HighLoad++ Moscow 2018
Тезисы и презентация:
http://www.highload.ru/mos…
==Redis Crash Course
https://youtu.be/jgpVdJB2sKQ
МАЛО!
- list
- set
- hash
== Redis Crash Course - the What, Why and How to use Redis as your primary database
https://youtu.be/OqCK95AS-YE
ЧУТЬ БОЛЬШЕ
- modules
- structures
- HA
- redis on flash
- scaling
- sharding
https://youtu.be/jgpVdJB2sKQ
МАЛО!
- list
- set
- hash
== Redis Crash Course - the What, Why and How to use Redis as your primary database
https://youtu.be/OqCK95AS-YE
ЧУТЬ БОЛЬШЕ
- modules
- structures
- HA
- redis on flash
- scaling
- sharding
YouTube
Redis Crash Course
Redis is the most popular caching tool. It can be used with pretty much any programming language and provides incredibly versatile and quick caching. Redis powers a huge portion of the web so it is important to understand how it works. In this video I will…
== What Happens When Redis Runs Out of Memory
https://youtu.be/W8IEzoxRMz4
https://youtu.be/W8IEzoxRMz4
YouTube
What Happens When Redis Runs Out of Memory
Elena Kolevska's session at Redis Day Tel Aviv 2019.
оч давно было интересно на самом деле это так или нет
== Равно ли 80 км/ч и 80 км/ч в сумме 160 км/ч?
https://youtu.be/jirh3s0d2s0
== Равно ли 80 км/ч и 80 км/ч в сумме 160 км/ч?
https://youtu.be/jirh3s0d2s0
YouTube
Равно ли 80 км/ч и 80 км/ч в сумме 160 км/ч?
Разрушители легенд провели три опыта
1. Автомобиль врезается в стену на скорости 80 км/ч.
2. Автомобиль врезается в стену на скорости 160 км/ч.
3. Два авто навстречу друг другу на скорости 80 км/ч каждый.
На что будет похож результат 3 опыта - на результат…
1. Автомобиль врезается в стену на скорости 80 км/ч.
2. Автомобиль врезается в стену на скорости 160 км/ч.
3. Два авто навстречу друг другу на скорости 80 км/ч каждый.
На что будет похож результат 3 опыта - на результат…
👍1
== Как устроены базы данных
https://youtu.be/c4_5rqvmDFU
1) Слой доступа к данным
- универсальность
- оптимальность
- параллелизм
= Язык запросов
= транзакционность
2) слой хранения
- параллелизм
- эффективность
- надежность
= Сериализация
= Восстановление
3) железо
- надежность
- эффективность
= интеграция с ядрами ОС
Конкурентный доступ
ACID
- Изолированность транзакций
- Атомарность транзакции
- Консистентность транзакции
- долговечность (хранимость)
Как обеспечить
- блокировки на ресурс
- эффективные алггоритмы блокировок
Планировщик
- пессимистичный
- оптимистичный
- гибридный
- основнанные на упорядочивании таймстемпов транзакций
двухфайзное блокирование
- неизбежно возникнут дедлоки
- нужна система отстрела дедлоков
- медленно
+ обеспечена сериализация
MVCC
- что бы не ждать блокировку - возмем предыдущю версию, если что перечитаем заново (это быстрей чем ждать до конца)
WAL = Write Ahead Log
прежде чем ответ вернется клиенту все запишется в WAL/ если чтото пошло не так. то вычитаем предыдущую строчку из WAL
БД используюти страницы фиксированного размера - удобно для алгоритмов сериализации
- При записи вся страница помечается как грязная
- Если после этого сбой - теряем грязные страницы
- что бы можно было востановить после сбоя пишем WAL
- что бы WAL не рос бесконечно. БД имеет алгоритм чекпоинтов, когда все грязные страницы свопаются на диск
https://youtu.be/c4_5rqvmDFU
1) Слой доступа к данным
- универсальность
- оптимальность
- параллелизм
= Язык запросов
= транзакционность
2) слой хранения
- параллелизм
- эффективность
- надежность
= Сериализация
= Восстановление
3) железо
- надежность
- эффективность
= интеграция с ядрами ОС
Конкурентный доступ
ACID
- Изолированность транзакций
- Атомарность транзакции
- Консистентность транзакции
- долговечность (хранимость)
Как обеспечить
- блокировки на ресурс
- эффективные алггоритмы блокировок
Планировщик
- пессимистичный
- оптимистичный
- гибридный
- основнанные на упорядочивании таймстемпов транзакций
двухфайзное блокирование
- неизбежно возникнут дедлоки
- нужна система отстрела дедлоков
- медленно
+ обеспечена сериализация
MVCC
- что бы не ждать блокировку - возмем предыдущю версию, если что перечитаем заново (это быстрей чем ждать до конца)
WAL = Write Ahead Log
прежде чем ответ вернется клиенту все запишется в WAL/ если чтото пошло не так. то вычитаем предыдущую строчку из WAL
БД используюти страницы фиксированного размера - удобно для алгоритмов сериализации
- При записи вся страница помечается как грязная
- Если после этого сбой - теряем грязные страницы
- что бы можно было востановить после сбоя пишем WAL
- что бы WAL не рос бесконечно. БД имеет алгоритм чекпоинтов, когда все грязные страницы свопаются на диск
YouTube
Как устроены базы данных / Илья Космодемьянский (Data Egret)
Приглашаем на конференцию HighLoad++ 2025, которая пройдет 6 и 7 ноября в Москве!
Программа, подробности и билеты по ссылке: https://highload.ru/moscow/2025
________
РИТ++ 2017, HighLoad Junior
Тезисы:
http://junior.highload.ru/2017/abstracts/2791.html…
Программа, подробности и билеты по ссылке: https://highload.ru/moscow/2025
________
РИТ++ 2017, HighLoad Junior
Тезисы:
http://junior.highload.ru/2017/abstracts/2791.html…
нашел неплохой подкаст по Базам данных и в частности много про Постгрес
https://www.youtube.com/c/RuPostgres/videos
https://www.youtube.com/c/RuPostgres/videos
== Секционирование таблиц PostgreSQL
https://youtu.be/eE9ZZc_oqQk
https://youtu.be/eE9ZZc_oqQk
YouTube
Секционирование таблиц PostgreSQL // Демо-занятие курса «PostgreSQL»
Рассмотрим партиционирование в общем
Изучим решения, которые использовались (используются) в PostgreSQL
Применим их на практике
«PostgreSQL» - https://otus.pw/LbdG/
Преподаватель: Владимир Крокодилов - работает в компании "Хост" программистом
Подключайтесь…
Изучим решения, которые использовались (используются) в PostgreSQL
Применим их на практике
«PostgreSQL» - https://otus.pw/LbdG/
Преподаватель: Владимир Крокодилов - работает в компании "Хост" программистом
Подключайтесь…