distributed systems in practice in theory
play

Distributed Systems in Practice, in Theory Aysylu Greenberg June - PowerPoint PPT Presentation

Distributed Systems in Practice, in Theory Aysylu Greenberg June 14, 2016 How I got into reading papers as a practitioner in industry Computer Science Research In Distributed Systems Industry Operating systems research Operating systems


  1. Distributed Systems in Practice, in Theory Aysylu Greenberg June 14, 2016

  2. How I got into reading papers as a practitioner in industry

  3. Computer Science Research In Distributed Systems Industry

  4. Operating systems research

  5. Operating systems research

  6. Operating systems research Concurrency

  7. Operating systems research Concurrency Concurrency primitives: mutex & semaphore

  8. Operating systems research Concurrency Processes execute at different speeds Concurrency primitives: mutex & semaphore

  9. Time in distributed systems https://www.flickr.com/photos/national_archives_of_norway/6263353228

  10. Time in distributed systems

  11. Time in distributed systems Pipelining

  12. 1980

  13. 1980

  14. Internet 1980

  15. Internet Distributed consensus 1980

  16. Internet Distributed consensus 1980

  17. Internet Distributed consensus 1980

  18. Internet Distributed consensus Paxos 1980

  19. Reconsider large systems

  20. Reconsider large systems Shared infrastructure ...

  21. CS Research is Timeless Inform decisions Mitigate technical risk

  22. Aysylu Greenberg @aysylu22 * 2 2

  23. Papers We Love NYC

  24. Papers We Love SF

  25. Aysylu Greenberg @aysylu22 * 2 5

  26. Today ● Staged Event-Driven Architecture

  27. Today ● Staged Event-Driven Architecture ● Leases

  28. Today ● Staged Event-Driven Architecture ● Leases ● Inaccurate Computations

  29. Staged Event Driven Architecture & 2001 Deep Pipelines

  30. Hardware to Data Pipelines

  31. Hardware to Data Pipelines https://en.wikipedia.org/wiki/Graphics_pipeline

  32. Staged Event Driven Architecture

  33. Staged Event Driven Architecture + -

  34. Staged Event Driven Architecture Single-machine pipeline generalizes to distributed pipelines

  35. Search Indexing Pipelines

  36. Search Indexing Pipelines

  37. Search Indexing Pipelines

  38. Search Indexing Pipelines

  39. Search Indexing Pipelines

  40. Search Indexing Pipelines

  41. Search Indexing Pipelines

  42. Search Indexing Pipelines

  43. Search Indexing Pipelines - +

  44. Leases as Heart Beat in Distributed 1989 Systems

  45. Leases ● Distributed locking

  46. Leases ● Distributed locking ● Lease term tradeoffs ○ short

  47. Leases ● Distributed locking ● Lease term tradeoffs ○ short vs long

  48. Leases ● Distributed locking ● Lease term tradeoffs ○ short vs long ● Use of leases in modern applications ○ Leader election TTL (in etcd)

  49. Leases ● Distributed locking ● Lease term tradeoffs ○ short vs long ● Use of leases in modern applications ○ Leader election TTL (in etcd) ○ Liveness detection

  50. Leases in Build System: Success Scenario

  51. Build my project Build System

  52. Build my project OK Build System

  53. Build my project OK Waiting for the results Build System

  54. Build my project OK Waiting for the results Build System Build is in progress

  55. Build my project OK Waiting for the results Build System Build is in progress Waiting for the results

  56. Build my project OK Waiting for the results Build System Build is in progress Waiting for the results Build is finished

  57. Leases in Build System: Failure Scenario

  58. Leases in Build System

  59. Leases in Build System

  60. Leases in Build System

  61. Leases in Build System

  62. Leases in Build System

  63. Leases in Build System

  64. Using etcd leases for heartbeat $ curl http://server.com/v2/keys/foo -XPUT -d\ value=bar -d ttl=300

  65. { "action": "set", "node": { "createdIndex": 2, "expiration":"2016-06-14T16:15:00", "key": "/foo", "modifiedIndex": 2, "ttl": 300, "value": "bar" } }

  66. Using etcd leases for heartbeat $ curl http://server.com/v2/keys/foo -XPUT -d \ value=bar -d ttl=300 … 3 minutes later...

  67. Using etcd leases for heartbeat $ curl http://server.com/v2/keys/foo -XPUT -d \ value=bar -d ttl=300 $ curl \ http://server.com/v2/keys/foo?prevValue=bar \ -XPUT -d ttl=300 -d refresh=true -d \ prevExist=true

  68. { "action": "update", "node": { "createdIndex": 2, "expiration":"2016-06-14T16:18:00", "key": "/foo", "modifiedIndex": 3, "ttl": 300, "value": "bar" } "prevNode": {...} }

  69. { "action": "update", "node": { "prevNode": { "createdIndex": 2, "createdIndex": 2, "expiration":"2016-06-14T16:18:00", "expiration":"2016-06-14T16:15:00", "key": "/foo", "key": "/foo", "modifiedIndex": 3, "modifiedIndex": 2, "ttl": 300, "ttl": 120, "value": "bar" "value": "bar" } } "prevNode": {...} }

  70. Leases for heartbeat: How long should the lease term be?

  71. Inaccurate Computations & Serving Search Results

  72. From Accurate to "Good Enough"

  73. [Trade off] Inaccuracy for Performance

  74. [Trade off] Inaccuracy for Resilience

  75. Reduce Map Map Map Input Input Input

  76. Inaccuracy for Resilience 1. Task decomposition

  77. Inaccuracy for Resilience 1. Task decomposition 2. Baseline for correctness

  78. Inaccuracy for Resilience 1. Task decomposition 2. Baseline for correctness 3. Criticality Testing

  79. Inaccuracy for Resilience 1. Task decomposition 2. Baseline for correctness 3. Criticality Testing 4. Distortion and timing models

  80. Distortion Model

  81. Timing Model

  82. [In production] Inaccuracy for Performance & Resilience

  83. Jeff Dean "Building Software Systems at Google and Lessons Learned", Stanford, 2010

Recommend


More recommend