- Affiliate Professor at University of Washington, where I occasionally teach CSEP 545 Transaction Processing.
- Member of the National Academy of Engineering. Member of the Board of Directors of Washington State Academy of Sciences.
- Editorial Board member: Information Systems, Springer Data-Centric Systems and Applications.
- Recent conference program committees: SIGMOD 2018 (PC Chair), SIGMOD 2017, SIGMOD 2016, HPTS 2015 (PC Chair), VLDB 2015, SIGMOD 2014, SIGMOD 2013, ICDE 2013, CIDR 2013, SIGMOD 2012, VLDB 2012 E&A
- Advisory Boards: Computing Research Association (CRA): Finance Committee; Symposium on Cloud Computing
- Awards: Fellow of the ACM and the AAAS; SIGMOD Edgar F. Codd Innovations Award.
- Emeritus: The VLDB Journal, Editor-in-Chief; University of Washington, Tacoma Institute of Technology Technical Advisory Board member; Computing Research Association (CRA): Treasurer, Member of the Board of Directors; Member of the Board on Mathematical Sciences and Applications (The National Academies); Journal of Web Semantics Editorial Board Member., OMICS – A Journal of Integrative Biology Editorial Board Member, PVLDB Advisory Board; SIGMOD Advisory Board, World Wide Web: Internet and Web Information Systems
I am a member of the Data Management, Exploration and Mining group in Microsoft Research Redmond. I work on various aspects database systems, mostly related to data integration and transaction processing.
Currently, I’m working on a distributed systems programming framework, called Orleans, which was released as open source in January, 2015 and is widely used inside and outside Microsoft. I gave a keynote about it at DISC 2014; slides are posted here. In the last few years, I’ve worked on projects to enrich Orleans to be an “actor-oriented database system” by adding indexing (CIDR 2017), geo-distribution (OOPSLA 2017), and transactions (technical report)—all of which have been or are being released.
My early research was primarily on transaction processing and, after a long hiatus, I resumed working in this area in 2006 as a co-designer of the database engine for SQL Azure. I then focused on building Hyder, a prototype transactional indexed-record manager that scales out without partitioning, partly in collaboration with Sudipto Das. Recently, Sudipto and I surveyed techniques for multi-master replication (SIGMOD 2013). I have also published two books on transaction processing:
Principles of Transaction Processing (2nd edition), coauthored with Eric Newcomer, was published in June 2009 by Morgan-Kauffman Publishers, a division of Elsevier. Translated into Chinese, Japanese, and Korean.
Concurrency Control and Recovery in Database Systems, coauthored with Vassos Hadzilacos and Nathan Goodman, is downloadable for free from here.
I also work on data integration problems. From 2000 – 2011 I led the Model Management Project, whose goal was to make database systems easier to use for model-driven applications, such as design tools, message translators, and database translators. I also worked on object-to-relational mapping, especially in support of the ADO.NET Entity Framework. Over the years, this work has been done in close collaboration with Sergey Melnik (now at Google), James Terwilliger (Microsoft), Eli Cortez (Microsoft), Suad Alagic, Alon Halevy (Google), Jayant Madhavan (Google), René Miller (Univ. of Toronto), Peter Mork (Noblis), Rachel Pottinger (Univ. of British Columbia), Christoph Quix (Technical Univ. of Aachen), Erhard Rahm (Univ. of Leipzig), Adi Unnithan (Microsoft), and many great interns.
I’ve published many research papers on transaction processing, data integration, and other aspects of database management. You can find a nearly-complete list at the DBLP Computer Science Bibliography.
Concurrency Control and Recovery in Database Systems
Philip A. Bernstein, Vassos Hadzilacos, Nathan Goodman
This page offers a free download of the above book in PDF file format. You can read or print it using Adobe’s Acrobat Reader, subject to the restrictions on the copyright page, which is the second page of the Preface.
The easy way to obtain the book is to download the zipfile of the entire book from here (22.9 MB). Then tell Winzip to extract it to a folder. The Contents.pdf file in the root folder offers conveneint access to the rest of the book, and the page numbers in the Index are linked to the proper pages. If you take this route, you can ignore the other directions below.
Download Individual Book Sections
If you have a low bandwidth connection, you can download individual pieces and assemble them on your computer. This requires more work, since to operate properly, you must place the .PDF and index files (used for linking between files) in the proper organizational hierarchy on your computer. The proper hierarchy is as follows:
- Root Level
- Images folder
- Index Folder (expand all subfolders under Index here)
- appendix.pdf, biblio.pdf, Chapters 1-8.pdf, glossary.pdf, index.log, index.pdf, index.pdx, and preface.pdf
Below are all the files, which you can download one by one. All of these files are governed by the copyright notice in the preface.
Zip file of the index folder (520 KB)
contents.pdf (115 KB)
index.pdf (986 KB)
preface.pdf (575 KB)
chapter1.pdf (1.68 MB)
chapter2.pdf (1.31 MB)
chapter3.pdf (4.6 MB)
chapter4.pdf (2.25 MB)
chapter5.pdf (1.75 MB)
chapter6.pdf (3.67 MB)
chapter7.pdf (3.36 MB)
chapter8.pdf (3.47 MB)
appendix.pdf (295 KB)
glossary.pdf (1.27 MB)
bibliography.pdf (1.84 MB)