Database-Supported Program Execution

With project Ferry we try to establish a connection between two somewhat distant shores: programming languages and database technology. Ferry explores how far we can push the idea of relational database engines that directly and seamlessly participate in program evaluation to support the super-fast execution of data-intensive programs written in a variety of (general purpose) programming languages. Ferry builds on technology developed in the context of our project Pathfinder.

Database systems as programming language co-processors

Relational database systems provide the best understood and most carefully engineered query processing infrastructure available today. Notwithstanding these data processing capabilities, RDBMSs are often operated as plain stores that do little more than reproduce stored data items for further processing outside the database host. With Ferry, instead, we aim to turn the database system into an efficient, capable, and highly scalable co-processor for your programming language’s runtime:


  • Haskell Boards the Ferry. A Database Coprocessor for Haskell. (IFL 2010, Utrecht University, Sept. 3, 2010). [Slides].


Algebraic Data Types for Language-Integrated Queries

George GiorgidzeTorsten GrustAlexander UlrichJeroen Weijers

Proceedings of the 1st International Workshop on Data Driven Functional Programming (DDFP 2013), Rome, Italy. ACM, January 2013.

A Deep Embedding of Queries into Ruby

Torsten GrustManuel Mayr

Proceedings of the 28th IEEE International Conference on Data Engineering (ICDE 2012), Washington, DC, USA, April 2012.

Haskell Boards the Ferry: Database-Supported Program Execution for Haskell

George GiorgidzeTorsten GrustTom SchreiberJeroen Weijers

Revised selected papers of the 22nd International Symposium on Implementation and Application of Functional Languages (IFL 2010), Alphen aan den Rijn, Netherlands, volume 6647 of Lecture Notes in Computer Science. Springer, 2011.

Avalanche-Safe LINQ Compilation

Torsten GrustJan RittingerTom Schreiber

Proceedings of the VLDB Endowment, Volume 3, September 2010 (VLDB 2010), Singapore, September 2010.

Thirteen New Players in the Team: A Ferry-based LINQ to SQL Provider

Tom Schreiber • Simone Bonetti • Torsten GrustManuel MayrJan Rittinger

Proceedings of the VLDB Endowment, Volume 3, September 2010 (VLDB 2010), Singapore, September 2010.

Ferry: Database-Supported Program Execution

Torsten GrustManuel MayrJan RittingerTom Schreiber

Proceedings of the 28th ACM SIGMOD Int’l Conference on Management of Data (SIGMOD 2009), Providence, Rhode Island (USA), June 2009.