SlideShare a Scribd company logo
Building 200 Gbit/s
video platform
Vyacheslav
Olhovchenkov
Load profile
• Peak bandwidth 210Gbit/s
• Peak bandwidth per edge 40Gbit/s
• Daily traffic 1PTB
• Views per day 6M
• RPS to ruby app: 1000
• RPD to ruby app: 60M
Core components
• Balancers
• Edge servers
• Video manager
• Encoders
• Storage servers
• Stats server
• Player w/ adv.support: IMA; VPAID,
VAST 2,3
• API
Core components (2)
Request flowchart
Balancer (architecture)
Balancer (features)
• Geo targeting
• Stats
• Edge selection
• Serving player iframe
• Secured manifest transfer
• URL signing
• Advertising module
Balancer (configuration)
• CPU: E3-1270 V2 @ 3.50GHz
• RAM: 8GB
• SSD
• Ubuntu 14.04
• RoR, unicorn
• PostgreSQL, redis
Balancer
• 1000 RPS at peak
• 75% CPU utilization
Balancer (tips & tricks)
• PgSQL => Redis for hot data
• ORM optimization
joins, indexes, pure sql
• Linux/nginx optimization
net.core.somaxconn=65535
net.ipv4.tcp_fin_timeout = 25…
• RoR optimization
worker_processes = 24
timeout = 60
Edge — history. V1.0. 5Gbit/s
• Dual E5-2620@ 2.00GHz
• RAM: 32GB
• 1x10Gbit Intel NIC
• ZMIRROR:
– 12 SATA 3TB
– L2ARC (6SSD 256GB)
• ZFS default settings
Edge (tuning 1)
Reason for multiple writes?
zfs set atime=off tank
8Gbit/s
Edge (tuning 2)
• HDS, HLS: segment size 300-500K
• Too many files
• Prefetch isn’t working
Concatenate segments
Second NIC
12 Gbit/s
HDD performance
total = seek + rotate + transfer
Seek: 9ms (datasheet)
Rotate: 7200rpm, 4.17 ms half turn
Transfer: BlockSize/160MB/s
Total: 13ms + transfer time
128KB: 0.8 ms => 71.4 IOPS, 9.1MB/s
1MB: 6.4ms => 53.8 IOPS, 55MB/s
Edge (tuning 3)
• zfs set recordsize=1M
ZFS larger block support
Matthew Ahrens
• HEAD: r274673
• STABLE: r27608
• vfs.zfs.prefetch_disable=1
• Limited by CPU: 20Gbit/s
Edge — configuration (CPU)
• Xenon E3 vs E5
E3: 32GB RAM Limit
• 40Gbit => 50K clients
• 1MB/client => 50GB buffers
• UP E5 vs DP E5
High end => high price
Less PCIe slots
Edge — configuration (disk)
SATA average transfer:
• 160MB/s linear:
40/(.160*8) = 31 SATA HDD
• 50MB/s random:
40/(.050*8) = 100 SATA HDD
SSD cost:
• x8 expensive $/TB
• x4 less size
Edge — configuration (final)
• CPU: 2x E5-2640v3
8 core @ 2.60GHz)
• RAM: 128GB
• NIC: Chelsio 40Gbit
• HBA: LSI2308 + onboard
• HDD: SATA x18 (storage)
• SSD: 477GB x 8 (cache)
Edge — performance
• 40 Gbit
• 40-50K clients
• 5Mpps
Edge — tips & tricks
• No HT
• Dedicated package for apps
• Dedicated package for NIC
• No NUMA
Warm content
Warm content (2)
Warm content (3)
200Gbit
P2P (WebRTC)
• Streamroot (Fr)
• Hot content: wins 67%
0.
2.25
4.5
6.75
9.
13:00 15:00 17:00 19:00 21:00 23:00
P2P
CDN
P2P Architecture
• Viewer authenticates and initializes the connection with Integros load
balancer
• At the same time, viewer connects to Streamroot tracker and requests peers
• Tracker sends back intelligently-selected list of peers
• A P2P webRTC data channel is created among viewers to exchange
segments
INTEGROS
LOAD
BALANCER
STREAMROOT
TRACKER
PEER POOL
% SERVER
WebRTC
WebRTC
WebRTC
P2P Issues and Current Status
• Issue Aug 2015: Significant traffic offload
followed by partial playback issues
• Reason: Flash-JavaScript interface:
– Javascript based WebRTC module
– Callback is not error resilient
– Fun fact: not documented anywhere in
Flash
• Solution: fixed by tweaking Flash-JS interface
• Next step: HTML5 first (hls.js / Dash.js) to
avoid Flash associated issues
P2P Future
• 80% Offload
• More clients
TODAY 2016
Chrome YES YES
Firefox YES YES
Opera YES YES
Edge BETA YES
Safari NO ?
iOS SDK NO YES
Android SDK NO YES
STBs BETA YES
Links
https://www.youtube.com/watch?
v=tujArcDozq0
(railsclub Ruby Meetup №2)
https://events.yandex.ru/lib/talks/
2694/
(ruBSD2104)
slawa@integros.com

