Erlang for video delivery

  • 649 views
Uploaded on

How Erlang is ideally suited for high volume and low latency systems like video on demand.

How Erlang is ideally suited for high volume and low latency systems like video on demand.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
649
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
10
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Erlang for video delivery platformsFriday, October 19, 12
  • 2. About me Worked for Delta, Bellsouth, Sun Microsystems, Weather Channel Love realtime, high volume systems Sr. Director Engineering Ericsson N2 Broadband -> Tandberg TV -> Ericsson hwatkins @ githubFriday, October 19, 12
  • 3. Media Delivery Management System Erlang (of course!) Realtime processing Protocol specific pieces Ruby on Rails Front end and some API’sFriday, October 19, 12
  • 4. Media Delivery Management System MongoDB Persistence layer Geo redundant RabbitMQ (AMQP) Messaging BusFriday, October 19, 12
  • 5. VOD ecosystemFriday, October 19, 12
  • 6. Async processingFriday, October 19, 12
  • 7. Sync to AsyncFriday, October 19, 12
  • 8. Dynamic Routing Ability to add components on the fly Apply components to different profiles In harmony with multiple VM’sFriday, October 19, 12
  • 9. Competing ConsumerFriday, October 19, 12
  • 10. Clients HTTP DSM-CC ISO/IEC 13818-6Friday, October 19, 12
  • 11. Java binary protocol Class per section Lots of code Lots of objects Lots of GCFriday, October 19, 12
  • 12. Binary DataFriday, October 19, 12
  • 13. Pattern MatchingFriday, October 19, 12
  • 14. Memory Management Java Shared memory with reference count Erlang per thread heap single assignmentFriday, October 19, 12
  • 15. Memory Footprint Identical functionality developed in Java and Erlang AMQP workers and connected to MongoDB Java averaged 1 GB memory Erlang averaged 200 MB memoryFriday, October 19, 12
  • 16. Threading Model Threading is ideal for things like http requests Java Threads heavyweight - thread pools Erlang Lightweight - spawn on demand Think linearFriday, October 19, 12
  • 17. Clustering Java Memory - Terracotta Erlang Built in netadm:ping Mnesia - disk or memoryFriday, October 19, 12
  • 18. Runtime Debugging REPL (Read-Eval-Print-Loop) Cookie Remote Shell Issue commandsFriday, October 19, 12
  • 19. OTP Built for the real world - Use it! application, gen_server and supervisor Use alot! gen_fsm and gen_event Not as much but still usefulFriday, October 19, 12
  • 20. OTP Custom BehaviorFriday, October 19, 12
  • 21. Packaging reltool rebar generate start, stop, console, attach runtime vm and libraries small ~29M releaseFriday, October 19, 12
  • 22. Useful LibrariesFriday, October 19, 12
  • 23. Rebar De facto build system Wrap in simple makefile for ease Make dependancies easy to manageFriday, October 19, 12
  • 24. folsom Github boundary/ folsom Metrics and counters during runtime Expose through mochiwebFriday, October 19, 12
  • 25. Others Mochiweb - Web Server Webmachine - RestFriday, October 19, 12