Thank you a lot for your feedback. I searched a lot about GEQO, but I didn't find information about any earlier attempts. I'm happy to know that this is important for Postgres.
I'm really interested in this project, so I just need to estimate if I can handle it. Now I will spend some time with SAIO and GEQO to find it out. Best, Grzegorz 2015-02-27 16:29 GMT+01:00 Jan Urbański <wulc...@wulczer.org>: > > Josh Berkus writes: > > > On 02/26/2015 05:50 PM, Fabrízio de Royes Mello wrote: > >> > >> On Thu, Feb 26, 2015 at 10:27 PM, Andres Freund <and...@2ndquadrant.com > >> <mailto:and...@2ndquadrant.com>> wrote: > >>> > >>> On 2015-02-26 20:23:33 -0500, Tom Lane wrote: > >>> > > >>> > I seem to recall somebody demo'ing a simulated-annealing GEQO > >> replacement > >>> > at PGCon a couple years back. It never got to the point of being a > >>> > submitted patch though. > >>> > >>> Yea, it was Jan Urbański (CCed). > >>> > >> > >> And the project link: https://github.com/wulczer/saio > > > > So what w'ere saying, Grzegorz, is that we would love to see someone > > pick this up and get it to the point of making it a feature as a GSOC > > project. I think if you can start from where Jan left off, you could > > actually complete it. > > Sorry, late to the party. > > Yes, I wrote a GEQO replacement that used simulated annealing for my Master > thesis. It got to a point where it was generating plans similar to what > GEQO > outputs for small queries and better plans for very large ones. > > The thesis itself is here: https://wulczer.org/saio.pdf and the linked > GitHub > repo contains source for the PGCon presentation, which gives a higher-level > overview. > > The big problem turned out to be writing the step function that generates > a new > join order from a previous one. Look for the "Simulated Annealing > challenges" > and "Moves generator" chapters in my thesis, which are the only interesting > ones :) > > If you'd like to pick up where I left, I'd be more than happy to help in > any > ways I can. > > Best, > Jan >