Farrago Project FAQ


We already have MySQL, PostgreSQL, Derby, etc. Why does the world need another open-source DBMS?

Farrago is not an end-user product like these databases, which are focused on specific domains such as transaction processing, where they can already meet the needs of many users. Instead, Farrago provides a generic framework which can be specialized for a variety of DBMS domains such as federated query processing, data warehousing, multimedia, or replication. While it is possible to adapt a project like PostgreSQL for novel uses, significant customization requires permanently forking the codebase, because the architecture wasn't designed for extensibility beyond the type system. By contrast, Farrago has been designed for system-level extensibility via plugins, so the specialization process involves adding new components and behavior instead of replacing existing components with incompatible versions. The Farrago project model is very similar to Eclipse in this respect.

Why would I be interested in Farrago?

If you are a developer interested in creating a product with DBMS capabilities of some kind, using Farrago as a starting point can save you a lot of time. The Farrago architecture spans all of the layers required for a full DBMS, including: API's such as JDBC; SQL query parsing, validation, and optimization; query execution; storage and transaction managment; distributed data; and metadata management. And the implementation is fully component-based, with careful attention paid to dependencies, so that if you only want to reuse a self-contained subset such as storage management or SQL parsing, it's possible to do this without dragging in unrelated layers.

If you are an end user, you're more likely to be interested in a prepackaged distribution customized for a specific use such as data warehousing or metadata federation.


I would like to use Farrago to develop commercial software, but the GPL is a dead end for me. Do you offer dual licensing?

Farrago is being developed under the stewardship of The Eigenbase Project, a California non-profit. We strongly support open-source principles, and we believe that the GPL is the best vehicle for creating and protecting strong communities of software developers and users. So we encourage you to distribute your software under the GPL as well. However, if your organization prohibits development of or integration with GPL software, Eigenbase offers commercial licensing in exchange for significant contributions of code or other resources; contact us for more information.

Why does Farrago require Java?

Farrago's hybrid Java/C++ architecture opens up a number of opportunities not available to traditional DBMS implementations (or much more difficult):

Isn't Java slow? Doesn't that mean Farrago can't possibly compete with systems implemented entirely in C/C++?

Careful attention has been paid to keep Java out of the most important data processing paths. Where Java is used (metadata management, parsing, validation, and optimization, plus a limited role in executing generated code), its performance is acceptable.

What version of the SQL standard does Farrago implement?

We are developing towards SQL:2003.

What's with the name?

See the dictionary. But that's not the whole story.

Why a jackalope for the mascot?

The wily jackalope combines the speed of a jackrabbit with the fluid grace and complex headgear of an antelope, which seems appropriate for a hybrid Java/C++ system. In addition, the jackalope symbolizes a vision of elegance beyond our mundane reality (and is also reputed to be surprisingly savage when cornered).