== Энтерпрайзные вызовы для 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/
Преподаватель: Владимир Крокодилов - работает в компании "Хост" программистом
Подключайтесь…
== Архитектура платежной системы: почти enterprise
https://youtu.be/wMcWo2cT7Ck
ДАЙОЖ ПЛЭЙН ЖСОН!!!
(на самом деле нет)
https://youtu.be/wMcWo2cT7Ck
ДАЙОЖ ПЛЭЙН ЖСОН!!!
(на самом деле нет)
YouTube
Архитектура платежной системы: почти enterprise / Филипп Дельгядо
Приглашаем на конференцию Saint HighLoad++ 2024, которая пройдет 24 и 25 июня в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: https://vk.cc/cuyIqx
--------
--------
HighLoad++ 2017
Тезисы:
http://www.highload.ru/2017/abstracts/2948.html…
Программа, подробности и билеты по ссылке: https://vk.cc/cuyIqx
--------
--------
HighLoad++ 2017
Тезисы:
http://www.highload.ru/2017/abstracts/2948.html…
ebin_pub_digital_modulations_using_python_1nbsped_9781712321638.pdf
5.9 MB
== Digital Modulations using Python
Generating standard test signals
Interpreting FFT results – complex DFT, frequency bins and FFTShift
Obtaining magnitude and phase information from FFT signal from the frequency domain samples
Power spectral density
Power and Energy of a signal
Polynomials, Convolution and Toeplitz matrices
Methods to compute convolution
Analytic signal and its applications
Choosing a filter : FIR or IIR : understanding the design perspective
Digital Modulators and Demodulators – Passband Simulation Models
BPSK
DEBPSK
D-BPSK
QPSK
O-QPSK
π∕4-DQPSK
CPM
Power Spectral Density (PSD) plots
GMSK
FSK
Digital Modulators and Demodulators – Complex Baseband Equivalent Models
M-PAM
M-PSK
M-QAM
Performance of Digital Modulations over Wireless Channels
AWGN channel
Fading channels
Linear Equalizers
Receiver Impairments and Compensation
Generating standard test signals
Interpreting FFT results – complex DFT, frequency bins and FFTShift
Obtaining magnitude and phase information from FFT signal from the frequency domain samples
Power spectral density
Power and Energy of a signal
Polynomials, Convolution and Toeplitz matrices
Methods to compute convolution
Analytic signal and its applications
Choosing a filter : FIR or IIR : understanding the design perspective
Digital Modulators and Demodulators – Passband Simulation Models
BPSK
DEBPSK
D-BPSK
QPSK
O-QPSK
π∕4-DQPSK
CPM
Power Spectral Density (PSD) plots
GMSK
FSK
Digital Modulators and Demodulators – Complex Baseband Equivalent Models
M-PAM
M-PSK
M-QAM
Performance of Digital Modulations over Wireless Channels
AWGN channel
Fading channels
Linear Equalizers
Receiver Impairments and Compensation
== Зачем нужен мультимастер?
https://youtu.be/bcRo--JlR14
- Oracle RAC (не совсем м-м реплика, сторадж всеже один)
- Postgres XC/XL
- Postgres BDR (репликация через WAL, малые понятные данные)
- Postgres Slony (репликация на триггерах) - более надежен
простой инсерт скейлить не проблема. а вот проапдейтить - это сложней
СЛУЧАЕВ КОГДА ИСПОЛЬЗОВАНИЕ МУЛЬТИМАСТЕРА ВМЕСТО hoststandby ОПРАВДАННО - ИСЧЕЗАЮЩЕ МАЛО
https://youtu.be/bcRo--JlR14
- Oracle RAC (не совсем м-м реплика, сторадж всеже один)
- Postgres XC/XL
- Postgres BDR (репликация через WAL, малые понятные данные)
- Postgres Slony (репликация на триггерах) - более надежен
простой инсерт скейлить не проблема. а вот проапдейтить - это сложней
СЛУЧАЕВ КОГДА ИСПОЛЬЗОВАНИЕ МУЛЬТИМАСТЕРА ВМЕСТО hoststandby ОПРАВДАННО - ИСЧЕЗАЮЩЕ МАЛО
YouTube
Зачем нужен мультимастер? / Илья Космодемьянский (PostgreSQL-Consulting LLC)
Приглашаем на конференцию Saint HighLoad++ 2025, которая пройдет 23 и 24 июня в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
Презентация и тезисы:
http://www.highload.ru/2016/abstracts/2380.html
Есть…
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
Презентация и тезисы:
http://www.highload.ru/2016/abstracts/2380.html
Есть…
== Cautious: IPv6 is here
https://youtu.be/UIpm7FTpreA
- ipV4 или IPv6 лучше ? НЕКОРРЕКТНО !!! невозможно замерить
- какой протокол надежней ? ПОКА ipV4
- кто победит ? MPTCP
https://youtu.be/UIpm7FTpreA
- ipV4 или IPv6 лучше ? НЕКОРРЕКТНО !!! невозможно замерить
- какой протокол надежней ? ПОКА ipV4
- кто победит ? MPTCP
YouTube
Cautious: IPv6 is here / Александр Азимов (Qrator Labs)
Приглашаем на конференцию Saint HighLoad++ 2024, которая пройдет 24 и 25 июня в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: https://vk.cc/cuyIqx
--------
--------
Презентация и тезисы:
http://www.highload.ru/2016/abstracts/2334.html
Многим…
Программа, подробности и билеты по ссылке: https://vk.cc/cuyIqx
--------
--------
Презентация и тезисы:
http://www.highload.ru/2016/abstracts/2334.html
Многим…
== Использование очередей асинхронных сообщений с PostgreSQL
https://youtu.be/EHABzlUYOZk
https://youtu.be/EHABzlUYOZk
YouTube
Использование очередей асинхронных сообщений с PostgreSQL / Илья Космодемьянский (PostgreSQL)
HighLoad++ 2012
очень хороший доклад
- видеостриминг
- кодеки
- обзор протоколов стриминга
- некоторые алгоритмы работы протоколов
== Пишем свой протокол поверх UDP
https://youtu.be/1Ih0bL2Zp1c
- видеостриминг
- кодеки
- обзор протоколов стриминга
- некоторые алгоритмы работы протоколов
== Пишем свой протокол поверх UDP
https://youtu.be/1Ih0bL2Zp1c
YouTube
Пишем свой протокол поверх UDP / Александр Тоболь (Одноклассники)
Приглашаем на конференцию HighLoad++ 2024, которая пройдет 2 и 3 декабря в Москве!
Программа, подробности и билеты по ссылке: https://clck.ru/3DD4yb
--------
HighLoad++ 2017
Тезисы:
http://www.highload.ru/2017/abstracts/3071.html
Пишем свой протокол стриминга…
Программа, подробности и билеты по ссылке: https://clck.ru/3DD4yb
--------
HighLoad++ 2017
Тезисы:
http://www.highload.ru/2017/abstracts/3071.html
Пишем свой протокол стриминга…
== Игровой сервер: что там внутри?
https://youtu.be/YxLxSNNEqk0
- postgres
- kafka
- hazelcast
- vert.x = reactor template (queue + eventloop)
- prometheus + graphana
- hadoop
https://youtu.be/YxLxSNNEqk0
- postgres
- kafka
- hazelcast
- vert.x = reactor template (queue + eventloop)
- prometheus + graphana
- hadoop
YouTube
Игровой сервер: что там внутри? / Марк Локшин (IT Territory/Mail.ru Group)
Приглашаем на конференцию Saint HighLoad++ 2025, которая пройдет 23 и 24 июня в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
HighLoad++ Весна 2021
Крупнейшая профессиональная конференция для разработчиков…
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
HighLoad++ Весна 2021
Крупнейшая профессиональная конференция для разработчиков…
про проблемы в сетях и перегрузки
== Тюнинг параметров TCP-соединений в высокоскоростных сетях
https://youtu.be/F0Zif5Enbgc
планировать сеть очень сложно. никто об этом не задумывается
есть всегда опасность каскадной деградации сервиса
сейчас все сети перегруженные. современный мир =(
MICROBUURST
- взрывной характер трафика на уровне милисекунд. и пакеты не влазят в пропускную способность
механизм медленного старта
аппаратный буфер сетевого оборудования
- сохранить тело пакета
- скгладить поток пакетов до скорости выходного интерфейса
- контролировать нагрзуку
у каждого интерфейса есть очередь отправки. память конечна
- что бы сохранить все пакеты на скорости 1ггб в сек нужен 25мб. для 10ггб = 250 мб. НЕ ВСЕ ТАК УМЕЮТ
- фильтруем трафик. QoS
Причины перерегрузок
- трафик переходит в мене скоростной интерфейс
- трафик с нескольких входрящих портов должен попасть в один исходящий Downlink-Backpressuer
- прочие типы burst-трафика
- Incast
перегрузка это норма
Incast
- очень часто появляется в распределенных системах (ceph, hadoop, hdfs...)
- все данные что не влезли в коммутатор - будут дропнуты
- ЭТО ПАДЕНИЕ пропускной способности TCP по мере того как коммутаторы не успевают буферизировать все и TCP начинает троттлить и появляются задержки в 200мс
Решение Incast
- большие буфера коммутатора
- управление потоком
- уменьшение номинального RTO TCP
RTO это значение ожидания при котором мы считаем что пакет потерялся в TCP. много плохо и мало плохо
сликом малый RTO - это много повторов
слишком много RTO - это медленные реакции на потери
== Тюнинг параметров TCP-соединений в высокоскоростных сетях
https://youtu.be/F0Zif5Enbgc
планировать сеть очень сложно. никто об этом не задумывается
есть всегда опасность каскадной деградации сервиса
сейчас все сети перегруженные. современный мир =(
MICROBUURST
- взрывной характер трафика на уровне милисекунд. и пакеты не влазят в пропускную способность
механизм медленного старта
аппаратный буфер сетевого оборудования
- сохранить тело пакета
- скгладить поток пакетов до скорости выходного интерфейса
- контролировать нагрзуку
у каждого интерфейса есть очередь отправки. память конечна
- что бы сохранить все пакеты на скорости 1ггб в сек нужен 25мб. для 10ггб = 250 мб. НЕ ВСЕ ТАК УМЕЮТ
- фильтруем трафик. QoS
Причины перерегрузок
- трафик переходит в мене скоростной интерфейс
- трафик с нескольких входрящих портов должен попасть в один исходящий Downlink-Backpressuer
- прочие типы burst-трафика
- Incast
перегрузка это норма
Incast
- очень часто появляется в распределенных системах (ceph, hadoop, hdfs...)
- все данные что не влезли в коммутатор - будут дропнуты
- ЭТО ПАДЕНИЕ пропускной способности TCP по мере того как коммутаторы не успевают буферизировать все и TCP начинает троттлить и появляются задержки в 200мс
Решение Incast
- большие буфера коммутатора
- управление потоком
- уменьшение номинального RTO TCP
RTO это значение ожидания при котором мы считаем что пакет потерялся в TCP. много плохо и мало плохо
сликом малый RTO - это много повторов
слишком много RTO - это медленные реакции на потери
YouTube
Тюнинг параметров TCP-соединений в высокоскоростных сетях / Валерий Красников (Сбербанк )
Приглашаем на конференцию HighLoad++ 2025, которая пройдет 6 и 7 ноября в Москве!
Программа, подробности и билеты по ссылке: https://highload.ru/moscow/2025
________
HighLoad++ Весна 2021
Крупнейшая профессиональная конференция для разработчиков высоконагруженных…
Программа, подробности и билеты по ссылке: https://highload.ru/moscow/2025
________
HighLoad++ Весна 2021
Крупнейшая профессиональная конференция для разработчиков высоконагруженных…