[ 
https://issues.apache.org/jira/browse/DRILL-4699?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15557174#comment-15557174
 ] 

ASF GitHub Bot commented on DRILL-4699:
---------------------------------------

Github user paul-rogers commented on a diff in the pull request:

    https://github.com/apache/drill/pull/536#discussion_r82495511
  
    --- Diff: 
exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/PlannerSettings.java
 ---
    @@ -46,40 +46,83 @@
       // max off heap memory for planning (16G)
       private static final long MAX_OFF_HEAP_ALLOCATION_IN_BYTES = 16l * 1024 
* 1024 * 1024;
     
    -  public static final OptionValidator CONSTANT_FOLDING = new 
BooleanValidator("planner.enable_constant_folding", true);
    +  public static final OptionValidator CONSTANT_FOLDING = new 
BooleanValidator("planner.enable_constant_folding", true,
    +      "If one side of a filter condition is a constant expression, 
constant folding evaluates the expression in the" +
    +          " planning phase and replaces the expression with the constant 
value. For example, Drill can rewrite" +
    +          " this clause ' WHERE age + 5 < 42 as WHERE age < 37'.");
    +
       public static final OptionValidator EXCHANGE = new 
BooleanValidator("planner.disable_exchanges", false);
    +
       public static final OptionValidator HASHAGG = new 
BooleanValidator("planner.enable_hashagg", true);
    +
       public static final OptionValidator STREAMAGG = new 
BooleanValidator("planner.enable_streamagg", true);
    -  public static final OptionValidator HASHJOIN = new 
BooleanValidator("planner.enable_hashjoin", true);
    -  public static final OptionValidator MERGEJOIN = new 
BooleanValidator("planner.enable_mergejoin", true);
    +
    +  public static final OptionValidator HASHJOIN = new 
BooleanValidator("planner.enable_hashjoin", true,
    +      "Enable the memory hungry hash join. Drill assumes that a query with 
have adequate memory to complete and" +
    +          " tries to use the fastest operations possible to complete the 
planned inner, left, right, or full outer" +
    +          " joins using a hash table. Does not write to disk. Disabling 
hash join allows Drill to manage arbitrarily" +
    +          " large data in a small memory footprint.");
    +
    +  public static final OptionValidator MERGEJOIN = new 
BooleanValidator("planner.enable_mergejoin", true,
    +      "Sort-based operation. A merge join is used for inner join, left and 
right outer joins. Inputs to the merge" +
    +          " join must be sorted. It reads the sorted input streams from 
both sides and finds matching rows." +
    +          " Writes to disk.");
    +
       public static final OptionValidator NESTEDLOOPJOIN = new 
BooleanValidator("planner.enable_nestedloopjoin", true);
    +
       public static final OptionValidator MULTIPHASE = new 
BooleanValidator("planner.enable_multiphase_agg", true);
    -  public static final OptionValidator BROADCAST = new 
BooleanValidator("planner.enable_broadcast_join", true);
    -  public static final OptionValidator BROADCAST_THRESHOLD = new 
PositiveLongValidator("planner.broadcast_threshold", MAX_BROADCAST_THRESHOLD, 
10000000);
    -  public static final OptionValidator BROADCAST_FACTOR = new 
RangeDoubleValidator("planner.broadcast_factor", 0, Double.MAX_VALUE, 1.0d);
    -  public static final OptionValidator NESTEDLOOPJOIN_FACTOR = new 
RangeDoubleValidator("planner.nestedloopjoin_factor", 0, Double.MAX_VALUE, 
100.0d);
    -  public static final OptionValidator NLJOIN_FOR_SCALAR = new 
BooleanValidator("planner.enable_nljoin_for_scalar_only", true);
    -  public static final OptionValidator JOIN_ROW_COUNT_ESTIMATE_FACTOR = new 
RangeDoubleValidator("planner.join.row_count_estimate_factor", 0, 
Double.MAX_VALUE, 1.0d);
    +
    +  public static final OptionValidator BROADCAST = new 
BooleanValidator("planner.enable_broadcast_join", true,
    +      "The broadcast join can be used for hash join, merge join and nested 
loop join. Use to join a large (fact)" +
    +          " table to relatively smaller (dimension) tables. This should be 
enabled.");
    +  public static final OptionValidator BROADCAST_THRESHOLD = new 
PositiveLongValidator("planner.broadcast_threshold",
    +      MAX_BROADCAST_THRESHOLD, 10000000, "The maximum number of records 
allowed to be broadcast as part of a query." +
    +      " If the threshold is exceeded, Drill reshuffles data rather than 
doing a broadcast to one side of the" +
    +      " join. Range: 0 - " + MAX_BROADCAST_THRESHOLD + ".");
    +  public static final OptionValidator BROADCAST_FACTOR = new 
RangeDoubleValidator("planner.broadcast_factor", 0,
    +      Double.MAX_VALUE, 1.0d, "A heuristic parameter for influencing the 
broadcast of records as part of a query.");
    --- End diff --
    
    Increasing the value does... what?


> Add Description Column in sys.options
> -------------------------------------
>
>                 Key: DRILL-4699
>                 URL: https://issues.apache.org/jira/browse/DRILL-4699
>             Project: Apache Drill
>          Issue Type: Improvement
>          Components:  Server, Documentation
>    Affects Versions: 1.6.0
>            Reporter: John Omernik
>            Assignee: Paul Rogers
>
> select * from sys.options provides a user with a strong understanding of what 
> options are available to Drill. These options are not well documented.  Some 
> options are "experimental" other options have a function only in specific 
> cases (writers vs readers for example).  If we had a large text field for 
> description, we could enforce documentation of the settings are option 
> creation time, and the description of the setting could change as the 
> versions change (i.e. when an option graduates to being supported from being 
> experimental, it would be changed in the version the user is using. I.e. when 
> they run select * from sys.options, they know the exact state of the option 
> every time they query. It could also facilitate better self documentation via 
> QA on pull requests "Did you update the sys.options.desc?"  This makes it 
> easier for users, and admins in the use of Drill in an enterprise.    
> The first step is adding the field, and then going back and filling in the 
> desc for each option.  (Another JIRA after the option is available)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to