mystery machine overview
TRANSCRIPT
![Page 2: Mystery Machine Overview](https://reader034.vdocuments.us/reader034/viewer/2022051520/58832b6c1a28abe2758b76db/html5/thumbnails/2.jpg)
Why❖ Need to debug and optimize applications
❖ Complex, heterogenous systems
❖ Different parts written in different languages
❖ Different communicative channels
❖ Different execution environments
❖ Even if individual components are optimized - the whole system might not work optimally
![Page 3: Mystery Machine Overview](https://reader034.vdocuments.us/reader034/viewer/2022051520/58832b6c1a28abe2758b76db/html5/thumbnails/3.jpg)
What
❖ They develop performance analysis tools
❖ They apply it to their pipeline
❖ They measure end-to-end performance:
❖ from the point of initiating a page load
❖ to the point when browser finishes rendering
![Page 4: Mystery Machine Overview](https://reader034.vdocuments.us/reader034/viewer/2022051520/58832b6c1a28abe2758b76db/html5/thumbnails/4.jpg)
Why not
❖ All current approaches assume you instrument your code, specify relations, etc
❖ Usually you don’t have time or ability
❖ Large systems are developed by large teams
❖ Adding instrumentation retroactively is a Herculean task
![Page 5: Mystery Machine Overview](https://reader034.vdocuments.us/reader034/viewer/2022051520/58832b6c1a28abe2758b76db/html5/thumbnails/5.jpg)
Overview❖ They generate a model via large scale reasoning of logs
❖ They can confirm relationships
❖ They need only (requestId, hostId, hostTS, eventId) in each log message
❖ UberTrace gathers all the log to one point
❖ MysteryMachine conducts causality model from that traces
❖ MysteryMachine performs analyses: identifying critical paths, slack analysis, outlier detection
![Page 6: Mystery Machine Overview](https://reader034.vdocuments.us/reader034/viewer/2022051520/58832b6c1a28abe2758b76db/html5/thumbnails/6.jpg)
UberTrace: why
❖ No tools to analyze inter-process optimality
❖ They need to have a single end-to-end performance tracing tool for all logs
![Page 7: Mystery Machine Overview](https://reader034.vdocuments.us/reader034/viewer/2022051520/58832b6c1a28abe2758b76db/html5/thumbnails/7.jpg)
UberTrace: requirements❖ Each log message should contain
❖ Unique request id
❖ Computer id (server node / client laptop)
❖ Timestamp (local clock)
❖ Event name (e.g. “start DOM arendering”)
❖ Task name (<Event,Task> should be unique)
❖ Propagate decision about logging particular request
![Page 8: Mystery Machine Overview](https://reader034.vdocuments.us/reader034/viewer/2022051520/58832b6c1a28abe2758b76db/html5/thumbnails/8.jpg)
UberTrace
❖ TS are from local clocks -> translated to global clock
❖ Execution time = Latest TS - Earliest TS
❖ RTT = Es - Ec
❖ Clock skew = 1/2 RTT
❖ Multiple observation, choose minimal one
![Page 9: Mystery Machine Overview](https://reader034.vdocuments.us/reader034/viewer/2022051520/58832b6c1a28abe2758b76db/html5/thumbnails/9.jpg)
Mystery Machine: casual model
❖ Split all logs into segments(two consecutive events for the same task)
❖ Create a casual model
❖ They validated this model for client-side js library (42 and 84 segments -> 2583 and 10458 casual relationships)
![Page 10: Mystery Machine Overview](https://reader034.vdocuments.us/reader034/viewer/2022051520/58832b6c1a28abe2758b76db/html5/thumbnails/10.jpg)
Mystery Machine: casual model
![Page 11: Mystery Machine Overview](https://reader034.vdocuments.us/reader034/viewer/2022051520/58832b6c1a28abe2758b76db/html5/thumbnails/11.jpg)
Mystery Machine: casual model
![Page 12: Mystery Machine Overview](https://reader034.vdocuments.us/reader034/viewer/2022051520/58832b6c1a28abe2758b76db/html5/thumbnails/12.jpg)
Mystery Machine: casual model
![Page 13: Mystery Machine Overview](https://reader034.vdocuments.us/reader034/viewer/2022051520/58832b6c1a28abe2758b76db/html5/thumbnails/13.jpg)
Mystery Machine: critical pathCritical path - set of segments for which a differential increase in segments execution time
would result in the same differential increase in the end-to-end latency
![Page 14: Mystery Machine Overview](https://reader034.vdocuments.us/reader034/viewer/2022051520/58832b6c1a28abe2758b76db/html5/thumbnails/14.jpg)
Mystery Machine: critical path
![Page 15: Mystery Machine Overview](https://reader034.vdocuments.us/reader034/viewer/2022051520/58832b6c1a28abe2758b76db/html5/thumbnails/15.jpg)
Mystery Machine: slack
Slack - the amount by which the duration of a segment may increase without increasing the end-to-end latency of the request
![Page 16: Mystery Machine Overview](https://reader034.vdocuments.us/reader034/viewer/2022051520/58832b6c1a28abe2758b76db/html5/thumbnails/16.jpg)
Mystery Machine: slack validation
![Page 17: Mystery Machine Overview](https://reader034.vdocuments.us/reader034/viewer/2022051520/58832b6c1a28abe2758b76db/html5/thumbnails/17.jpg)
Mystery Machine: slack analyses usage
![Page 18: Mystery Machine Overview](https://reader034.vdocuments.us/reader034/viewer/2022051520/58832b6c1a28abe2758b76db/html5/thumbnails/18.jpg)
Links
❖ Video: https://www.usenix.org/node/186168
❖ Slides: https://www.usenix.org/sites/default/files/conference/protected-files/osdi14_slides_chow.pdf
❖ Paper: https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-chow.pdf