Database Group Projects
Trill is a high-performance in-memory incremental analytics engine. It can handle both real-time and offline data, and is based on a temporal data and query model. Trill can be used as a streaming engine, a lightweight in-memory relational engine, and as a progressive query processor (for early query results on partial data).
- Column store technology
Column store technology can provide very substantial performance improvements on data warehousing workloads. This project investigated how to integrate columnar storage into SQL Server. The solution adopted was to add a new index type, columnstore index, that stores data column wise instead of row wise. Columnstore indexes first shipped in SQL Server 2012, significant enhancements were added in SQL Server 2014, and further improvements will be included in the next release.
- Main-Memory Databases
Current database systems were designed assuming that data resides on disk. This assumption is no longer valid; main memories have become sufficiently large that most OLTP databases can reside entirely in memory. In this project we investigate what architectural changes and new techniques are required to realize the potential for great performance improvements offered by storing data in main memory.
- Cipherbase = Encrypt(Database)
One of the barriers to adoption cloud database technologies such as SQL Azure is data security and privacy. Data is a valuable asset to most organizations and storing the data in the cloud is often perceived as a security risk. This project investigates encryption as a mechanism to address such data security concerns. In particular, the goal of the project is to research, design, and build a comprehensive database system that supports encryption as a first class citizen.
- Big Data
Businesses today operate on the monitor-mine-manage (M3) cycle: they monitor and archive large amounts of data, which they mine to derive insights such as models. The models are used during the manage phase to add value to the business, e.g., by scoring the models with real-time data. This project looks at the broad area of platforms and applications for big data analytics, from a database-oriented perspective, in the context of achieving a frictionless M3 cycle.
The streams research project proposes novel architectures, processing techniques, models, and applications to support time-oriented queries over temporal and real-time data streams. This research shipped in 2010 as Microsoft StreamInsight - a commercial stream processing system that is part of SQL Server. Our currect focus areas include scale-out, high-availability, query optimization, and new platforms for stream processing.
- Database Security and Compliance
Much of the sensitive data in any organization is stored in a database system. There is a natural need to manage the security of the sensitive information. Our goal in this project is to develop tools to manage database security.
Traditionally, a DBMS kernel has recovery, concurrency control and access method code tightly bound together. We factor the kernel into a transactional component (TC) that knows about transactions and their “logical” concurrency control and undo/redo recovery, and a data component (DC) that knows about the access methods and supports a record oriented interface with atomic operations. The interaction of the components is governed by a contract or covenant.
- Phoenix Application Recovery
The Phoenix goal is to improve application availability and error handling robustness. The project exploits database recovery techniques for enabling applications to survive system crashes. Two prototype systems have been built. Phoenix/ODBC provides persistent database sessions across database system failures. Phoenix/App provides persistent middle-tier applications across application server failures.
- Immortal DB
The Immortal DB project began in the fall of 2002. This project's goal is to provide the infrastructure for saving and indexing all prior states of a database. Foundational work for this effort has been published: on indexing versions, and on choosing timestamps. We have built a prototype system that includes indexing, version compression, and bad user transaction recovery. A major goal has been to provide performance close to that of an unversioned database.