Обновить
59
0
Андрей@KoppeKTop

Пользователь

Отправить сообщение

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

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели8.6K

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

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

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

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

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

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

Время на прочтение9 мин
Охват и читатели17K

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

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

Читать далее

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

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

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

Время на прочтение4 мин
Охват и читатели60K
Пока есть немножко времени (хотя его, конечно, и нет) продолжаю перевод книги Чеда Фоулера «Страсть к программированию».
PDF как всегда здесь.
< — Спрос и предложение
3. Кодинг ещё не всё

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

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

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

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

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

Страсть к программированию. Глава 2. Благодарности

Время на прочтение3 мин
Охват и читатели40K
С небольшим опозданием от плана, продолжаю переводить книгу Чеда Фоулера «Страсть к программированию».

< — Глава 1 Глава 3 ->
Читать дальше →

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

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

Информация

В рейтинге
Не участвует
Откуда
Россия
Работает в
Дата рождения
Зарегистрирован
Активность