Xiang (Jenny) Ren

jenny dot ren at utoronto dot ca

I am a fifth year PhD student in the Department of Electrical and Computer Engineering (ECE) at the University of Toronto. My advisor is 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 performance and failure diagnosis in software systems. My CV is here.


ctFS: Eliminating File Indexing with Contiguous File System on Persistent Memory
Ruibin Li, Xiang Ren, Xu Zhao, Siwei He, Michael Stumm, and Ding Yuan.
To appear in the 20th USENIX Conference on File and Storage Technologies (FAST 22), February 2022, Santa Clara, CA.

An Analysis of Performance Evolution of Linux's Core Operations.
Xiang (Jenny) Ren, Kirk Rodrigues, Luyuan Chen, Camilo Vega, Michael Stumm, and Ding Yuan.
In proceedings of 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.



An analysis of performance evolution of Linux's core operations

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: non-intrusive failure reproduction for distributed systems

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.

Awards & Scholarships


About Me

I'm an airplane nerd and a foodie. In my spare time I love to explore the city.