Spotify Technology S.a. · NYSE:SPOT

Spotify Technology — Technical Presentation (February 2012)

70 slides from Spotify Technology's technical presentation, February 2012

  1. Slide 1: Spotify Distributed Systems

    Spotify Distributed Systems Jon tind @jooon

  2. Slide 2: Who am I?

    Who am I?

  3. Slide 3: Jon Aslund

    Jon Aslund

  4. Slide 4: Slide 4

  5. Slide 5: Computer Science

    Computer Science

  6. Slide 6: gos,

    E> gos, KTH & VETENSKAP S89 OCH KONST && ) 9 Tyce

  7. Slide 7: Shakespeare Programming Language

    Shakespeare Programming Language

  8. Slide 8: Joined Spotify Autumn 2006

    Joined Spotify Autumn 2006

  9. Slide 9: April 2006: the idea

    April 2006 the idea

  10. Slide 10: Slide 10

  11. Slide 11: Slide 11

  12. Slide 12: Music itself is going to become like running water or electricity

    “music itself is going to become like running water or electricity” David Bowie, 2002

  13. Slide 13: Slide 13

  14. Slide 14: Slide 14

  15. Slide 15: Slide 15

  16. Slide 16: Slide 16

  17. Slide 17: February 2012

    February 2012

  18. Slide 18: 10+ million users

    10+ million users (active within previous 30 days)

  19. Slide 19: 15+ million tracks

    15+ million tracks

  20. Slide 20: 500+ million playlists

    500+ million playlists

  21. Slide 21: 1000+ servers

    1000+ servers in 3 countries

  22. Slide 22: Spotify is a distributed system

    Spotify is a distributed system

  23. Slide 23: Fast <200ms

    Fast <200ms

  24. Slide 24: Always working

    Always working

  25. Slide 25: How do you accomplish that?

    How do you accomplish that?

  26. Slide 26: Cheat as much as possible

    Cheat as much as possible

  27. Slide 27: Fast vs Feels fast

    Fast VS Feels fast

  28. Slide 28: Always working vs Pretend there is nothing wrong

    Always working vs Pretend there is nothing wrong

  29. Slide 29: Build to fail

    Build to fail

  30. Slide 30: Redundancy

    Redundancy (talk about waffles)

  31. Slide 31: Error recovery

    Error recovery

  32. Slide 32: Don't forget to test your recovery code

    Don't forget to test your recovery code

  33. Slide 33: Fire drill: Cut the atlantic cable

    Fire drill: Cut the atlantic cable

  34. Slide 34: Netflix Chaos Monkey

    Netflix Chaos Monkey

  35. Slide 35: On January 15, 1990, AT&T's long-distance system crashed

    “On January [5, 1990, AT&T’s long-distance telephone switching system crashed.”

  36. Slide 36: Isolation

    Isolation

  37. Slide 37: Getting the right tool for the job

    Getting the right tool for the job

  38. Slide 38: iler

    — iler SS DELLIStH WE R, Reiki

  39. Slide 39: Metadata, Master Storage

    APe deen enenenenenareeeneneeeeeeresereereeeereeees Metadata Master Storage Spotity Protecot

  40. Slide 40: Consistency, Availability, Partition tolerance

    Consistency Availability Partition tolerance http://ksat.me/a-plain-english-introduction-to-cap-theorem/

  41. Slide 41: Availability, Partition Tolerance

    Availability Partition Tolerance

  42. Slide 42: user

    user

  43. Slide 43: PostgreSQL

    PostgreSQL

  44. Slide 44: Slide 44

  45. Slide 45: search

    search

  46. Slide 46: search: Lucene index in memory

    search Lucene index in memory

  47. Slide 47: search: replaced daily

    search replaced daily

  48. Slide 48: read only

    read only

  49. Slide 49: scales horizontally

    scales horizontally

  50. Slide 50: search: sort of

    search sort of

  51. Slide 51: How do you replace an index in memory?

    search How do you replace an index in memory when you are using all of it?

  52. Slide 52: storage

    storage

  53. Slide 53: storage: number of plays

    storage number of plays 5, David Guerra Long +ail , Fest hos Mange dRraumwohnung

  54. Slide 54: storage: lru cache in nginx

    storage lru cache in nginx

  55. Slide 55: storage: better use of memory with sharding

    storage better use of memory with sharding

  56. Slide 56: Storage

  57. Slide 57: storage: consistent hashing

    storage consistent hashing

  58. Slide 58: playlist

    playlist

  59. Slide 59: playlist: cassandra

    playlist cassandra

  60. Slide 60: playlist: structured key-value store

    playlist structured key-value store

  61. Slide 61: playlist: high throughput

    playlist high throughput

  62. Slide 62: playlist: choose redundancy and consistency level

    playlist choose redundancy and consistency level

  63. Slide 63: playlist: datacentre aware

    playlist datacentre aware

  64. Slide 64: p2p

    p2p

  65. Slide 65: Data source - ratio - by week

    Data source - ratio - by week Weekend Night

  66. Slide 66: thank you

    thank you

  67. Slide 67: Master Thesis?

    Master Thesis?

  68. Slide 68: Yes, please!

    Yes, please!

  69. Slide 69: or come and work for us

    or come and work for us

  70. Slide 70: Oh, and we have cake as well!

    Oh, and we have cake as well! :D spotify.com/jobs

Spotify — Technical Presentation (February 2012) on 6ix