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.
