Apache Derby Coding Projects

This page contains a table of useful and hopefully interesting projects that newcomers, Google Summer of Coders, interns, or whoever else is interested can sink their teeth into over a three month period (e.g. a Summer of Coding).

Each project must have at least one mentor and an estimate of the number of people required to complete this over a three month period. It is OK if a project doesn't take a full three months, but we should try to think in terms of three-month increments.

If you are inspired to mentor one of these projects, please add it to http://wiki.apache.org/general/SummerOfCode2009.

For a complete description of t Google Summer of Code program, see http://code.google.com/soc

Project Name


Short Description

Link to Project Page

Team Size

Documentation backend work

There exists a need for improvement to the PDF generation and the overall presentation of our documentation in general.



SQL PSM Support

Proposal to support functions and procedures written in SQL by compiling them to server-side JDBC Java byte code and then executing them using the existing Java routine support. Functionality could then be extended to SQL/PSM with control statements


Lucene Integration

Integrate Lucene text search engine into Derby



Improve Derby XML Support

Currently Derby XML support is fairly limited. This project would be to move Derby towards full XML support



Add support for shared code

Currently it is not possible to safely share code between Derby jar files. This proposal would be to identify and implement a mechanism for sharing code that does not cause issues with compatibility in a mixed version environment

An initial attempt to define the ground rules for this can be found at SharedComponentVersioningGuidelines


Migration tool from MySQL to Derby

Server management tools.

Tools to manage checkpoints/backups, data and log placement, lock monitoring, performance monitoring, etc. Each one of these is its own separate project

More JMX support

Build on top of the foundation introduced in 10.4. Examples: Add monitoring of transaction rate (# of transactions committed/aborted/active), hits/misses in the page cache, locks, etc.

Automatic copying of log from the log directory to an archive

Implement an LRU-based cache manager to replace the current clock algorithm

Derby currently uses a clock algorithm to determine which pages to replace in its page cache. We have indications that this algorithm is far from optimal for some type of loads. Many other database systems use variants of an LRU-based algorithm, i.e. the pages that are least recently used will be candidates for replacement.


Network client Quality Improvements

Kathey Marsden

Derby introduced the network client JDBC driver with its release. There is still important quality work pending to match the robustness of our embedded Driver. This is a great opportunity to learn about JDBC, XA, and DRDA protocol and become active in the Apache Derby development community.



Make dblook work with SQLAuthorization

When SQL authorization (GRANT/REVOKE) was added to Derby, dblook was left behind (DERBY-3954, DERBY-3884). Tackling this will yield insight into Derby's authorization aspects and system tables, while still allowing coding to happen in a smaller codebase (dblook).

http://issues.apache.org/jira/browse/DERBY-3884, http://issues.apache.org/jira/browse/DERBY-3954||1

CodingProjects (last edited 2009-09-20 22:12:16 by localhost)