Hi,

2012/1/12 Thomas Mueller <[email protected]>

> Hi,
>
> As for tuning, see
> http://h2database.com/html/performance.html#database_performance_tuning -
> this is roughly the same level of information as the Derby documentation
> (if not please tell me).
>
>
Well, there's important informations in this documentation (I had seen
before). However, I think some important points are missing in the
documentation, for example, h2 make some internal changes like: Clousure
transitive, and so on. But this isn't cited. I think there's another
tranformations on queries with left/right  join, but I have not studied
this yet. Of course this is my personal opinion, as a researcher, this
informations are important to me.


> > And the join selectivity, I found nothing in the code about it. There is
> a
> > mechanism (plans) to address this?
>
> Do you want application developer documentation, or documentation of the
> H2 source code?
>

Yes I would like contribute with documentation, not only with doc, but with
patchs too, I really liked the database. At the moment I'm  doing my PHD,
and working as Systems Analist. So, I have to share my time between this
two tasks, and my family...;). During my research I'll try contribute. I'm
bothering you with questions about the implementation because I need this
information to the research.

Just for confirmation, and still on the join selectivity, is there any
treatment in this on code? I think this is a important information for the
join ordering problem. Derby talks about this
here<http://db.apache.org/derby/docs/10.8/tuning/tuning-single.html#ctunstats849251>,
and Postgres 
here<http://www.postgresql.org/docs/9.0/static/row-estimation-examples.html>
.


> > I think the algorithm isn't a genetic optimizer. The genetic algorithms
> are
> > described in the literature as optimizers based in the Darwin's theory
> with
> > features like: selection, crossover, mutaion and so on. The Genetic
> > algorithm of H2 seems to me like a random walk in the search space. The
> > algorithm could be thought of as part of a genetic algorithm,
> specifically
> > mutation operator.
>
> As far as I know, the term "genetic" doesn't imply it's using crossover.
> It can, but it doesn't have to.
>
>
I said not only the crossover operator, but it's really strange have not
the crossover, . To be more specific, genetic algorithms belongs to the
evolutionary algorithms class, there are another algorithms: differential
evolution, swarm particle optimization and so on. This type of algorithm,
works with many points in the solution space (individual with a
representation like a array of TableFilter), and the operators (selection,
reprodution and so on)  are applied in the individuals to generate new
offsprings during a number of generations. Just the fact that the algorithm
works with only one solution to invalidate the designation of the genetic
algorithm. Well, if you have time and interest, are some papers interesting:

1 - Genetic Algorithms in Search, Optimization and Machine Learning (David
E. Goldberg): A reference book;
2 - Optimization of Large Join Queries (Arun Swami, Anoop Gupta): This
paper present many strategies to solve the join ordering problem, including
the random walk;
3 - Genetic Algorithms for Large Join Query Optimization(Hongbin Dong,
Yiwen Liang): This is a specific genetic algorithm to solve the join
ordering problem (I readed and liked).

The Postgres has a genetic query optimizer, they treat the problem as the
travelling salesman problem. They don't use mutation operator (it's
difficult to implement the operator because of problem's nature), the
selection is totally elitist and they have many strategies for the
crossover operator, but currently, they use strategy based on edge
recombination ERX.

For clarification, in no time I criticized the project, on the contrary, I
want to help. About the planner, what are your priorities, to I can
contribute to project?

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en.

Reply via email to