Forwarded from DevFM
Боль от распухающей базы данных
Интересный кейс от ребят из Figma. Некоторое время назад они сидели на одной жирной Postgres.
Чтобы дать себе время на разработку целевого решения, ребята сначала подстелили сначала соломку:
– Накинули железа (ну конечно, а что ещё остается делать)
– Создали несколько read реплик
– Добавили PgBouncer в свою архитектуру
– Для новых фичей стали стараться использовать отдельные базы
Шардирование оказалось очень трудоёмким, так как требовало значительных изменений в архитектуре. Поэтому ребята двинули в сторону партицирования, когда таблицы с высокой нагрузкой выносятся в отдельные базы.
Самая интересная задача тут – мигрировать данные без даунтайма.
Сделано это было в несколько шагов:
1. Подготовили клиентские приложения для работы с несколькими базами данных.
2. Настроили логическую репликацию таблиц для копирования данных из одной базы в другую. Тут, кстати, ещё интересный нюанс, логическая репликация может занимать ооооочень продолжительное время из-за долгого обновления индексов, поэтому на целевой бд индексы были удалены перед началом копирования и восстановлены после завершения копирования.
3. Короткая пауза активности на основной бд для полной синхронизации данных.
4. Назначение целевой бд как основной и перенаправление запросов к ней.
В общем, отличная статья в копилку насмотренности технологических решений.
На тему миграций без даунтайма у нас был отдельный практический пост.
#skills #database
Интересный кейс от ребят из Figma. Некоторое время назад они сидели на одной жирной Postgres.
Чтобы дать себе время на разработку целевого решения, ребята сначала подстелили сначала соломку:
– Накинули железа (ну конечно, а что ещё остается делать)
– Создали несколько read реплик
– Добавили PgBouncer в свою архитектуру
– Для новых фичей стали стараться использовать отдельные базы
Шардирование оказалось очень трудоёмким, так как требовало значительных изменений в архитектуре. Поэтому ребята двинули в сторону партицирования, когда таблицы с высокой нагрузкой выносятся в отдельные базы.
Самая интересная задача тут – мигрировать данные без даунтайма.
Сделано это было в несколько шагов:
1. Подготовили клиентские приложения для работы с несколькими базами данных.
2. Настроили логическую репликацию таблиц для копирования данных из одной базы в другую. Тут, кстати, ещё интересный нюанс, логическая репликация может занимать ооооочень продолжительное время из-за долгого обновления индексов, поэтому на целевой бд индексы были удалены перед началом копирования и восстановлены после завершения копирования.
3. Короткая пауза активности на основной бд для полной синхронизации данных.
4. Назначение целевой бд как основной и перенаправление запросов к ней.
В общем, отличная статья в копилку насмотренности технологических решений.
На тему миграций без даунтайма у нас был отдельный практический пост.
#skills #database
Figma
The growing pains of database architecture | Figma Blog
How the Figma infrastructure team reduced potential instability by scaling to multiple databases
Forwarded from Айтигребец
Интересный доклад про B-Tree (plus) (Би плюс дерево) структуру в индексах PostgreSQL.
- как индекс в целом устроен и для чего нужен
- почему так устроен, как хранит данные и что/как внутри самого индекса
- чем хороша сама структура B-Tree plus
- базовые знания про : вставка vs чтение (в контекста индексов), GUID vs BigINT в качестве ключа, индексы по primary key (?)
- как оптимизировать запросы если тупят +пара хаков с примерами
- индексы по нескольким полям
- какие есть проблемы с удалением данных (ну и апдейтами тоже)
- чуть про кластеризацию индексов в постгресе и как так получилось😁
Ссылочка с доклада : https://use-the-index-luke.com/
Уровень : middle+.
Советасьон
https://www.youtube.com/watch?v=OBSx9NDG-X0
- как индекс в целом устроен и для чего нужен
- почему так устроен, как хранит данные и что/как внутри самого индекса
- чем хороша сама структура B-Tree plus
- базовые знания про : вставка vs чтение (в контекста индексов), GUID vs BigINT в качестве ключа, индексы по primary key (?)
- как оптимизировать запросы если тупят +пара хаков с примерами
- индексы по нескольким полям
- какие есть проблемы с удалением данных (ну и апдейтами тоже)
- чуть про кластеризацию индексов в постгресе и как так получилось
Ссылочка с доклада : https://use-the-index-luke.com/
Уровень : middle+.
Советасьон
https://www.youtube.com/watch?v=OBSx9NDG-X0
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Владимир Ситников — B-tree индексы в базах данных на примере .NET Entity Framework и PostgreSQL
Подробнее о конференции DotNext: https://jrg.su/3WmFRE
— —
Доклад о том, как работают обычные™ индексы в базах данных. Доклад будет крайне полезен как тем, кто начинает работать с базами данных, так и тем, кто работал, но подзабыл. У вас бэкенд на PostgreSQL?…
— —
Доклад о том, как работают обычные™ индексы в базах данных. Доклад будет крайне полезен как тем, кто начинает работать с базами данных, так и тем, кто работал, но подзабыл. У вас бэкенд на PostgreSQL?…
Forwarded from Тимлид Очевидность | Евгений Антонов
Я принес. Гуманизм против «эффективного менеджмента». Почему заботиться о людях выгодно
Вы знаете, что я тот еще гуманист 🙂 Поэтому не мог пройти мимо этого лонгрида https://habr.com/ru/articles/816545/
Текст большой, так что наливайте чай-кофе, заводите один таймер pomodoro и погружайтесь.
Я хоть и гуманист, но не идеалист. Понимаю, что во взрослой капиталистической жизни на высоком уровне управления почти всегда будет то, на что статья ругается. Однако, мы же в тимлидском канале. А позиция тимлида как раз может себе позволить обеспечивать гуманизм и комфорт в своей команде. На уровне руководителей тимлидов я подобного видел реже, а еще выше, так и зачастую – деньги, ресурсы, безобразно, но однообразно.
Так что, граждане тимлиды, этот контент вам точно будет полезен.
Вы знаете, что я тот еще гуманист 🙂 Поэтому не мог пройти мимо этого лонгрида https://habr.com/ru/articles/816545/
Текст большой, так что наливайте чай-кофе, заводите один таймер pomodoro и погружайтесь.
Я хоть и гуманист, но не идеалист. Понимаю, что во взрослой капиталистической жизни на высоком уровне управления почти всегда будет то, на что статья ругается. Однако, мы же в тимлидском канале. А позиция тимлида как раз может себе позволить обеспечивать гуманизм и комфорт в своей команде. На уровне руководителей тимлидов я подобного видел реже, а еще выше, так и зачастую – деньги, ресурсы, безобразно, но однообразно.
Так что, граждане тимлиды, этот контент вам точно будет полезен.
Хабр
Гуманизм против «эффективного менеджмента». Почему заботиться о людях выгодно
Бизнес полон "эффективных менеджеров" и их "лучших практик". Переработки, стресс, политика кнута без пряника, урезания зарплат и премий, обманы и подлоги. Эти практики распространены очень широко,...
Forwarded from Life isData
Официально: это самая большая шпаргалка по Python, которую я видел.
Коротко про весь ЯП в 10 скринах.
Полная версия в формате PDF — тут
Коротко про весь ЯП в 10 скринах.
Полная версия в формате PDF — тут
Forwarded from Николай Хитров | Блог
Статья "У нас закончились столбцы" - лучшая худшая кодовая база
Потрясающая статья для утреннего чтива. Одновременно хочется и смеяться, и плакать. Удивительно странные и нелепые истории про организацию одной большой базы данных, про процессы в компании и про жесткие диски Гилфойла. Крайне рекомендую☕️
https://habr.com/ru/articles/833916/
О, таблица merchants2? Да, у нас закончились столбцы в merchants, поэтому мы сделали merchants2.
Потрясающая статья для утреннего чтива. Одновременно хочется и смеяться, и плакать. Удивительно странные и нелепые истории про организацию одной большой базы данных, про процессы в компании и про жесткие диски Гилфойла. Крайне рекомендую
https://habr.com/ru/articles/833916/
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
«У нас закончились столбцы» — лучшая худшая кодовая база
О, таблица merchants2? Да, у нас закончились столбцы в merchants, поэтому мы сделали merchants2. Когда я начинал программировать в детстве, я не знал, что людям платят за программирование. Даже когда...
Forwarded from Machine learning Interview
В этой статье представлена реализация архитектуры UNet 3+ с помощью TensorFlow.
UNet 3+ расширяет классическую архитектуру UNet и UNet++.
В статье рассмотрен каждый блок архитектуры UNet 3+ и объяснено, как они работают и что способствует повышению производительности модели.
Понимание этих блоков позволит понять механизмы, лежащие в основе UNet 3+, и то, как она эффективно справляется с такими задачами, как сегментация изображений или другими задачами попиксельного предсказания.
https://idiotdeveloper.com/unet-3-plus-implementation-in-tensorflow/
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM