Hi,

I'm trying to understand some links in the architecture, and thinking whether some of the work we've done can be contributed in any way (it's on fast "scan" operators: you're actually referencing to it under "NoDB" in your wiki on research/academic papers). But first we'd need to understand how the various Drill pieces fit together.

I understand this is an open project, and given stable APIs, we can have many implementations of any given part. But let's assume I'd like to implement a storage engine plus some scan/filter operator. There's the reference interpreter, which does the runtime execution and has its own reference operators. The goal there is not performance but just to demonstrate/prove functionality. But how do you see that moving forward? I've read about references early on about code generation & other runtime executors; is there any one already working on those already, or is it still far too early? Would that be done by effectively "replicating" all the functionality currently being built in the reference interpreter, or are there plans to take parts of that out & reuse? i.e. are there plans for some common plan interpreter stuff?

Regarding the linking with Optiq: I understand that's work in progress, but it's not quite clear to me how certain capabilities are advertised between Drill & Optiq: for instance, a storage engine plus scan operators have to be known to both systems. Will there be a need to advertise those separately to both systems, or will Optiq be embedded in Drill in some seamless way? Similarly, it's not quite clear to me how one implements a runtime for Drill, considering there's Optiq doing the query optimization, and both systems have to know what operators exist to optimize them/execute them. Or, to put it differently, how tightly coupled will Optiq and Drill be? [And, is there any other plans for query optimizations besides Optiq? Not that there's any issue with Optiq - I'm learning about it and am very very impressed with it - but if there alternative optimizers in the pipeline, then these issues have probably been addressed or will be so, soon.]

Any hints / description on your current thoughts would be most welcome. In fact, considering the project is now a few months old, it would be great to see where it's going *now*. It would allow us to understand where our work might fit in, to understand to which components (e.g. drill, optiq) it has to link to, and where we can help!

many thanks,
Miguel

Reply via email to