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




sentry-hdfs/sentry-hdfs-common/src/main/java/org/apache/sentry/hdfs/DeltaRetriever.java
Lines 56 (patched)
<https://reviews.apache.org/r/57232/#comment241092>

    On what conditions does it throw exception?



sentry-hdfs/sentry-hdfs-common/src/main/java/org/apache/sentry/hdfs/DeltaRetriever.java
Lines 60 (patched)
<https://reviews.apache.org/r/57232/#comment241095>

    The comment is a copy-paste from isDeltaAvailable()



sentry-hdfs/sentry-hdfs-common/src/main/java/org/apache/sentry/hdfs/DeltaRetriever.java
Lines 64 (patched)
<https://reviews.apache.org/r/57232/#comment241094>

    no such parameter



sentry-hdfs/sentry-hdfs-common/src/main/java/org/apache/sentry/hdfs/DeltaRetriever.java
Lines 67 (patched)
<https://reviews.apache.org/r/57232/#comment241093>

    On what conditions does it throw exception?



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/DBUpdateForwarder.java
Lines 30 (patched)
<https://reviews.apache.org/r/57232/#comment241096>

    The first sentence should be a brief description without links.



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/DBUpdateForwarder.java
Lines 34 (patched)
<https://reviews.apache.org/r/57232/#comment241099>

    Use @ThreadSafe annotation. Also it would be good to explain why it is 
thread-safe.



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/DBUpdateForwarder.java
Lines 36 (patched)
<https://reviews.apache.org/r/57232/#comment241097>

    Can be package-private



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/DBUpdateForwarder.java
Lines 42 (patched)
<https://reviews.apache.org/r/57232/#comment241098>

    Can be package-private



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/DBUpdateForwarder.java
Lines 54 (patched)
<https://reviews.apache.org/r/57232/#comment241104>

    Is it returned as a single-element list?
    
    Can we split it as a
    
    1) Check if we can get deltas
    2) If yes, get list of deltas
    3) Otherwise call another function to get a full update?



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/DBUpdateForwarder.java
Lines 59 (patched)
<https://reviews.apache.org/r/57232/#comment241100>

    Can we relax the return type to Collection?
    This method can be package-private



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/DBUpdateForwarder.java
Lines 70 (patched)
<https://reviews.apache.org/r/57232/#comment241106>

    We can create it once we know how many deltas we have on line 76



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/DBUpdateForwarder.java
Lines 71 (patched)
<https://reviews.apache.org/r/57232/#comment241105>

    Please add a comment explaining what is going on here



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/DBUpdateForwarder.java
Lines 72 (patched)
<https://reviews.apache.org/r/57232/#comment241103>

    Add explicit parentheses:
    
        if ((seqNum != SentryStore.INIT_CHANGE_ID) &&
                deltaRetriever.isDeltaAvailable(seqNum))



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/DBUpdateForwarder.java
Lines 80 (patched)
<https://reviews.apache.org/r/57232/#comment241107>

    It would be better to be more explicit on the cases where we return a full 
image or a list of deltas.



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/PathDeltaRetriever.java
Lines 27 (patched)
<https://reviews.apache.org/r/57232/#comment241108>

    The first sentence should be a short statement without links. Subsequent 
sentences may clarify it and add links.



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/PathDeltaRetriever.java
Lines 28 (patched)
<https://reviews.apache.org/r/57232/#comment241109>

    s/it/them/ ? paths is plural



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/PathDeltaRetriever.java
Lines 29 (patched)
<https://reviews.apache.org/r/57232/#comment241111>

    Please add a comment explaining thread-safety of this class.



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/PathDeltaRetriever.java
Lines 43 (patched)
<https://reviews.apache.org/r/57232/#comment241112>

    If mSentryPathChanges is empty, you can return an empty list immediately. 
If not you can allocate a list of a known size:
    
    Collection<PathsUpdate> updates = new 
ArrayList<>(mSentryPathChanges.size());



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/PathDeltaRetriever.java
Lines 60 (patched)
<https://reviews.apache.org/r/57232/#comment241116>

    ifPathChangeExists is an unusual name. Why not just
    
    pathChangeExists() ?



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/PathImageRetriever.java
Lines 75 (patched)
<https://reviews.apache.org/r/57232/#comment241114>

    Use static constant for String[]{"/"}



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/PathImageRetriever.java
Lines 77 (patched)
<https://reviews.apache.org/r/57232/#comment241115>

    Why are we using a new lock every time? How does it protect us from 
anything? The lock is only useful if others are using the same lock. What are 
you trying to synchronize here?



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/PermDeltaRetriever.java
Lines 27 (patched)
<https://reviews.apache.org/r/57232/#comment241118>

    The first sentence should be a short description without links.



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/PermDeltaRetriever.java
Lines 43 (patched)
<https://reviews.apache.org/r/57232/#comment241119>

    See comment for PathDeltaRetriever



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/PermImageRetriever.java
Line 33 (original), 33 (patched)
<https://reviews.apache.org/r/57232/#comment241120>

    Same comment about first javadoc sentence.



sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/SentryPlugin.java
Line 73 (original), 73 (patched)
<https://reviews.apache.org/r/57232/#comment241121>

    Since it is only a single variable, you can say
    
    "The 'fullUpdateNN' variable is used to ...



sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
Lines 3200 (patched)
<https://reviews.apache.org/r/57232/#comment241123>

    I think getLastProcessedChangeIDCore() should return Long to avoid extra 
autoboxing on return.



sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
Lines 3285 (patched)
<https://reviews.apache.org/r/57232/#comment241125>

    What are these params?



sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
Lines 3292 (patched)
<https://reviews.apache.org/r/57232/#comment241124>

    Naming - may be changeExistsCore() ?
    Also - should it return boolean or Boolean?



sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
Lines 3296 (patched)
<https://reviews.apache.org/r/57232/#comment241128>

    what is t? Can you use a better name?



sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
Lines 3298 (patched)
<https://reviews.apache.org/r/57232/#comment241127>

    Since we only need to know whether there are any changes, can we optimize 
query somewhat?



sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
Lines 3299 (patched)
<https://reviews.apache.org/r/57232/#comment241126>

    return !changes.isEmpty()



sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
Lines 3313 (patched)
<https://reviews.apache.org/r/57232/#comment241129>

    naming - oermChangeExists()



sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
Lines 3403 (patched)
<https://reviews.apache.org/r/57232/#comment241130>

    Add extra parenthesis: 
    
    if (pathChanges.size() < ((curChangeID - changeID) + 1)) {



sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
Lines 3404 (patched)
<https://reviews.apache.org/r/57232/#comment241131>

    Please also log the pathChanges.size(), curChangeId and changeId or 
something derived showing what exactly is missing



sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
Lines 3406 (patched)
<https://reviews.apache.org/r/57232/#comment241132>

    Collections.emptyList()
    
    Can we recover from this condition?



sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
Lines 3424 (patched)
<https://reviews.apache.org/r/57232/#comment241135>

    Same comments as in getMSentryPathChanges()



sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
Lines 3435 (patched)
<https://reviews.apache.org/r/57232/#comment241133>

    Collections.emptyList()


- Alexander Kolbasov


On March 10, 2017, 11:14 p.m., Hao Hao wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57232/
> -----------------------------------------------------------
> 
> (Updated March 10, 2017, 11:14 p.m.)
> 
> 
> Review request for sentry.
> 
> 
> Repository: sentry
> 
> 
> Description
> -------
> 
> Add the logic for propagating Sentry Permissions or Sentry representation of 
> HMS Paths, from a persistent storage instead of in memoery cache of Sentry 
> service, to a Sentry consumer such as HDFS NameNode. It includes:
> 1. Delta update retrieval logic from persistent storage.
> 2. Propagation logic for consumer to get the delta update or a complete 
> snapshot.
> 
> 
> Diffs
> -----
> 
>   
> sentry-hdfs/sentry-hdfs-common/src/main/java/org/apache/sentry/hdfs/DeltaRetriever.java
>  PRE-CREATION 
>   
> sentry-hdfs/sentry-hdfs-common/src/main/java/org/apache/sentry/hdfs/ImageRetriever.java
>  0e40756b0da0214e83b7127dcd8816f30c9692c8 
>   
> sentry-hdfs/sentry-hdfs-common/src/main/java/org/apache/sentry/hdfs/ThriftSerializer.java
>  69aa098bc71362b1aba0ad219483cfce7d389964 
>   
> sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/DBUpdateForwarder.java
>  PRE-CREATION 
>   
> sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/MetastorePlugin.java
>  085971b34e3901b7a1d59bd8e7516b25f81ca872 
>   
> sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/PathDeltaRetriever.java
>  PRE-CREATION 
>   
> sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/PathImageRetriever.java
>  16a1604700079cb37f6fbaeceae92c67b2c08d8b 
>   
> sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/PermDeltaRetriever.java
>  PRE-CREATION 
>   
> sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/PermImageRetriever.java
>  3017c9edb2217cd0152183f927691311a276e850 
>   
> sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/SentryHDFSServiceProcessor.java
>  e4f3f580ee0a6bf83d5a32001bff130c0bff13aa 
>   
> sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/SentryHdfsMetricsUtil.java
>  be145695af35b34f409e1f8b6e49da247f78e7a0 
>   
> sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/SentryPlugin.java
>  029f9d5dc89493f7e7086b80387f71fef1ac0805 
>   
> sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/UpdateForwarder.java
>  22c57690a0f74822187335f97cf1eede8d415acf 
>   
> sentry-hdfs/sentry-hdfs-service/src/main/java/org/apache/sentry/hdfs/UpdateablePermissions.java
>  03c67d674813c59a23c5bc6c57671d79dfd235a0 
>   
> sentry-hdfs/sentry-hdfs-service/src/test/java/org/apache/sentry/hdfs/TestUpdateForwarder.java
>  d12b1342116217685a46367567e2c0f8d7c288e5 
>   
> sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java
>  6ea6d3f44d7a2c7cd2b375af74f3b19d5731aed6 
>   
> sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/service/persistent/TestSentryStore.java
>  75f855caec1060f9158562aeb81ec53d8a679941 
>   
> sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/hdfs/TestHDFSIntegration.java
>  f2d74bfe5e413ea88c3c77ef303f1c7f9ee16253 
> 
> 
> Diff: https://reviews.apache.org/r/57232/diff/4/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Hao Hao
> 
>

Reply via email to