![Page 1: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/1.jpg)
Архитектура хранения и отдачи фотографий в Badoo
Артем Денисов, Badoo
![Page 2: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/2.jpg)
330 млн. пользователей3 Pb фотографий3,5 млн. новых фотографий в день80 тыс. запросов в секунду за фото
![Page 3: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/3.jpg)
Тривиальный пример
![Page 4: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/4.jpg)
Тривиальный пример
photos1
photos2
photosN
![Page 5: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/5.jpg)
Тривиальный пример
place_id
place_id: 1..5
place_id: 6..11
place_id: m..n
photos1
photos2
photosN
![Page 6: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/6.jpg)
Тривиальный пример: проблемы
![Page 7: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/7.jpg)
Тривиальный пример: проблемы
![Page 8: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/8.jpg)
! Ограниченная вместимость
Тривиальный пример: проблемы
![Page 9: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/9.jpg)
! Ограниченная вместимость! Нетипичная конфигурация машин
Тривиальный пример: проблемы
![Page 10: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/10.jpg)
! Ограниченная вместимость! Нетипичная конфигурация машин! Цена
Тривиальный пример: проблемы
![Page 11: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/11.jpg)
Используем систему хранения данных
bphotos1
bphotos2
bphotosN Storage Area Network (SAN)
![Page 12: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/12.jpg)
! Меньше $/Gb
bphotos1
bphotos2
bphotosN Storage Area Network (SAN)
Используем систему хранения данных
![Page 13: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/13.jpg)
! Меньше $/Gb! Больше плотность размещения
bphotos2
bphotosN Storage Area Network (SAN)
bphotos1
Используем систему хранения данных
![Page 14: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/14.jpg)
! Меньше $/Gb! Больше плотность размещения! Быстрая деградация чтения (>500 rps per host)
bphotos2
bphotosN Storage Area Network (SAN)
bphotos1
Используем систему хранения данных
![Page 15: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/15.jpg)
Характер нагрузки
Чтение преобладает над записью:
7*109 reads / 3.5*106 writes per day
![Page 16: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/16.jpg)
Характер нагрузки
Горячий dataset небольшой
Чтение преобладает над записью:
7*109 reads / 3.5*106 writes per day
![Page 17: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/17.jpg)
Характер нагрузки
Горячий dataset небольшойКажется, нам нужен кэш с LRU
Чтение преобладает над записью:
7*109 reads / 3.5*106 writes per day
![Page 18: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/18.jpg)
Кэшированиеbphotos1
bphotos2
bphotosN Storage Area Network (SAN)
photoscache1
photoscacheN
![Page 19: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/19.jpg)
Структура фотокэша
bphotos
![Page 20: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/20.jpg)
Структура фотокэша
bphotosLocal cache
![Page 21: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/21.jpg)
Структура фотокэша
Local cache
proxy_pass
proxy_store bphotos
![Page 22: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/22.jpg)
Структура фотокэша
Local cache
BufferHot cacheCold cache
proxy_pass
proxy_store bphotos
![Page 23: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/23.jpg)
Структура фотокэша
Local cache
BufferHot cacheCold cache
Access log
<photo_path> <served_by>
proxy_pass
proxy_store bphotos
![Page 24: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/24.jpg)
Структура фотокэша
Local cache
BufferHot cacheCold cache
Access log
<photo_path> <served_by>
proxy_pass
proxy_store bphotos
Cache manager daemon
![Page 25: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/25.jpg)
Структура фотокэша
Local cache
BufferHot cacheCold cache
Access log
<photo_path> <served_by>
proxy_pass
proxy_store bphotos
Cache manager daemonХранит статистику запросов по файлам
![Page 26: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/26.jpg)
Структура фотокэша
Local cache
BufferHot cacheCold cache
Access log
<photo_path> <served_by>
proxy_pass
proxy_store bphotos
Cache manager daemonХранит статистику запросов по файламЧасто запрашиваемые -> Hot cache
![Page 27: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/27.jpg)
Структура фотокэша
Local cache
BufferHot cacheCold cache
Access log
<photo_path> <served_by>
proxy_pass
proxy_store bphotos
Cache manager daemonХранит статистику запросов по файламЧасто запрашиваемые -> Hot cacheРедко запрашиваемые -> Cold cache
![Page 28: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/28.jpg)
Структура фотокэша
Local cache
BufferHot cacheCold cache
Access log
<photo_path> <served_by>
proxy_pass
proxy_store bphotos
Cache manager daemonХранит статистику запросов по файламЧасто запрашиваемые -> Hot cacheРедко запрашиваемые -> Cold cacheПостепенно удаляет из Cold cache
![Page 29: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/29.jpg)
Как распределять запросы?
photoscache2
photoscache1
photoscache3
![Page 30: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/30.jpg)
Как распределять запросы?
Round-robin?
photoscache2
photoscache1
photoscache3
![Page 31: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/31.jpg)
Как распределять запросы?
Round-robin?Hash % count?
photoscache2
photoscache1
photoscache3
![Page 32: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/32.jpg)
Как распределять запросы?
Round-robin?Hash % count?hash(“example_url”) = 5server_idx0 = 5 % 3 = 2photoscache2
photoscache1
photoscache3
![Page 33: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/33.jpg)
Как распределять запросы?
Round-robin?Hash % count?hash(“example_url”) = 5server_idx0 = 5 % 3 = 2server_idx1 = 5 % 4 = 1
![Page 34: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/34.jpg)
Как распределять запросы?
photoscache2
photoscache1
photoscache3
Round-robin?Hash % count?
![Page 35: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/35.jpg)
Как распределять запросы?
Round-robin?Hash % count?Consistent hashing?photoscache2
photoscache1
photoscache3
![Page 36: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/36.jpg)
Consistent hashing0
hash(sharding_key)
![Page 37: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/37.jpg)
Consistent hashing0
hash(sharding_key)
![Page 38: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/38.jpg)
Consistent hashing0
hash(sharding_key)
A
![Page 39: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/39.jpg)
Consistent hashing0
hash(sharding_key)
BA
![Page 40: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/40.jpg)
Consistent hashing0
hash(sharding_key)
BA
C
![Page 41: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/41.jpg)
Consistent hashing0
hash(sharding_key)
BA
C
![Page 42: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/42.jpg)
Consistent hashing0
hash(sharding_key)
BA
C
BA
C
![Page 43: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/43.jpg)
Резервный фотокэшphotoscache1
bphotos
photoscache2
photoscache3
photoscache4(reserve)
Load balancer
![Page 44: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/44.jpg)
Резервный фотокэшphotoscache1
Load balancer
photoscache2
photoscache3
photoscache4(reserve)
bphotos
![Page 45: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/45.jpg)
Кэширование. Результаты- Hitrate (количество попаданий в кэш) 98%- Из 80k только 1600 rps доходят до bphotos
![Page 46: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/46.jpg)
Кэширование. Результаты- Hitrate (количество попаданий в кэш) 98%- Из 80k только 1600 rps доходят до bphotos- 3 точки присутствия (Прага, Майами, Гонконг)
![Page 47: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/47.jpg)
Кэширование. Результаты- Hitrate (количество попаданий в кэш) 98%- Из 80k только 1600 rps доходят до bphotos- 3 точки присутствия (Прага, Майами, Гонконг)
+
- Поддержка webp, progressive jpeg- Динамический resize/crop- Динамические вотермарки, фильтры (blur, pixelize)
![Page 48: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/48.jpg)
Почему не CDN?- Хочется больше контроля и предсказуемости
![Page 49: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/49.jpg)
Почему не CDN?- Хочется больше контроля и предсказуемости- Система развивалась постепенно
![Page 50: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/50.jpg)
Почему не CDN?- Хочется больше контроля и предсказуемости- Система развивалась постепенно- Много специфической логики на фотокэшах
![Page 51: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/51.jpg)
Почему не CDN?- Хочется больше контроля и предсказуемости- Система развивалась постепенно- Много специфической логики на фотокэшах- Невысокая сложность поддержки итогового решения
![Page 52: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/52.jpg)
Почему не CDN?- Хочется больше контроля и предсказуемости- Система развивалась постепенно- Много специфической логики на фотокэшах- Невысокая сложность поддержки итогового решения
Современный CDN — хорошая альтернатива в условиях дефицита ресурсов и времени
![Page 53: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/53.jpg)
Хранение. 2013 годbphotos1
bphotos2
bphotosN Storage Area Network (SAN)
photoscache1
photoscacheN
![Page 54: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/54.jpg)
Хранение. 2013 годbphotos1
bphotos2
bphotosN Storage Area Network (SAN)
photoscache1
photoscacheN
80 x bphotos = ~560Tb данных40 x photoscache
X 2 ДЦ
![Page 55: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/55.jpg)
Хранение. 2013 годbphotos1
bphotos2
bphotosN Storage Area Network (SAN)
photoscache1
photoscacheN
1 x POINT OF FAILURE
![Page 56: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/56.jpg)
Хранение. 2013 годbphotos1
bphotos2
bphotosN Storage Area Network (SAN)
photoscache1
photoscacheN
2 x POINT OF FAILURE
![Page 57: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/57.jpg)
Хранение. 2013 годbphotos1
bphotos2
bphotosN Storage Area Network (SAN)
photoscache1
photoscacheN
3 x POINT OF FAILURE
![Page 58: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/58.jpg)
Хранение. 2013 годbphotos1
bphotos2
bphotosN Storage Area Network (SAN)
photoscache1
photoscacheN
3 x POINT OF FAILURE! MAINTENANCE
![Page 59: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/59.jpg)
Хранение. 2013 годbphotos1
bphotos2
bphotosN Storage Area Network (SAN)
photoscache1
photoscacheN
3 x POINT OF FAILURE ! DATA LOSS! MAINTENANCE
![Page 60: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/60.jpg)
Резервирование v.1
bphotos
Main partitionLocal FS Fiber
Storage Area Network
![Page 61: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/61.jpg)
bphotos
Local FS
Main partition
Backup partitionFiber
Storage Area Network
Fiber
Storage Area Network
Резервирование v.1
![Page 62: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/62.jpg)
Async queue
bphotos
Local FS
Main partition
Backup partitionFiber
Storage Area Network
Fiber
Storage Area Network
Резервирование v.1
![Page 63: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/63.jpg)
Async queue
bphotos
Local FS
Main partition
Backup partitionFiber
Storage Area Network
Fiber
Storage Area NetworkBuffer partition
Резервирование v.1
![Page 64: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/64.jpg)
Async queue
bphotos
Local FS
Main partition
Backup partitionFiber
Storage Area Network
Fiber
Storage Area NetworkBuffer partition
! NO DATA LOSS
Резервирование v.1
![Page 65: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/65.jpg)
Async queue
bphotos
Local FS
Main partition
Backup partitionFiber
Storage Area Network
Fiber
Storage Area NetworkBuffer partition
! NO DATA LOSS! POINT OF FAILURE
Резервирование v.1
![Page 66: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/66.jpg)
Async queue
bphotos
Local FS
Main partition
Backup partitionFiber
Storage Area Network
Fiber
Storage Area NetworkBuffer partition
! NO DATA LOSS! POINT OF FAILURE! MAINTENANCE
Резервирование v.1
![Page 67: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/67.jpg)
Dphotos
Async queue
bphotos
Local FS
Main partition
Backup partitionFiber
Storage Area Network
Fiber
Storage Area NetworkBuffer partition
![Page 68: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/68.jpg)
Dphotos
Async queue
bphotos
Local FS
Main partition
Backup partition
Buffer partition
![Page 69: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/69.jpg)
Dphotos
Async queue
bphotos
Local FS
Main partition
Backup partition
Buffer partition
![Page 70: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/70.jpg)
Dphotos
dphotosN
Buffer partition
Main partition
dphotosN+1
Buffer partition
Main partition
![Page 71: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/71.jpg)
Dphotos
dphotosN
Async queue
Buffer partition
Main partition
dphotosN+1
Buffer partition
Main partition
![Page 72: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/72.jpg)
Dphotos. Upload
Async queue
dphotosN
dphotosN+1Round robin + health checks
Load balancer
![Page 73: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/73.jpg)
Dphotos. Отдача
photoscache
Async queue
dphotosN
dphotosN+1Round robin + health checks
![Page 74: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/74.jpg)
Dphotos. Отдача
photoscache
Async queue
dphotosN
dphotosN+1
HIT
Round robin + health checks
![Page 75: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/75.jpg)
Dphotos. Отдача
Async queue
dphotosN
dphotosN+1
MISS
Round robin + health checks
photoscache
![Page 76: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/76.jpg)
Dphotos. Отдача
Async queue
dphotosN
dphotosN+1
MISS
Round robin + health checks
photoscache
![Page 77: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/77.jpg)
Dphotos. Отказоустойчивость
dphotosN
Async queue
Buffer partition
Main partition
dphotosN+1
Buffer partition
Main partition
![Page 78: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/78.jpg)
Dphotos. Отказоустойчивость
dphotosN
Async queue
Buffer partition
Main partition
dphotosN+1
Buffer partition
Main partition
![Page 79: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/79.jpg)
Dphotos. Отказоустойчивость
dphotosN
Async queue
Buffer partition
Main partition
dphotosN+1
Buffer partition
Main partition
![Page 80: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/80.jpg)
Dphotos. Отказоустойчивость
dphotosN
Async queue
Buffer partition
Main partition
dphotosN+1
Buffer partition
Main partition
![Page 81: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/81.jpg)
Dphotos. Результаты- Отказоустойчивость
![Page 82: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/82.jpg)
Dphotos. Результаты- Отказоустойчивость- Простая эксплуатация
![Page 83: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/83.jpg)
Dphotos. Результаты- Отказоустойчивость- Простая эксплуатация- Двойной запас по чтению
![Page 84: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/84.jpg)
Dphotos. Результаты- Отказоустойчивость- Простая эксплуатация- Двойной запас по чтению- Сложность разработки
![Page 85: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/85.jpg)
Dphotos. Результаты- Отказоустойчивость- Простая эксплуатация- Двойной запас по чтению- Сложность разработки
Так хранить локально — это хорошо или плохо?- Проще в эксплуатации
![Page 86: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/86.jpg)
Dphotos. Результаты- Отказоустойчивость- Простая эксплуатация- Двойной запас по чтению- Сложность разработки
Так хранить локально — это хорошо или плохо?- Проще в эксплуатации- Производительнее
![Page 87: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/87.jpg)
Dphotos. Результаты- Отказоустойчивость- Простая эксплуатация- Двойной запас по чтению- Сложность разработки
Так хранить локально — это хорошо или плохо?- Проще в эксплуатации- Производительнее- В 1.5 раза дороже, чем SAN
![Page 88: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/88.jpg)
Итоги
![Page 89: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/89.jpg)
Итоги
![Page 90: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/90.jpg)
Итоги
photoscache
![Page 91: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/91.jpg)
Итоги
photoscache
CDN
![Page 92: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/92.jpg)
Итоги
photoscache dphotos
CDN Storage layer
![Page 93: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/93.jpg)
Итоги
photoscache dphotos
CDN Storage layer
Local drives
![Page 94: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/94.jpg)
Итоги
photoscache dphotos
Storage Area Network
CDN Storage layer
Local drives
![Page 95: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/95.jpg)
Итоги
- А надо ли улучшать? Сначала измерь
![Page 97: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/97.jpg)
Итоги
- А надо ли улучшать? Сначала измерь http://pinba.org- Чтение -> кэш- Запись -> шардинг
![Page 98: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/98.jpg)
Итоги
- А надо ли улучшать? Сначала измерь http://pinba.org- Чтение -> кэш- Запись -> шардинг- Immutable фотки
![Page 99: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/99.jpg)
Итоги
- А надо ли улучшать? Сначала измерь http://pinba.org- Чтение -> кэш- Запись -> шардинг- Immutable фотки- Resize на лету
![Page 100: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/100.jpg)
Итоги
- А надо ли улучшать? Сначала измерь http://pinba.org- Чтение -> кэш- Запись -> шардинг- Immutable фотки- Resize на лету- Инкрементальные асинхронные бэкапы - это хорошо
![Page 101: Архитектура хранения и отдачи фотографий в Badoo](https://reader035.vdocuments.pub/reader035/viewer/2022062503/58803e351a28abfd0a8b5947/html5/thumbnails/101.jpg)
Итоги
- А надо ли улучшать? Сначала измерь http://pinba.org- Чтение -> кэш- Запись -> шардинг- Immutable фотки- Resize на лету- Инкрементальные асинхронные бэкапы - это хорошо- Если что-то может сломаться - оно сломается