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

(Updated May 18, 2017, 3:08 p.m.)


Review request for sentry, Alexander Kolbasov, Hao Hao, Na Li, Sergio Pena, 
Vamsee Yarlagadda, and Vadim Spector.


Changes
-------

Fixed issues observed in tests. 

HMS has a default database with name "default".

Behavior in old patch:

1. When HMS runs for the first time, it takes a snapshot which just has one 
entry for database "default".
2. lastProcessedNotificationID would be 0 as there were no notifications.
3. For couple of seconds, Every time HMSFollower runs, it initializes 
lastProcessedNotificationID with 0. As the changes done were dependent on 
lastProcessedNotificationID to decide if a snapshot is needed, HMSFollower used 
to request snapshot every time it ran. 
4. After some time when the notifications were inserted into notification log 
table of HMS, HMSFollower never received notifications as there out-of-sequence 
exceptions raised for the requests made by HMSFollower.

Behavior in New patch:

1. When HMS runs for the first time, it takes a snapshot which just has one 
entry for database "default".
2. lastProcessedNotificationID would be 0 as there were no notifications.
3. For couple of seconds, Every time HMSFollower runs, it initializes 
lastProcessedNotificationID with 0. Instead of depending on 
lastProcessedNotificationID retrieved from database to decide if snapshot is 
needed, HMSFollower depends on it's static data. That way HMSFollower, does a 
snapshot only once. This was the older behavior. Just reverting back to older 
behavior.

This change solved the issue.

There is some inherent issue(out-of-sequence) with the communication with HMS 
which I will debug further and raise a bug either on SENTRY/HIVE based in my 
finding. As far as this jira is concerned, HMSFollower should anyway request a 
snapshot only once this new patch should be good.


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


Repository: sentry


Description
-------

Sentry should store Id's of all the notifications that it processed in a 
seperate database.
HMSFollower before every run should get the last notification ID from this 
persistent store.


Diffs (updated)
-----

  
b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/model/MSentryHmsNotification.java
 PRE-CREATION 
  
sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/model/MSentryPathChange.java
 42f80aa 
  
sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/model/MSentryPermChange.java
 8d9528f 
  
sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/model/package.jdo
 8fd5278 
  
sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/DeltaTransactionBlock.java
 709d195 
  
sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
 c458651 
  
sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/service/thrift/HMSFollower.java
 5dc0ad3 
  
sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/service/thrift/NotificationProcessor.java
 083e0ac 
  
sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/service/persistent/TestSentryStore.java
 e7443eb 


Diff: https://reviews.apache.org/r/58975/diff/15/

Changes: https://reviews.apache.org/r/58975/diff/14-15/


Testing
-------

Sentry stores Id's of all the notifications that it processed in a seperate 
database.
HMSFollower before every run gets the last notification ID from this persistent 
store.


Thanks,

kalyan kumar kalvagadda

Reply via email to