1. Materialized Views of Nested Queries
DBToaster supports efficient materialized views of nested SQL queries. Many commercial database systems support materialized views / incremental view maintenance, but no other system does so for nested SQL queries, even though they are essential for complex analytics.
Nesting refers to the presence of select-statements (SQL queries) in the SELECT, FROM, or WHERE clauses of SQL queries.
2. C++ and Scala code Generation
DBToaster is able to generate both C++ an Scala code that can be integrated into applications written in these languages (as well as Java, since Scala lives in the Java ecosystem and compiles to Java Bytecode that can be linked with Java applications).
3. Feature Roadmap
Milestone | Expected Date | Feature Summary |
---|---|---|
Milestone 1 | Fall 2012 |
|
Milestone 2 | Winter 2012/Spring 2013 |
|
Milestone 3 | Summer 2013 |
|
Milestone 4 | Fall 2013 |
|
3.1. SQL92 Support
DBToaster presently only supports the COUNT, COUNT DISTINCT, SUM, and AVG aggregates. Support for MIN and MAX is slated for Milestone 3.
DBToaster does not presently suport the DISTINCT, UNION, LIMIT, ORDER BY and HAVING clauses of SELECT statements. Support for DISTINCT, UNION, and HAVING is slated for Milestone 1. Support for LIMIT and ORDER BY is slated for Milestone 4.
DBToaster does not presently support SQL's NULL value semantics (including OUTER JOINs). We are investigating several potential solutions, and will commit to a milestone once more research has been performed.
All other unsupported features of SQL92 will be implemented as resources become available, or if there is sufficient demand.
3.2. Scalability
DBToaster's internal aggregate calculus has several properties that make it exteremely ammenable to distribution. We are in the process of implementing a scalable distributed runtime for DBToaster, slated for release as Milestone 2.
3.3. Dynamic Runtimes
We are aware of demand for a platform for executing DBToaster-generated engines, where the query workload can be managed dynamically (i.e., queries can be added/removed at runtime). This feature is slated for release, but at present we do not have the resources to commit to a specific milestone.
3.4. On-Demand Template Execution
A powerful application of DBToaster is for evaluating template-style queries. When an application is compiled, a DBToaster-generated engine could be produced to efficiently support evaluation of one or more queries with externally-bound variables. Presently, a fragment of such queries can be implemented by rewriting the query to include externally bound variables as output columns. We hope to have this feature implemented in an upcoming milestone release