Hello Derby Community,
my name is Felix Beyer and I´m a student at the Dresden University of
Technology. I´m right before writing my diploma thesis, which inculdes
an extension of Derby. Please give me some feedback to let me know if I
should merge my extensions into a current code branch of Derby.
The core of my topic consists of two major tasks:
First, I want to extend Derby with Explain Table functionality. That
means I want to develop a mechanism to store the generated query plans
in appropriate system tables. In order to do this I will have to examine
current system functions like GetRuntimeStatistics() and the overall
process from parsing to execution of a statement. Further investigations
have to be made to develeop solutions for questions like: Which
information is additionally available and could be aggregated or
derived? Which modifications are necessary to extract this information?
How big is the performance impact during the rising of explain table
information?
The second big task will be to extend Derby to store Workload
information. Investigations have to be made on reasonable aggregation
and mandatory reduction of workload, general scheme of workload
information, support for application domains using this workload
information, comparison to other DBMS etc.
Now, the following question arises: What does the Derby community think
of such extensions? Please give me some feedback. The feedback you
provide will be the basis of the decision if my extensions should be
merged into a current code branch of Derby or will be integrated into
our code branch.
By the way, in a former project I managed to extend Derby to extract the
generated optimized query plans in form of XML files for visualizing
them in an external application. I used the GXL file format for export
and visualized the plans with the JGraph Framework. Internal changes
affected the current Derby structure in two ways: First of all a new
system function was added to toggle query extraction on or off and
second a visitor pattern was used to collect the required information
through a traverse of the query tree after the optimization step.
Greetings,
Felix Beyer