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




intg/src/main/java/org/apache/atlas/model/impexp/AtlasImportRequest.java
Lines 76 (patched)
<https://reviews.apache.org/r/59722/#comment250321>

    Consider adding @JsonIgnore annotation here, so that 'startGuid' and 
'startPosition' will not be serialized.



repository/src/main/java/org/apache/atlas/repository/impexp/ImportService.java
Lines 93 (patched)
<https://reviews.apache.org/r/59722/#comment250324>

    It might be clearer if this method only sets the start-position; and have 
the caller call processEntities(). Consider the following:
    
    Replace:
      processEntitiesUsingStartOption(request, source, result);
    
    With:
      setStartPosition(source, request);
      processEntities(source, result);



repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityStoreV1.java
Lines 208 (patched)
<https://reviews.apache.org/r/59722/#comment250326>

    Why 'currentIndex + 1'? ZipSource.currentIndex seems to have the number of 
entities processed so far. Please review. Also 'ZipSource.currentPosition' 
might be a better name, instead of currentIndex. Please review.



repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityStreamForImport.java
Lines 48 (patched)
<https://reviews.apache.org/r/59722/#comment250328>

    Wouldn't size be always "1"? Given this object is initialized with an 
instance of AtlasEntityWithExtInfo?



repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityStreamForImport.java
Lines 53 (patched)
<https://reviews.apache.org/r/59722/#comment250330>

    Consider adding a comment like:
      // not applicable for a single entity stream



repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityStreamForImport.java
Lines 58 (patched)
<https://reviews.apache.org/r/59722/#comment250329>

    It will be useful for getNextEntityWithExtInfo() to maintain a counter, 
which can be returned from getPosition() - similar to the implementation in 
ZipSource.


- Madhan Neethiraj


On June 2, 2017, 8:52 p.m., Ashutosh Mestry wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/59722/
> -----------------------------------------------------------
> 
> (Updated June 2, 2017, 8:52 p.m.)
> 
> 
> Review request for atlas and Madhan Neethiraj.
> 
> 
> Bugs: ATLAS-1851
>     https://issues.apache.org/jira/browse/ATLAS-1851
> 
> 
> Repository: atlas
> 
> 
> Description
> -------
> 
> **Implementation**
> - Added additional options to _AtlasImportRequest_.
>   - Additional options:
>     - _startGuid_
>     - _startPosition_
> - Added method for percentage calculation to _AtlasEntityStoreV1_.
> - Updated logging message to include entity guid, type and position.
> 
> **CURL**
> 
> Create file with these contents call it _importTransform.json_:
> ```javascript
> { "options": {
>     "startGuid": "bd97c78e-3fa5-4f9c-9f48-3683ca3d1fb1"
>     }
> }
> ```javascript
> 
> 
> ```
> curl -g -X POST -u admin:admin -H "Content-Type: multipart/form-data" -H 
> "Cache-Control: no-cache" -F request=@../docs/importTransform.json -F 
> data=@../docs/Stocks-2.zip "http://localhost:21000/api/atlas/admin/import";
> ```
> 
> Steps to use the behavior:
> - Start an import (using the CURL above) that is fairly long, say about 1000+ 
> entities. 
> - While the import is in progress, stop atlas server (using _atlas_stop.py_).
> - From the log file located at _/var/log/atlas/application.log_ get the last 
> successfully imported entity GUID or position.
> - Update the _importTransform.json_ with the guid.
> - Restart import.
> 
> You should see that import resumes from where it left off.
> 
> 
> **Highlights**
> Specify the _startGuid_ option and notice that the operation resumes from the 
> correct percentage and not 0%.
> 
> 
> Diffs
> -----
> 
>   intg/src/main/java/org/apache/atlas/model/impexp/AtlasImportRequest.java 
> 4f2c1fbc 
>   
> repository/src/main/java/org/apache/atlas/repository/impexp/ImportService.java
>  8a7e3585 
>   repository/src/main/java/org/apache/atlas/repository/impexp/ZipSource.java 
> 76451c98 
>   
> repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityStoreV1.java
>  27c0b5d4 
>   
> repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityStreamForImport.java
>  69140e69 
>   
> repository/src/main/java/org/apache/atlas/repository/store/graph/v1/EntityImportStream.java
>  0f711db4 
>   
> repository/src/test/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityStoreV1BulkImportPercentTest.java
>  PRE-CREATION 
> 
> 
> Diff: https://reviews.apache.org/r/59722/diff/1/
> 
> 
> Testing
> -------
> 
> **Unit tests**
> Added tests to cover the new functionality. Note the usage of mock for 
> _Logger_.
> 
> **Volume tests**
> - Performed large imports with resume.
> - Noted the numbers against baseline. Did not observe significant deviation.
> 
> **Functional tests**
> - Used common scenarios from test suite.
> 
> **Accuracy testing**
> - Not done.
> 
> 
> Thanks,
> 
> Ashutosh Mestry
> 
>

Reply via email to