[ https://issues.apache.org/jira/browse/PIG-4662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16026494#comment-16026494 ]
Rohini Palaniswamy commented on PIG-4662: ----------------------------------------- bq. I'd like to see a modular design rather than intermingle different concept together. In that case we can extend and add a POJoinLocalRearrange that handles join specific conditions like this. It would not be mixing up POLocalRearrange then. bq. I don't feel it is hard to find the join key in the logical optimizer and adding a filter on it. Adding a extra filter operator for 3 lines of check will definitely impact performance when we are dealing with billions of records. We recently had a user who added is null bincond checks for lot of columns in his foreach which dealt with 10+billions of records and it took extra 40+ minutes. Filter and foreach are what we are trying to optimize in PIG-3764 with bytecode generation. As we are trying to improve performance everywhere and trying to save milliseconds we should not be doing this unless it is a major or complicated change in which case it will be cleaner to keep it separate. > New optimizer rule: filter nulls before inner joins > --------------------------------------------------- > > Key: PIG-4662 > URL: https://issues.apache.org/jira/browse/PIG-4662 > Project: Pig > Issue Type: Improvement > Reporter: Ido Hadanny > Assignee: Satish Subhashrao Saley > Priority: Minor > Labels: Performance > Fix For: 0.18.0 > > > As stated in the docs, rewriting an inner join and filtering nulls from > inputs can be a big performance gain: > http://pig.apache.org/docs/r0.14.0/perf.html#nulls > We would like to add an optimizer rule which detects inner joins, and filters > nulls in all inputs: > A = filter A by t is not null; > B = filter B by x is not null; > C = join A by t, B by x; > see also: > http://stackoverflow.com/questions/32088389/is-the-pig-optimizer-filtering-nulls-before-joining -- This message was sent by Atlassian JIRA (v6.3.15#6346)