Calcite's planner engine (or I should say, main planning engine -- there is also the Hep planning engine) was based on the Volcano paper, but we have since incorporated a lot of improvements, including just about all of the improvements in the Cascades paper. These improvements were made independently (I only read the Cascades paper a few months ago) but we were using the planner in serious applications and they just made sense.
On Wed, Jun 17, 2015 at 5:39 PM, wangzhenhua (G) <[email protected]> wrote: > > As far as I know, Calcite's query planner is based upon Volcano, > but I also wonder why Calcite chooses Volcano instead of Cascades, which > is an improvement on Volcano. > > ________________________________ > best regards, > -zhenhua > > From: Liu, Ming (HPIT-GADSC)<mailto:[email protected]> > Date: 2015-06-17 09:18 > To: [email protected]<mailto: > [email protected]> > Subject: RE: beginner in Calcite > > Hello Julian, > > It is very interesting that you point out the Volcano paper, is this means > that Calcite use Volcano framework? > There is Cascades framework after Volcano, so Calcite is not using > Cascades but Volcano? > > I am new to Calcite as well, so hope you can give some high level answer > here and reading source code is last resort for me :-) > > Many thanks, > Ming > > -----Original Message----- > From: Julian Hyde [mailto:[email protected]] > Sent: Wednesday, June 17, 2015 12:01 AM > To: [email protected] > Subject: Re: beginner in Calcite > > The tutorial [1] should help you understand the high level of how a query > is processed and how to write an adapter. > > If you're interested in query optimization in particular, you could read > [2]. This was the starting point of the optimizer (and gave it its name). > Also [3] describes the classes and methods involved in writing a rule (it's > out of date in places, but the concepts still hold). > > Julian > > [1] Calcite tutorial > http://calcite.incubator.apache.org/docs/tutorial.html > > [2] The Volcano Optimizer Generator: Extensibility and Efficient Search, > Goetz Graefe & William J. McKenna 1993 > http://www.seas.upenn.edu/~zives/03s/cis650/P209.PDF > > [3] http://www.hydromatic.net/wiki/HowToWriteNewOptimizerRules > > On Jun 15, 2015, at 8:17 PM, wangzhenhua (G) <[email protected]> > wrote: > > > Hi all, > > > > I'm focusing on query optimization recently, and find it very > challenging. > > I'm very interested in Calcite's query optimizer, since it's open source > and has been integrated in Hive, Drill, etc. > > > > But as a beginner (with basic knowledge in databases), I find it hard to > follow. > > Are there any design documents or papers which may help me understand > the main procedures and data structures in Calcite? > > > > Thank you. > > > > ________________________________ > > best regards, > > -zhenhua > >