More Related Content

PPTX
HighLoad Solutions On MySQL / Xiaobin Lin (Alibaba)
PDF
Масштабируемая конфигурация Nginx, Игорь Сысоев (Nginx)
PDF
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...
PDF
Tarantool как платформа для микросервисов / Антон Резников, Владимир Перепели...
PDF
Frontera распределенный робот для обхода веба в больших объемах / Александр С...
PDF
Как мы сделали PHP 7 в два раза быстрее PHP 5 / Дмитрий Стогов (Zend Technolo...
PDF
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
ODP
Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...
HighLoad Solutions On MySQL / Xiaobin Lin (Alibaba)
Масштабируемая конфигурация Nginx, Игорь Сысоев (Nginx)
Как понять, что происходит на сервере? / Александр Крижановский (NatSys Lab.,...
Tarantool как платформа для микросервисов / Антон Резников, Владимир Перепели...
Frontera распределенный робот для обхода веба в больших объемах / Александр С...
Как мы сделали PHP 7 в два раза быстрее PHP 5 / Дмитрий Стогов (Zend Technolo...
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...

What's hot (20)

PDF
Couchbase live 2016
PDF
Путь мониторинга 2.0 всё стало другим / Всеволод Поляков (Grammarly)
PDF
OOPs, OOMs, oh my! Containerizing JVM apps
PDF
My talk at Linux Piter 2015
PDF
Peeking into the Black Hole Called PL/PGSQL - the New PL Profiler / Jan Wieck...
PDF
Linux Kernel Extension for Databases / Александр Крижановский (Tempesta Techn...
PDF
Redis ndc2013
PDF
Bringing code to the data: from MySQL to RocksDB for high volume searches
PDF
Kafka Summit SF 2017 - One Day, One Data Hub, 100 Billion Messages: Kafka at ...
PDF
System Capa Planning_DBA oracle edu
PDF
OSv at Usenix ATC 2014
PDF
Tools for Metaspace
PDF
Node.js in production
ODP
Testing Wi-Fi with OSS Tools
PDF
XPDS14 - OSv - A Modern Semi-POSIX LibraryOS - Glauber Costa, Cloudius Systems
PDF
Kvm optimizations
PPTX
Monitoring MySQL with OpenTSDB
PDF
MySQL async message subscription platform
PDF
Redis persistence in practice
PPTX
Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Ca...
Couchbase live 2016
Путь мониторинга 2.0 всё стало другим / Всеволод Поляков (Grammarly)
OOPs, OOMs, oh my! Containerizing JVM apps
My talk at Linux Piter 2015
Peeking into the Black Hole Called PL/PGSQL - the New PL Profiler / Jan Wieck...
Linux Kernel Extension for Databases / Александр Крижановский (Tempesta Techn...
Redis ndc2013
Bringing code to the data: from MySQL to RocksDB for high volume searches
Kafka Summit SF 2017 - One Day, One Data Hub, 100 Billion Messages: Kafka at ...
System Capa Planning_DBA oracle edu
OSv at Usenix ATC 2014
Tools for Metaspace
Node.js in production
Testing Wi-Fi with OSS Tools
XPDS14 - OSv - A Modern Semi-POSIX LibraryOS - Glauber Costa, Cloudius Systems
Kvm optimizations
Monitoring MySQL with OpenTSDB
MySQL async message subscription platform
Redis persistence in practice
Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Ca...
Ad

Viewers also liked (20)

PPTX
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
PPTX
Кадры решают все, или стриминг видео, Александр Тоболь (Одноклассники)
PDF
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
PPTX
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
PDF
Тестирование аварий. Андрей Губа. Highload++ 2015
PPTX
Организация надежного резервного копирования веб-проекта. Практика и подводны...
PDF
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
PPTX
Оптимизация сайта. Диагнозы и курсы лечения / Иван Михеев (AGIMA)
PPTX
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
PPTX
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
PPTX
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
PDF
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...
PPTX
Как устроен поиск / Андрей Аксенов (Sphinx)
PDF
Как мы сделали ровную балансировку нагрузки на фронтенд-кластере / Насретдино...
PDF
Как балансировать на «сетевом» канате под куполом тяжелой нагрузки? / Сергей ...
PDF
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
PDF
Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)
PDF
NoSQL - неспроста ли это ЖЖЖ / Даниил Подольский (inCaller.org)
PPTX
Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)
PDF
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Кадры решают все, или стриминг видео, Александр Тоболь (Одноклассники)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
Тестирование аварий. Андрей Губа. Highload++ 2015
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Оптимизация сайта. Диагнозы и курсы лечения / Иван Михеев (AGIMA)
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...
Как устроен поиск / Андрей Аксенов (Sphinx)
Как мы сделали ровную балансировку нагрузки на фронтенд-кластере / Насретдино...
Как балансировать на «сетевом» канате под куполом тяжелой нагрузки? / Сергей ...
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)
NoSQL - неспроста ли это ЖЖЖ / Даниил Подольский (inCaller.org)
Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Ad

Similar to Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros) (20)

PPTX
Не так страшен терабит / Вячеслав Ольховченков (Integros)
PPTX
Netflix Edge Engineering Open House Presentations - June 9, 2016
PDF
Architecting Low Latency Applications Alberto Gonzalez
PPTX
Architecting your WebRTC application for scalability, Arin Sime
PPT
MWC Barcelona WebRTC Meetup 2015 - Scaling WebRTC with Media Servers
PPTX
Web rtc infrastructure the hard parts v4
PPTX
Introduction to HPC & Supercomputing in AI
PDF
Virtual STB / Cloud UI Streaming revisited
PDF
Putting WebRTC Media in the Cloud
PDF
WebRTC Infrastructure the Hard Parts: Media
PPTX
How to Architect your WebRTC application, Alberto Gonzalez and Arin Sime, Web...
PDF
A Tale of 2 Systems
PDF
PLNOG16: Coping with Growing Demands – Developing the Network to New Bandwidt...
PDF
optimizing_ceph_flash
PDF
Load balancing basics
PDF
Kranky Geek WebRTC 2015 - What's next for WebRTC?
PPTX
Openstack Summit Tokyo 2015 - Building a private cloud to efficiently handle ...
PPT
Beyond the MCU
PPTX
Big Data Analytics from Edge to Core
PDF
Using Kubernetes to make cellular data plans cheaper for 50M users
Не так страшен терабит / Вячеслав Ольховченков (Integros)
Netflix Edge Engineering Open House Presentations - June 9, 2016
Architecting Low Latency Applications Alberto Gonzalez
Architecting your WebRTC application for scalability, Arin Sime
MWC Barcelona WebRTC Meetup 2015 - Scaling WebRTC with Media Servers
Web rtc infrastructure the hard parts v4
Introduction to HPC & Supercomputing in AI
Virtual STB / Cloud UI Streaming revisited
Putting WebRTC Media in the Cloud
WebRTC Infrastructure the Hard Parts: Media
How to Architect your WebRTC application, Alberto Gonzalez and Arin Sime, Web...
A Tale of 2 Systems
PLNOG16: Coping with Growing Demands – Developing the Network to New Bandwidt...
optimizing_ceph_flash
Load balancing basics
Kranky Geek WebRTC 2015 - What's next for WebRTC?
Openstack Summit Tokyo 2015 - Building a private cloud to efficiently handle ...
Beyond the MCU
Big Data Analytics from Edge to Core
Using Kubernetes to make cellular data plans cheaper for 50M users

More from Ontico (20)

PDF
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
PDF
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
PPTX
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
PDF
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
PDF
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
PDF
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
PDF
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
PPTX
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
PPTX
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
PDF
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
PPTX
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
PPTX
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
PDF
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
PPT
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
PPTX
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
PPTX
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
PPTX
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
PPTX
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
PDF
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
PDF
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)

