[ https://issues.apache.org/jira/browse/PIG-627?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12680997#action_12680997 ]
Pradeep Kamath commented on PIG-627: ------------------------------------ Sorry about the misunderstanding, I think I looked at a different patch. After reviewing the right patch, here are some comments: The patch throws Java Exceptions like IllegalStateException. This should be replaced with the appropriate Exception class (like MRCompilerException) as specified in http://wiki.apache.org/pig/PigErrorHandlingFunctionalSpecification. The exception should be created with the error code, error source and error message constructor. New error codes should be introduced if one of the existing ones in http://wiki.apache.org/pig/PigErrorHandlingFunctionalSpecification#head-9f71d78d362c3307711f98ec9db3ee12b55e92f6 cannot be used. If new codes are introduced, the wiki table should be updated. The following can be used to check for file existence in BinStorage.determineSchema() - only in the case where the file does not exist, null should be returned {code} public static boolean fileExists(String filename, DataStorage store) throws IOException { ElementDescriptor elem = store.asElement(filename); return elem.exists() || globMatchesFiles(elem, store); } {code} Instead of introducing a rootsFirst attribute in DependencyOrderWalker, I wonder if we should have a ReverseDependencyOrderWalker since that is what the rootsFirst == false case will be. If we are not visiting roots to leaf, we really are not visiting in a dependency order - so the meaning of dependency order is no longer honored - this can be confusing I think. By explicitly naming the walker ReverseDependencyOrderWalker, the intent of walking from leaves to roots is more clear I think. In POSplit currently there is a PhysicalPlan representing the merged inner plans (where all plans are mutually exclusive) and there is also a List<PhysicalPlan> which has the same information in the form of a List. In the rest of pig code, inner plans have always been modelled as List<PhysicalPlan>. For consistency, it is better to just have a List<PhysicalPlan> to represent the inner plans. > PERFORMANCE: multi-query optimization > ------------------------------------- > > Key: PIG-627 > URL: https://issues.apache.org/jira/browse/PIG-627 > Project: Pig > Issue Type: Improvement > Affects Versions: 1.0.0 > Reporter: Olga Natkovich > Attachments: file_cmds-0305.patch, multi-store-0303.patch, > multi-store-0304.patch, multiquery_0223.patch, multiquery_0224.patch, > multiquery_0306.patch > > > Currently, if your Pig script contains multiple stores and some shared > computation, Pig will execute several independent queries. For instance: > A = load 'data' as (a, b, c); > B = filter A by a > 5; > store B into 'output1'; > C = group B by b; > store C into 'output2'; > This script will result in map-only job that generated output1 followed by a > map-reduce job that generated output2. As the resuld data is read, parsed and > filetered twice which is unnecessary and costly. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.