Death by 3,000 Timers - Streaming Video-on-Demand for Cable TV
Offered By: Gopher Academy via YouTube
Course Description
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
Related Courses
A Holistic Go ExperienceGopher Academy via YouTube Safe, Fast, and Easy - Building a Plugin System with WebAssembly
Gopher Academy via YouTube A Journey Through Integration Testing with Go - What Could Go Wrong?
Gopher Academy via YouTube Kraken Wrangling for Dummies - Go Module Dependency Management at Scale
Gopher Academy via YouTube Go, the Data Engineer's Missing Tool?
Gopher Academy via YouTube