[ 
https://issues.apache.org/jira/browse/PIG-1178?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12832072#action_12832072
 ] 

Alan Gates commented on PIG-1178:
---------------------------------

Responses to Ashutosh's questions and comments:

bq. b) At various places Runtime Exceptions are thrown. Do we need a new 
Exception class something like ExperimentalOptimizerException so as to easily 
spot those exceptions? That will aid in debugging. Also error messages are 
pretty terse. More details can be put in messages, again to aid in debugging 
later on.

The error messages are sparse.  Part of moving this from prototype to 
production will be fleshing out those error messages, adding error codes, etc.  

As for adding a new exception, I'm not sure I see the value.  Hopefully 
RuntimeException is only used in appropriate places.  If it's being used where 
a different exception should be used, then we can change it.

bq. c) At couple of places, changes are made outside of experimental package. 
Will be useful to put comments there for why are those needed. 

Changes were made to FuncSpec and FileSpec to give them equals functions so 
that comparisons can be done between two nodes that both contain a FuncSpec.  
For example, we may want to determine if two load operators are the same.  Part 
of that will be determining if they use the same load function and load the 
same file.

bq. Was wondering about different optimizations that we do on a complied MR 
plan. ... [E]ssentially those optimizations are also done through visitors and 
would benefit greatly if there is a framework for them just as there is one for 
front-end. Is there any plan to also subsume those visitors (possibly by 
rewriting them as rule-transform pairs) in this new optimizer or will they be 
dealt with separately later on?

Plan is too strong a word; there is a hope.  I agree that the MR optimizer is a 
mess, and it needs a framework.  The question is whether the same framework 
will suffice for both.  I hope that it will.  But to avoid taking on too much 
we have defined the scope of this current work to just be the logical 
optimizer.  After we have the logical optimizer in good shape we will need to 
address issues in the MR optimizer.  Hopefully this framework being developed 
will work with minimal refactoring and changes.  If not, a different framework 
will need to be designed for the MR case.



> LogicalPlan and Optimizer are too complex and hard to work with
> ---------------------------------------------------------------
>
>                 Key: PIG-1178
>                 URL: https://issues.apache.org/jira/browse/PIG-1178
>             Project: Pig
>          Issue Type: Improvement
>            Reporter: Alan Gates
>            Assignee: Ying He
>         Attachments: expressions-2.patch, expressions.patch, lp.patch, 
> lp.patch, pig_1178.patch, pig_1178.patch, PIG_1178.patch
>
>
> The current implementation of the logical plan and the logical optimizer in 
> Pig has proven to not be easily extensible. Developer feedback has indicated 
> that adding new rules to the optimizer is quite burdensome. In addition, the 
> logical plan has been an area of numerous bugs, many of which have been 
> difficult to fix. Developers also feel that the logical plan is difficult to 
> understand and maintain. The root cause for these issues is that a number of 
> design decisions that were made as part of the 0.2 rewrite of the front end 
> have now proven to be sub-optimal. The heart of this proposal is to revisit a 
> number of those proposals and rebuild the logical plan with a simpler design 
> that will make it much easier to maintain the logical plan as well as extend 
> the logical optimizer. 
> See http://wiki.apache.org/pig/PigLogicalPlanOptimizerRewrite for full 
> details.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to