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

ASF GitHub Bot commented on PHOENIX-4130:
-----------------------------------------

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

    https://github.com/apache/phoenix/pull/290#discussion_r164264253
  
    --- Diff: 
phoenix-core/src/it/java/org/apache/phoenix/end2end/index/PartialIndexRebuilderIT.java
 ---
    @@ -1075,6 +1111,12 @@ public void testIndexFailureWithinRSDisablesIndex() 
throws Throwable {
         public static class WriteFailingRegionObserver extends 
SimpleRegionObserver {
             @Override
             public void 
postBatchMutate(ObserverContext<RegionCoprocessorEnvironment> c, 
MiniBatchOperationInProgress<Mutation> miniBatchOp) throws IOException {
    +            // we need to advance the clock, since the index retry logic 
(copied from HBase) has a time component
    +            EnvironmentEdge delegate = 
EnvironmentEdgeManager.getDelegate();
    +            if (delegate instanceof MyClock) {
    +                MyClock myClock = (MyClock) delegate;
    +                myClock.time += 1000;
    +            }
    --- End diff --
    
    Do we still need this since you're using TableRef.getCurrentTime()? If yes, 
that's ok.


> Avoid server retries for mutable indexes
> ----------------------------------------
>
>                 Key: PHOENIX-4130
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4130
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: Lars Hofhansl
>            Assignee: Vincent Poon
>            Priority: Major
>             Fix For: 4.14.0
>
>         Attachments: PHOENIX-4130.v1.master.patch, 
> PHOENIX-4130.v2.master.patch, PHOENIX-4130.v3.master.patch, 
> PHOENIX-4130.v4.master.patch
>
>
> Had some discussions with [~jamestaylor], [~samarthjain], and [~vincentpoon], 
> during which I suggested that we can possibly eliminate retry loops happening 
> at the server that cause the handler threads to be stuck potentially for 
> quite a while (at least multiple seconds to ride over common scenarios like 
> splits).
> Instead we can do the retries at the Phoenix client that.
> So:
> # The index updates are not retried on the server. (retries = 0)
> # A failed index update would set the failed index timestamp but leave the 
> index enabled.
> # Now the handler thread is done, it throws an appropriate exception back to 
> the client.
> # The Phoenix client can now retry. When those retries fail the index is 
> disabled (if the policy dictates that) and throw the exception back to its 
> caller.
> So no more waiting is needed on the server, handler threads are freed 
> immediately.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to