Github user JamesRTaylor commented on a diff in the pull request:
https://github.com/apache/phoenix/pull/290#discussion_r164180657
--- 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 --
We need to conditionally leave it at 11 versus use 1 based on the client
version. Old clients wouldn't have the retry logic, so we'd need to continue
retrying on the server.
---