Pull to refresh
59
Андрей@KoppeKTop

User

24
Subscribers
Send message

Миграция без боли и даунтайма: как мы перевозили данные с MongoDB на PostgreSQL

Level of difficultyMedium
Reading time12 min
Reach and readers17K

Всем привет! Меня зовут Андрей, я бэкенд‑разработчик ядра Яндекс Диска. В индустрии я уже около 15 лет и повидал некоторое ПО. Последние три года занимаюсь ядром файловой системы — всем, что связано с метаданными о файлах.

Однажды мы в Диске переносили общие данные из шардированного MongoDB в шардированный же PostgreSQL. После переноса пользовательских данных у нас осталась часть данных про общие папки.Их было сложно изолировать внутри шарда пользователя, и они остались в общей БД на MongoDB, которую мы так и назвали — CommonDB. Спустя время мы заметили, что общая БД не справляется с нагрузкой: все запросы перед выполнением должны были сначала получить информацию об общих папках, и только после этого они начинали работать. Поэтому надо было дублировать информацию ближе к другим данным пользователей — на их шарды.

Однако при дублировании важно было избежать распределённых транзакций, так как они снижают общую производительность. Также проблемой был сам процесс перехода: у нас сотни миллионов пользователей, которые не должны были ощущать процесс перехода и потерять доступ к своим данным. При этом надо было выкатывать изменения не сразу на 100%, а частично, с возможностью в любой момент отключить функциональность. При выкатке также нельзя было допустить даунтайм.

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

Замигрировать

Шардирование: с нуля до Яндекс Диска

Reading time9 min
Reach and readers18K

Меня зовут Андрей Колнооченко. Я отвечаю за ядро файловой системы Яндекс Диска. Когда мы запускали сервис, то сразу ориентировались на рост и приняли решение шардировать базу метаданных о файлах. Но за 11 лет Яндекс Диск настолько вырос, что нам пришлось трижды менять подход к шардированию. В статье расскажу, с какими проблемами мы сталкивались по мере роста сервиса и как от MongoDB пришли в итоге к PostgreSQL.

Эта статья будет полезна, если вы планируете распределить нагрузку на вашу БД или вам просто интересен опыт развития БД для обработки большого числа запросов.

Читать далее

Новый виток архитектуры CUDA

Reading time4 min
Reach and readers15K
Всем привет!
В начале апреля я увидел анонс новой видеокарты от nVidia, с новым мажорным индексом compute capability – 3.0. Внимательно изучив спеки был удивлён – по всему выходило, что теперь ветвления будут приводить к самым худшим последствиям: большим потерям производительности. Мне нравилось, что от версии к версии ветвления играют всё меньшую роль, а Kepler показался в этом плане шагом назад. Мозгом я понимал, что такое вряд ли возможно и решил немного выждать.
И вот на этой неделе мне пришёл whitepaper по новой числодробилке на архитектуре Kepler и многое прояснил.
А дальше - чистейший текст и ни одной картинки

Страсть к программировананию. Часть 1. Совет 3. Кодинг ещё не всё

Reading time4 min
Reach and readers60K
Пока есть немножко времени (хотя его, конечно, и нет) продолжаю перевод книги Чеда Фоулера «Страсть к программированию».
PDF как всегда здесь.
< — Спрос и предложение
3. Кодинг ещё не всё

Недостаточно просто думать о тех технологиях, в которые ты собираешься вкладывать своё время. В конце концов, технологические знания — это ещё не готовый продукт. Ты же не считаешь, что сможешь просто сидеть и спокойно совершенствовать свои знания в языке программирования или ОС, пока управленцы берут на себя остальные бизнес-штучки. Если бы им был нужен просто робот-кодер, то проще было бы отдать разработку в аутсорс. Если ты хочешь оставаться нужным, то придётся хорошенько изучить предметную область, в которой работаешь.
Читать дальше →

Страсть к программированию. Часть 1. Совет 2. Спрос и предложение

Reading time5 min
Reach and readers49K
Не прошло и двух месяцев — выкладываю второй раздел первой части книги Чеда Фоулера «Страсть к программированию».
Так же по старой ссылке доступен новый PDF.
< — Начало, веди или умри 3. Кодинг ещё не всё ->
Читать дальше →

Страсть к программированию. Часть 1 (Выбираем рынок). Начало

Reading time6 min
Reach and readers74K
Продолжаю перевод книги Чеда Фоулера «Страсть к программированию». Это первый из разделов первой части, которая посвящена выбору рынка. Так же текущую версию перевода можно теперь скачать и в PDF.
< — Глава 3. Введение Спрос и предложение ->
Читать дальше →

Страсть к программированию

Reading time2 min
Reach and readers75K
На днях дочитал книгу Чеда Фоулера (Chad Fowler) Страсть к программированию (The Passionate Programmer). Сразу скажу, что она мне действительно понравилась и даже меня зажгла. На мой взгляд, данный опус не совсем соответствует своему названию (которое, кстати, уже менялось) и книга вряд ли придаст кому-то реальной страсти к такому интересному занятию как программинг. Однако следуя её советам вполне можно построить эффектную карьеру в любимом деле. Автор указывает на типичные ошибки и показывает, как их избежать. В конце каждого из разделов (а их 53) есть пункт «Действуй!» с описанием того, что можно попробовать и применить прямо здесь и сейчас.
Книга мне настолько понравилась, что я решил начать её переводить. Оригинал можно скачать здесь стоит это удовольствие всего 15$. В среднем буду стараться держать темп — по одному разделу в неделю, со временем доходя до 2-3 разделов. А сегодня — глава первая.
Читать дальше →

Information

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