Thread

Posted on Sat Nov 26 05:14:56 2005 by jcohen
Genezzo 0.52: now with joins...
Genezzo now supports basic joins in the FROM clause, which make it a lot handier.

Genezzo is a pure Perl relational database which supports a subset of SQL and perl DBI. It can run as a small, single-file database, or be easily expanded to spread tables over multiple datafiles. Besides basic SELECT, INSERT, UPDATE, and DELETE, Genezzo also supports b-tree indexes, EXPLAIN PLAN, and simple single-row constraints for primary and unique keys and CHECK constraints. It is completely portable, and has been tested on multiple flavors of Linux, as well as Solaris, Mac OSX, Windows, and BeOS. More information is available on the project homepage.

Genezzo is designed to support easy extensibility via user-supplied external modules. One extreme example of this capability is the Genezzo::Contrib::Clustered project, which converts Genezzo into a clustered database with shared disks.

Jeff
Direct Responses: 1417 | Write a response
Posted on Tue Nov 29 20:10:51 2005 by andrew in response to 1408
Re: Genezzo 0.52: now with joins...
Now that Genezzo officially supports the functions of a relational database, what are the critera for going from Alpha status to Beta status? - Andrew
Direct Responses: 1430 | Write a response
Posted on Thu Dec 1 09:46:26 2005 by jcohen in response to 1417
Re: Genezzo 0.52: now with joins...
Well, we're not going to wait until Genezzo supports all the functions and operators from the SQL standard, because that might take a while. The major missing SQL language features are GROUP BY, ORDER BY, aggregation, and subqueries, and I'd classify them as "nice to have", but not "critical" for beta. Also, capabilities like locking and transactions won't be part of the base product -- we should be able to package them as external modules, similar to the cluster support in Genezzo::Contrib::Clustered. However, beta users should be able to upgrade to locking and transaction support without "undue pain", where "undue pain" is defined as "full export and import of all data", so we want to make sure that the data dictionary, Havok/SysHook external module support, and disk block and row format are sufficiently robust and extensible to support this type of upgrade. The other outstanding issue is space management, which is too simplistic at present. While Genezzo is fine for loads that are dominated by inserts and updates, it uses space inefficiently if you use lots of deletes (eg you tend to delete and re-insert > 50% of your table). Currently, the only recourse is to drop and recreate the table. The planned fixes for this deficiency also requires some dictionary and block format changes, probably sufficient to require an export and import, so I'd like to get these changes in before going beta.

Jeff
Write a response