- About
- Events
- Calendar
- Graduation Information
- Cornell Learning Machines Seminar
- Student Colloquium
- BOOM
- Fall 2024 Colloquium
- Conway-Walker Lecture Series
- Salton 2024 Lecture Series
- Seminars / Lectures
- Big Red Hacks
- Cornell University - High School Programming Contests 2024
- Game Design Initiative
- CSMore: The Rising Sophomore Summer Program in Computer Science
- Explore CS Research
- ACSU Research Night
- Cornell Junior Theorists' Workshop 2024
- People
- Courses
- Research
- Undergraduate
- M Eng
- MS
- PhD
- Admissions
- Current Students
- Computer Science Graduate Office Hours
- Advising Guide for Research Students
- Business Card Policy
- Cornell Tech
- Curricular Practical Training
- A & B Exam Scheduling Guidelines
- Fellowship Opportunities
- Field of Computer Science Ph.D. Student Handbook
- Graduate TA Handbook
- Field A Exam Summary Form
- Graduate School Forms
- Instructor / TA Application
- Ph.D. Requirements
- Ph.D. Student Financial Support
- Special Committee Selection
- Travel Funding Opportunities
- Travel Reimbursement Guide
- The Outside Minor Requirement
- Diversity and Inclusion
- Graduation Information
- CS Graduate Minor
- Outreach Opportunities
- Parental Accommodation Policy
- Special Masters
- Student Spotlights
- Contact PhD Office
Concurrency, the processing of multiple requests simultaneously, is one of the most challenging problems large-scale server applications face in practice. Accordingly, database systems research has long made the case for automatically handling concurrency in the database by guaranteeing serializability. Serializability shields applications from reasoning about concurrency, and allows developers to focus entirely on implementing application logic. Unfortunately, in the 40-plus years since its inception, serializability has not seen wide adoption in practice. This is because weaker guarantees, which expose applications to concurrency and the inevitable bugs that arise, perform significantly better.
In this talk, I will discuss my research on addressing the performance limitations of serializability via deterministic transaction execution. Deterministic transaction execution exploits the fact that a large class of modern server applications do not require the full generality of conventional database transactions. By tailoring transaction execution mechanisms for this class of applications, my research shows that it is possible to achieve serializability with minimal performance overhead. I will first describe a serializable multi-versioning mechanism that decouples conflicting reads and writes, and subsequently outperforms a state-of-the-art implementation of the weaker guarantee of snapshot isolation by over 3x. Next, I will describe piecewise visibility, a concurrency control mechanism that isolates requests at a finer granularity than entire transactions, which consequently permits aggressive serializable transaction interleavings and outperforms the weaker guarantee of read committed by over 3x. Finally, I will discuss ongoing work that applies deterministic transaction execution principles to address replication lag in Facebook’s production MySQL infrastructure.
Bio:
Jose Faleiro is a PhD candidate in computer science at Yale University. His research interests are in data management systems, multi-core systems, and distributed systems. His thesis research investigates the use of deterministic execution to enable scalable and efficient transaction processing on main-memory multi-core database systems. In addition to his academic research at Yale, Jose has worked on large-scale real world systems, including Microsoft’s Orleans cloud programming framework, and Facebook’s production MySQL infrastructure. He is the recipient of the Alan J. Perlis Fellowship at Yale, and a Microsoft Research Tech Transfer Award. He has an undergraduate degree in computer science from the Birla Institute of Technology and Science (BITS), Pilani, India.