Recently uploaded (20)

PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PPTX
Internet of Things (IOT) - A guide to understanding
PDF
Structs to JSON How Go Powers REST APIs.pdf
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PDF
composite construction of structures.pdf
PPTX
Geodesy 1.pptx...............................................
PPTX
Construction Project Organization Group 2.pptx
PPTX
additive manufacturing of ss316l using mig welding
PDF
PPT on Performance Review to get promotions
PPTX
bas. eng. economics group 4 presentation 1.pptx
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PDF
Well-logging-methods_new................
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PPT
Mechanical Engineering MATERIALS Selection
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
Internet of Things (IOT) - A guide to understanding
Structs to JSON How Go Powers REST APIs.pdf
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
composite construction of structures.pdf
Geodesy 1.pptx...............................................
Construction Project Organization Group 2.pptx
additive manufacturing of ss316l using mig welding
PPT on Performance Review to get promotions
bas. eng. economics group 4 presentation 1.pptx
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
Well-logging-methods_new................
CYBER-CRIMES AND SECURITY A guide to understanding
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
Operating System & Kernel Study Guide-1 - converted.pdf
Mechanical Engineering MATERIALS Selection

Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros)

  • 1. Building 200 Gbit/s video platform Vyacheslav Olhovchenkov
  • 2. Load profile • Peak bandwidth 210Gbit/s • Peak bandwidth per edge 40Gbit/s • Daily traffic 1PTB • Views per day 6M • RPS to ruby app: 1000 • RPD to ruby app: 60M
  • 3. Core components • Balancers • Edge servers • Video manager • Encoders • Storage servers • Stats server • Player w/ adv.support: IMA; VPAID, VAST 2,3 • API
  • 7. Balancer (features) • Geo targeting • Stats • Edge selection • Serving player iframe • Secured manifest transfer • URL signing • Advertising module
  • 8. Balancer (configuration) • CPU: E3-1270 V2 @ 3.50GHz • RAM: 8GB • SSD • Ubuntu 14.04 • RoR, unicorn • PostgreSQL, redis
  • 9. Balancer • 1000 RPS at peak • 75% CPU utilization
  • 10. Balancer (tips & tricks) • PgSQL => Redis for hot data • ORM optimization joins, indexes, pure sql • Linux/nginx optimization net.core.somaxconn=65535 net.ipv4.tcp_fin_timeout = 25… • RoR optimization worker_processes = 24 timeout = 60
  • 11. Edge — history. V1.0. 5Gbit/s • Dual E5-2620@ 2.00GHz • RAM: 32GB • 1x10Gbit Intel NIC • ZMIRROR: – 12 SATA 3TB – L2ARC (6SSD 256GB) • ZFS default settings
  • 12. Edge (tuning 1) Reason for multiple writes? zfs set atime=off tank 8Gbit/s
  • 13. Edge (tuning 2) • HDS, HLS: segment size 300-500K • Too many files • Prefetch isn’t working Concatenate segments Second NIC 12 Gbit/s
  • 14. HDD performance total = seek + rotate + transfer Seek: 9ms (datasheet) Rotate: 7200rpm, 4.17 ms half turn Transfer: BlockSize/160MB/s Total: 13ms + transfer time 128KB: 0.8 ms => 71.4 IOPS, 9.1MB/s 1MB: 6.4ms => 53.8 IOPS, 55MB/s
  • 15. Edge (tuning 3) • zfs set recordsize=1M ZFS larger block support Matthew Ahrens • HEAD: r274673 • STABLE: r27608 • vfs.zfs.prefetch_disable=1 • Limited by CPU: 20Gbit/s
  • 16. Edge — configuration (CPU) • Xenon E3 vs E5 E3: 32GB RAM Limit • 40Gbit => 50K clients • 1MB/client => 50GB buffers • UP E5 vs DP E5 High end => high price Less PCIe slots
  • 17. Edge — configuration (disk) SATA average transfer: • 160MB/s linear: 40/(.160*8) = 31 SATA HDD • 50MB/s random: 40/(.050*8) = 100 SATA HDD SSD cost: • x8 expensive $/TB • x4 less size
  • 18. Edge — configuration (final) • CPU: 2x E5-2640v3 8 core @ 2.60GHz) • RAM: 128GB • NIC: Chelsio 40Gbit • HBA: LSI2308 + onboard • HDD: SATA x18 (storage) • SSD: 477GB x 8 (cache)
  • 19. Edge — performance • 40 Gbit • 40-50K clients • 5Mpps
  • 20. Edge — tips & tricks • No HT • Dedicated package for apps • Dedicated package for NIC • No NUMA
  • 25. P2P (WebRTC) • Streamroot (Fr) • Hot content: wins 67% 0. 2.25 4.5 6.75 9. 13:00 15:00 17:00 19:00 21:00 23:00 P2P CDN
  • 26. P2P Architecture • Viewer authenticates and initializes the connection with Integros load balancer • At the same time, viewer connects to Streamroot tracker and requests peers • Tracker sends back intelligently-selected list of peers • A P2P webRTC data channel is created among viewers to exchange segments INTEGROS LOAD BALANCER STREAMROOT TRACKER PEER POOL % SERVER WebRTC WebRTC WebRTC
  • 27. P2P Issues and Current Status • Issue Aug 2015: Significant traffic offload followed by partial playback issues • Reason: Flash-JavaScript interface: – Javascript based WebRTC module – Callback is not error resilient – Fun fact: not documented anywhere in Flash • Solution: fixed by tweaking Flash-JS interface • Next step: HTML5 first (hls.js / Dash.js) to avoid Flash associated issues
  • 28. P2P Future • 80% Offload • More clients TODAY 2016 Chrome YES YES Firefox YES YES Opera YES YES Edge BETA YES Safari NO ? iOS SDK NO YES Android SDK NO YES STBs BETA YES
  • 29. Links https://www.youtube.com/watch? v=tujArcDozq0 (railsclub Ruby Meetup №2) https://events.yandex.ru/lib/talks/ 2694/ (ruBSD2104) slawa@integros.com