jenny dot ren at utoronto dot ca
I am a second year PhD student in the Department of Electrical and Computer Engineering (ECE) at the University of Toronto. My advisor is Prof. Ding Yuan. I received my M.A.Sc (March 2018) and B.A.Sc. (June 2015) with Honours from the same department. My research interests include failure diagnosis and performance in software systems. My CV is here.
An Analysis of Performance Evolution of Linux's Core Operations.
Xiang Ren, Kirk Rodrigues, Luyuan Chen, Camilo Vega, Michael Stumm, and Ding Yuan.
To appear in the 27th ACM Symposium on Operating Systems Principles (SOSP’19), October 2019, Huntsville, Ontario, Canada.
Pensieve: Non-Intrusive Failure Reproduction for Distributed Systems Using the Event Chaining Approach.
Yongle Zhang, Serguei Makarov, Xiang Ren, David Lion, and Ding Yuan.
In proceedings of the 26th ACM Symposium on Operating Systems Principles (SOSP’17), October 2017, Shanghai, China.
In this study, we evaluate the performance trend of Linux’s core operations over the past 7 years, using a benchmark constructed out of 5 popular real-world workloads. Our study finds that the performance of many core operations has worsened or fluctuated significantly over the years. We further identify 11 root causes responsible for most of the slowdowns, they include new features, security enhancements, and mis-configurations. By disabling these root causes, we speed up Redis, Apache, and Nginx benchmark workloads by as much as 56%, 33% and 34%, respectively.
Pensieve is capable of automatically reconstructing near-minimal failure reproduction steps from runtime logs and application binary. Because Pensieve does not reconstruct the entire execution, it avoids the path-explosion problems plaguing existing solutions like symbolic execution; Instead, Pensieve applies the Partial Trace Observation inspired by the way human developers diagnose failures - it follows causally dependent control and data dependencies most likely relevant to the failure to reconstruct a simplified execution trace. Pensieve can reproduce 72% of the randomly sampled real-world failures within 10 minutes of analysis time.
lprof automatically reconstructs the execution flow of requests in distributed applications, using only the runtime logs and application binary as input - it does not modify the source code. Through static analysis of the application binary, lprof infers how to parse the logs entries; lprof also performs static analysis to identify unique request identifiers, which are used to stitch together dispersed and intertwined log entries that belong to one request. lprof achieves a 90% precision in request extraction and is helpful in diagnosing 65% of the sampled real-world performance anomalies.