Joint Colloquium Distinguished Lecture Series
Revisiting the Design of Database Systems, Inside and Out
Wednesday, January 30, 2013
Until recently, all commercial relational databases were based on a software architecture and programming interface designed at Berkeley and IBM 1970s and 80s. Recently that has changed.
In this talk, I'll discuss two new important developments in the world of data management on which my research has focused. In the first, I'll describe the design of a new type of "column-oriented" database for so called "analytical workloads" where queries scan and perform aggregation ("reduce") operations over a large fraction of the data. The basic idea, known as "verticalpartitioning," has been used before, but, by building a radically different database architecture around this concept, we showed that it is possible to get order-of-magnitude performance gains over the systems designed in the 70s and 80s. These ideas have since been adopted by most commercial database engines.
One outcome of the early database designs was that they led to a separation between "application logic" and "database logic," with declarative database commands embedded a (typically) imperative host language. In the second part of the talk, I'll describe a new line of work looking at how program analysis techniques can be used to make the boundary between application and database logic much more fluid. Specifically, I'll describe techniques that make it possible to automatically transform the boundary between application logic written in an imperative host language to declarative SQL logic, and programmatically adjust the placement of application logic on a database server or an application server.
|Return to EECS Joint Colloquium|