Github user vincentpoon commented on a diff in the pull request:

    https://github.com/apache/phoenix/pull/290#discussion_r164208947
  
    --- Diff: 
phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/IndexWriterUtils.java
 ---
    @@ -70,13 +70,13 @@
        public static final String HTABLE_KEEP_ALIVE_KEY = 
"hbase.htable.threads.keepalivetime";
     
        public static final String INDEX_WRITER_RPC_RETRIES_NUMBER = 
"phoenix.index.writes.rpc.retries.number";
    -   /**
    -    * Based on the logic in HBase's AsyncProcess, a default of 11 retries 
with a pause of 100ms
    -    * approximates 48 sec total retry time (factoring in backoffs).  The 
total time should be less
    -    * than HBase's rpc timeout (default of 60 sec) or else the client will 
retry before receiving
    -    * the response
    -    */
    -   public static final int DEFAULT_INDEX_WRITER_RPC_RETRIES_NUMBER = 11;
    +    /**
    +     * Retry server-server index write rpc only once, and let the client 
retry the data write
    +     * instead to avoid typing up the handler
    +     */
    +   // note in HBase 2+, numTries = numRetries + 1
    +   // in prior versions, numTries = numRetries
    +   public static final int DEFAULT_INDEX_WRITER_RPC_RETRIES_NUMBER = 1;
    --- End diff --
    
    Current installations may not have any property configured and are just 
using the default of 11.  Post-upgrade server side, they would again be using 
the default, which has changed to 1.  So I think we would still need to check 
the client version?
    Unless you're saying the onus should be on the operator to set configs 
based on the version being used, but that seems more confusing.


---

Reply via email to