16
Александр Киракозов, руководитель группы разработки Я.Cубботник в Санкт-Петербурге, 1 декабря 2012 Архитектура загрузчика Яндекс.Диска

Александр Киракозов "Архитектура загрузчика Яндекс.Диска"

  • Upload
    yandex

  • View
    1.489

  • Download
    4

Tags:

Embed Size (px)

DESCRIPTION

Каждый день на Яндекс.Диск заливается более десятка терабайт данных. Из доклада вы узнаете про то, как справиться с такой нагрузкой, и про другие интересные архитектурные особенности сервиса.

Citation preview

Page 1: Александр Киракозов "Архитектура загрузчика Яндекс.Диска"

Александр Киракозов,

руководитель группы разработки

Я.Cубботник в Санкт-Петербурге, 1 декабря 2012

Архитектура загрузчика Яндекс.Диска

Page 2: Александр Киракозов "Архитектура загрузчика Яндекс.Диска"

2

Яндекс.Диск — это...

• Бесплатный сервис для хранения и работы с файлами и

личной информацией пользователя

• Интерфейс для обмена файлами и совместной работы с

ними

• Просмотр офисных документов и прослушивание музыки

• Тесная интеграция с сервисами Яндекса (Почта, Народ)

Page 3: Александр Киракозов "Архитектура загрузчика Яндекс.Диска"

3

Архитектура Яндекс.Диска

Applicationsuploader, downloader,

viewer

Mpfs

WebDAV

Web UI

desktop

Web Users

mobile

что угодно

API API

Почта

Народ

Что угодно

API

API

Page 4: Александр Киракозов "Архитектура загрузчика Яндекс.Диска"

4

Архитектура загрузчика

uploader

mpfs metastorage

webdavweb UI

datastorage

local queue

client

Кодовое название “Кладун”

Page 5: Александр Киракозов "Архитектура загрузчика Яндекс.Диска"

5

Задачи загрузчика

Загрузить файл:

• от пользователя

• с другого сервиса Яндексa

• на другой сервис Яндекса

Page 6: Александр Киракозов "Архитектура загрузчика Яндекс.Диска"

6

Стадии задач

• Загрузить файл локально

• Подсчитать хеш

• Загрузить файл в сторадж

• Отправить статус загрузки в mpfs

• Создать превьюшки

• Проверить на вирусы

• ...

Page 7: Александр Киракозов "Архитектура загрузчика Яндекс.Диска"

7

Состояние стадий

initial

fail

Temp fail

success

In progress

Page 8: Александр Киракозов "Архитектура загрузчика Яндекс.Диска"

8

Настройки стадий

• Время выполнения

• Политики времени выполнения повторов

• Обязательность успешного выполнения

• Максимальное число одинаковых

парралельно выполняющихся стадий

Page 9: Александр Киракозов "Архитектура загрузчика Яндекс.Диска"

9

Дедупликация данных

12% файлов не загружается заново

Page 10: Александр Киракозов "Архитектура загрузчика Яндекс.Диска"

10

Докачка файлов

Только не дисконнект!!!

Page 11: Александр Киракозов "Архитектура загрузчика Яндекс.Диска"

11

Загрузка изменений патчами

Отредактированный файл не будетзаливаться целиком

Page 12: Александр Киракозов "Архитектура загрузчика Яндекс.Диска"

12

Ежедневные загрузки в Мб

Page 13: Александр Киракозов "Архитектура загрузчика Яндекс.Диска"

13

Немного статистики

● каждый день заливается около 3 млн файлов

● уже загрузили 1,5 петабайта данных

Page 14: Александр Киракозов "Архитектура загрузчика Яндекс.Диска"

14

Загрузчик в Яндекс.Видео

использует ту же технологию

Page 15: Александр Киракозов "Архитектура загрузчика Яндекс.Диска"

15

Еще больше интересного про Яндекс.Диск

● «Архитектура сервиса Яндекс.Диск. Замыслы и реальность»,

Владимир Русинов. Минск, 2 июня 2012 года

http://bit.ly/V4V6vG

● «Яндекс.Диск: архитектура, синхронизация и многое другое»,

Владимир Русинов, Алексей Капранов. Москва, 28 июля 2012 года

http://bit.ly/VfFnjz

● API Яндекс.Диска

http://api.yandex.ru/disk/

Page 16: Александр Киракозов "Архитектура загрузчика Яндекс.Диска"

Киракозов Александр

Руководитель группы

разработки

[email protected]

@kirakozov