Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

Death by 3,000 Timers - Streaming Video-on-Demand for Cable TV

Gopher Academy via YouTube

Overview

Explore the challenges of delivering video-on-demand MPEG streams to millions of cable TV customers using pure Go in this GopherCon 2019 talk. Delve into Go's capabilities for handling soft real-time applications, examining timer management and goroutine scheduling. Learn about customer experience, delivery methods, constraints, data paths, and hardware platforms. Discover the initial transmitter algorithm, scheduling processes for goroutines and timers, and the Go 1.10 timer optimization. Analyze scheduler observations, packet transmission, and CPU usage. Compare two prototype implementations for stream multiplexing and explore the pros of a novel approach. Gain insights into preparing for production and the improvements in Go 1.14 timers.

Syllabus

Intro
CUSTOMER EXPERIENCE
DELIVERY METHODS
CONSTRAINTS
DATA PATH
HARDWARE PLATFORM
TARGET CAPACITY
PACKET SIZES
SINGLE STREAM PACKET RATES
SINGLE CPU PACKET RATES
INITIAL TRANSMITTER ALGORITHM
CAST OF CHARACTERS
SCHEDULING A NEW GOROUTINE
SCHEDULING MANY GOROUTINES
SCHEDULING TIMERS (GO 1.9)
THE GO 1 10 TIMER OPTIMIZATION
SCHEDULER OBSERVATIONS
FIVE PUMPS ON A SERVER
PACKET TRANSMISSION (TO SCALE)
LOTS OF SLEEPS
LOTS OF CONTEXT SWITCHING TO WAKEUP
LOTS OF CPU FOR NOTHING
LESS CPU FOR THE SAME WORK?
WE PROTOTYPED TWO IMPLEMENTATIONS
STREAM MULTIPLEXING: CONS
CRAZY IDEA: PROS
GETTING PRODUCTION READY
GO 1.14 TIMERS

Taught by

Gopher Academy

Reviews

Start your review of Death by 3,000 Timers - Streaming Video-on-Demand for Cable TV

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.