-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25980/
-----------------------------------------------------------

(Updated εδΈ€ζœˆ 18, 2014, 3:50 p.m.)


Review request for sentry, Arun Suresh, Lenni Kuff, Prasad Mujumdar, and Sravya 
Tirukkovalur.


Changes
-------

According Prasad's comment, will handle the failure seamlessly.


Bugs: SENTRY-464
    https://issues.apache.org/jira/browse/SENTRY-464


Repository: sentry


Description
-------

* Add service register in **SentryPolicyStoreProcessor**
* Add **HASentryPolicyServiceClientImpl** as a HA implementation for 
SentryPolicyServiceClient, it can select active node which registered in 
Zookeeper
* Add **doOperationAndRetry** , use **SentryPolicyServiceClientDefaultImpl** as 
a field, this make all HA method can reuse the same logic for retry.
````java
   private <T> T doOperationAndRetry(SentryOperation<T> sentryOption) throws 
SentryUserException {
    while (true) {
      try {
        return sentryOption.doOperation();
      } catch (SentryUserException e) {
        throw e;
      } catch (Exception e) {
        LOGGER.warn(THRIFT_EXCEPTION_MESSAGE
            + ": Error in connect current service, will retry other service.", 
e);
        try {
          renewSentryClient();
        } catch (IOException e1) {
          throw new SentryUserException(e1.getMessage(),e1.getCause());
        }
      }
    }
  }
````


Diffs (updated)
-----

  
sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/thrift/SentryPolicyStoreProcessor.java
 4774b90 
  
sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/service/thrift/HAClientInvocationHandler.java
 PRE-CREATION 
  
sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/service/thrift/SentryService.java
 b19b79c 
  
sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/service/thrift/SentryServiceClientFactory.java
 11545a5 
  
sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/AbstractTestWithDbProvider.java
 47e01a7 
  
sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/TestPrivilegeWithHAGrantOption.java
 PRE-CREATION 

Diff: https://reviews.apache.org/r/25980/diff/


Testing
-------

The addition UnitTest is used for test client reconnect, other UnitTest passed 
in local


Thanks,

Dapeng Sun

Reply via email to