Как общие папки влезли в существующий движок синхронизации Диска

Архитектура и масштабируемость

Архитектурные паттерны
Отказоустойчивость
Распределенные системы
Оптимизация

Программный комитет ещё не принял решения по этому докладу

Целевая аудитория

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

Тезисы

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

C 2011 года в разработке, прошёл путь от разработчика до тимлида в Яндексе, 7 лет преподавал в вузе.

Видео

Другие доклады секции

Архитектура и масштабируемость