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

Na Li commented on SENTRY-1784:
-------------------------------

[~akolb] the requested ID is always the (returned latest changeID from sentry) 
+ 1

 In the old behavior, the initial value at NN is 0, and the first requested ID 
is 1. That causes Sentry to send the empty list to NN if there is no change.

In my code update, the initial value at NN is -1, and the first requested ID is 
0. That causes Sentry to send the full snapshot to NN if there is no change. 
After getting the full snapshot, NN's saved ID is 0 now (because the returned 
latest changeID is 0). The next requested ID is 1. 

If there is no change, and NN gets empty list, the requested ID remains as 1. 
If there are changes, the requested ID will increases to be (returned latest 
changeID from sentry) + 1

> DBUpdateForwarder returns empty update list to HDFS instead of full update
> --------------------------------------------------------------------------
>
>                 Key: SENTRY-1784
>                 URL: https://issues.apache.org/jira/browse/SENTRY-1784
>             Project: Sentry
>          Issue Type: Sub-task
>          Components: Sentry
>    Affects Versions: sentry-ha-redesign
>            Reporter: Na Li
>            Assignee: Na Li
>            Priority: Critical
>             Fix For: sentry-ha-redesign
>
>         Attachments: SENTRY-1784.001-sentry-ha-redesign.patch, 
> SENTRY-1784.001-sentry-ha-redesign.patch, 
> SENTRY-1784.002-sentry-ha-redesign.patch
>
>
> When HDFS first asks Sentry for update, the request changeID is 1. If there 
> is no entries in permission change table (current changeID is 0), empty 
> update list is returned to HDFS because the current code behavior is that no 
> update is returned if request changeID is larger than the current chaneID.
> Once this problem is fixed (returning full update when request changeID = 1, 
> and current changeID = 0), another issue of the current code is that after a 
> full update is sent to client, and there is no entries in permission change 
> table (current changeID is 0), the next request changeID is still 1, 
> so full update is returned for the second time. Full update will be sent for 
> each request until permission change table has at least one entry. 
> The desired behavior is for HDFS to get full update when it sends the first 
> request to Sentry. Once it gets full update, the following requests should 
> get delta updates unless some updates are purged before they are sent to HDFS.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to