Upload
codefest
View
2.191
Download
6
Embed Size (px)
Citation preview
4
Яндекс.Диск — это сервис, который позволяет хранить файлы и обмениваться ими, а также предоставляет доступ к файлам с любого устройства, подключённого к интернету.
20 млн. зарегистрированных пользователей7 млрд. файлов10 млн. загружаемых в сутки файлов
6
SDK — http://api.yandex.ru/disk/ SDK Яндекс.Диска предназначен для приложений, которые работают с файлами пользователей Яндекс.Диска или хранят на Диске собственные файлы и настройки.
Objective-C — iOS, OS XJava — AndroidC# — Windows, Windows Phone
9
Данные в Диске
Содержимое файловMulca
Внутренняя разработка
Key-value сторадж
Синхронная запись
МетаданныеMongoDB
Структура файловой системы
Файлы и каталоги
История изменений
Данные сервиса
10
MySQL Oracle Своя разработка MongoDB
Автоматическое шардирование - - + +
Документо-ориентированность - - + +
Транзакции + + + -
Встроенные механизмы репликации + + + +
Готово и можно использовать + + - +
11
Кластер MongoDB в Диске
7.5 млрд. объектов7 ТБ данных2 ТБ индексов70 000 rps в базу6 млрд. операций в день
3 реплики, 1 скрытая, 1 арбитр30 шардов
19
Сжатие данных
В коде данные сжимаются библиотекой zlibВ базе хранится в BinDataСокращает объем хранимых данных в 1,5 раза
20
Чтение с реплик
+ снимает нагрузку с master− только некритичные данные
db.collection.find({}, slave_okay=True)
22
Большие выборки
for each in list(db.collection.find({})):unzip(each)
Вопрос на 1 ТБ
Какие проблемы могут возникнуть?
23
Большие выборки processed = 0 count = db.collection.find({}).count() while processed < count:
for each in db.collection.find({}, skip=processed, limit=10000):
processed+=1unzip(each)
24
Инкрементальные обновленияdb.collection.find_one({"_id" : "1234567890”})
db.collection.update({"_id" : "1234567890"}, {"$set" : {"data" : 1048576}})
25
Инкрементальные обновленияdb.collection.update({"_id" : "1234567890"},
{"$inc" : {"data" : 1024}})
26
ПреимуществаПроизводительнаяХорошо документированаУдобная
ОсобенностиНужно мониторитьТребует правильного проектированияПрактика важнее теории
MongoDB