I have a change propose to Gerrit which enables debugging the generated functions by way of the original java files:
https://asterix-gerrit.ics.uci.edu/#/c/1030/ It has been verified in IntelliJ IDEA, but AFAIK Eclipse has not yet been tested. Thanks, -MDB On Thu, Jul 21, 2016 at 3:14 PM Vignesh Raghunathan < [email protected]> wrote: > Hi, > > Thank you for the response. I just wanted to bump this thread up for more > responses. Any detail would be very helpful. > > Regards, > Vignesh > > > On Jul 16, 2016, at 7:44 AM, Wail Alkowaileet <[email protected]> > wrote: > > > > AFAIK functions (scalar in particular) are generated. > > > > On Jul 16, 2016 00:19, "Vignesh Raghunathan" < > > [email protected] <mailto:[email protected]>> > wrote: > > > >> Hi, > >> > >> I am trying to step through some of the function descriptor code. For > >> instance, I launched an AsterixDB instance via > >> AsterixHyracksIntegrationUtil, placed a breakpoint in > >> > >> > org.apache.asterix.runtime.evaluators.constructors.ATimeConstructorDescriptor.createEvaluatorFactory(...).new > >> IScalarEvaluatorFactory() {...}.createScalarEvaluator(...).new > >> IScalarEvaluator() {...}.evaluate(IFrameTupleReference, IPointable) > >> > >> and ran the query > >> > >> let $v := time(“12:23:23”) > >> return $v > >> > >> However, execution doesn’t stop at the breakpoint. My questions are as > >> follows: > >> > >> 1. http://sigmod.github.io/papers/socc15-final153.pdf < > >> http://sigmod.github.io/papers/socc15-final153.pdf < > http://sigmod.github.io/papers/socc15-final153.pdf>> mentions runtime > >> artifacts called evaluators for function expressions. Is the evaluate > >> function mentioned above part of an evaluator for the time constructor? > >> > >> 2. Is a separate JVM launched for each virtual node controller? > >> > >> 3. How can I debug a task that is scheduled to run in a particular node > >> controller? > >> > >> As an aside, http://sigmod.github.io/papers/socc15-final153.pdf < > http://sigmod.github.io/papers/socc15-final153.pdf> < > >> http://sigmod.github.io/papers/socc15-final153.pdf> mentions that > >> translation between logical functions and evaluators happen during the > job > >> generation phase. Does that mean the rule based physical optimization > phase > >> is skipped for functions? > >> > >> I am also not able to figure out where the function evaluators are > >> actually called in code. Where can I find them? > >> > >> Thanks, > >> Vignesh > >> > >> > >>> On Jul 7, 2016, at 2:23 AM, Mike Carey <[email protected]> wrote: > >>> > >>> Vignesh, > >>> > >>> Count would actually be a particularly bad example to start with. :-) > >> Aggregate functions (count, min, max, sum, avg) are not like other > >> functions - they are special and more complicated / very different. > >> Instead, you should look at simple(r) functions like almost anything > else > >> described at > >> https://asterixdb.apache.org/docs/0.8.8-incubating/aql/functions.html. > >>> > >>> > >>> Cheers, > >>> > >>> Mike > >>> > >>> On 7/6/16 11:29 AM, Xikui Wang wrote: > >>>> Hi Vignesh, > >>>> > >>>> There is an entrance class called: AsterixHyracksIntegrationUtil. You > >> can > >>>> find it under: org.apache.asterix.api.common. The main method in this > >> class > >>>> enables you to launch a local instance for debugging. From my own > >>>> experience, QueryTranslator will be a good start point to trace the > >> process. > >>>> > >>>> Best, > >>>> Xikui > >>>> > >>>> On Wed, Jul 6, 2016 at 11:16 AM, Vignesh Raghunathan < > >>>> [email protected]> wrote: > >>>> > >>>>> Hi, > >>>>> > >>>>> I've been trying to figure out how functions are implemented under > the > >> hood > >>>>> in AsterixDB. For example, I would like to know what happens when the > >> aql > >>>>> statement count([1,2,3]) is executed. > >>>>> > >>>>> I tried to set up remote debugging in eclipse to step through the > code. > >>>>> However, I'm not sure what to change to launch an asterixdb instance > in > >>>>> debug mode. Is there a way to do it? > >>>>> > >>>>> Thanks, > >>>>> Vignesh > >
