accumulo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Josh Elser" <josh.el...@gmail.com>
Subject Re: Review Request 27198: ACCUMULO-3236 introducing cloneInto feature
Date Mon, 27 Oct 2014 20:29:36 GMT

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


Reviewed what I can; reviewboard seems to have eaten some of the diffs (notably Tablet.java).


core/src/main/java/org/apache/accumulo/core/client/admin/TableOperations.java
<https://reviews.apache.org/r/27198/#comment99744>

    Maybe it would be clearer to actually say that no data is actually copied but the existing
files will be referenced by the target table. It means the same thing that you said, but is
a bit more straightforward IMO.



core/src/main/java/org/apache/accumulo/core/client/impl/TableOperationsImpl.java
<https://reviews.apache.org/r/27198/#comment99745>

    Boolean.toString(boolean) instead of creating a new String for the cast, please.



core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperationsImpl.java
<https://reviews.apache.org/r/27198/#comment99747>

    nit: whitespace



core/src/main/thrift/tabletserver.thrift
<https://reviews.apache.org/r/27198/#comment99748>

    I don't like removing the old bulkImport method. We should try to keep the server APIs
as stable as we can. You can keep the old bulkImport method around and just call the new addFiles
method in the implementation. This will help us stay closer to compatibility across versions.



server/master/src/main/java/org/apache/accumulo/master/FateServiceHandler.java
<https://reviews.apache.org/r/27198/#comment99749>

    We check that the source isn't the root table, but that the dest isn't in the system namespace.
Don't we want both tables to just not be in the system namespace?



server/master/src/main/java/org/apache/accumulo/master/FateServiceHandler.java
<https://reviews.apache.org/r/27198/#comment99750>

    This could be incorrect. The underlying exception might be for srcTableId or destTableId.
I think you'd need to split up the security checks by hand or make sure that canCloneIntoTable
method is throwing you an exception that you know how to unwrap and give back to the client.



server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneIntoTable.java
<https://reviews.apache.org/r/27198/#comment99751>

    Would be nice to lift the inner classes out of CloneIntoTable into their own classes inside
of the this file. That way we could test the individual steps without having to have an instance
of CloneIntoTable when we don't want it. Makes it a bit more consistent with the other fate
ops too (e.g. CreateTable)



server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneIntoTable.java
<https://reviews.apache.org/r/27198/#comment99752>

    Use MetadataSchema.TabletsSection.getRange(String) instead.



server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneIntoTable.java
<https://reviews.apache.org/r/27198/#comment99753>

    Won't this fail if you try cloneInto with an empty table as the source?



test/src/test/java/org/apache/accumulo/test/functional/CloneIntoIT.java
<https://reviews.apache.org/r/27198/#comment99759>

    Some more tests here that enumerate the basic edge cases would be good: srcTable missing,
destTable missing, read perms denied on source, write perms denied on dest.
    
    Breaking up testCloneInto into a few test cases instead of one big one would be much easier
when trying to debug things later.



test/src/test/java/org/apache/accumulo/test/functional/CloneIntoIT.java
<https://reviews.apache.org/r/27198/#comment99760>

    Thank you for adding this :)


- Josh Elser


On Oct. 25, 2014, 7:31 p.m., John Vines wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/27198/
> -----------------------------------------------------------
> 
> (Updated Oct. 25, 2014, 7:31 p.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-3236
>     https://issues.apache.org/jira/browse/ACCUMULO-3236
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> Includes all code to support feature, including thrift changes
> Includes minor code cleanup to TableLocator and items in the Bulk path to remove signature
items that are unused (arguments & exceptions)
> Includes renaming of some bulk import functions to clarify their purpose (because they're
now multi-purpose)
> 
> Patch is based on 1.6, but we can choose to make it target only 1.7 if we choose (this
conversation should be taken up on jira, not in RB)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperations.java 97f538d

>   core/src/main/java/org/apache/accumulo/core/client/impl/RootTabletLocator.java 97d476b

>   core/src/main/java/org/apache/accumulo/core/client/impl/TableOperationsImpl.java 2792bcc

>   core/src/main/java/org/apache/accumulo/core/client/impl/TabletLocator.java e396d82

>   core/src/main/java/org/apache/accumulo/core/client/impl/TabletLocatorImpl.java c550f15

>   core/src/main/java/org/apache/accumulo/core/client/impl/TimeoutTabletLocator.java bcbe561

>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/TableOperation.java
7716823 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperationsImpl.java
de19137 
>   core/src/main/java/org/apache/accumulo/core/client/mock/impl/MockTabletLocator.java
35f160f 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/FateOperation.java f65f552

>   core/src/main/java/org/apache/accumulo/core/tabletserver/thrift/TabletClientService.java
2ba7674 
>   core/src/main/thrift/client.thrift 38a8076 
>   core/src/main/thrift/master.thrift 38e9227 
>   core/src/main/thrift/tabletserver.thrift 25e0b10 
>   core/src/test/java/org/apache/accumulo/core/client/admin/TableOperationsHelperTest.java
1d91574 
>   core/src/test/java/org/apache/accumulo/core/client/impl/TableOperationsHelperTest.java
02838ed 
>   server/base/src/main/java/org/apache/accumulo/server/client/BulkImporter.java 27ab078

>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java
ebea064 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java
d0e6aea 
>   server/base/src/test/java/org/apache/accumulo/server/client/BulkImporterTest.java 3680341

>   server/master/src/main/java/org/apache/accumulo/master/FateServiceHandler.java 5818da3

>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneIntoTable.java
PRE-CREATION 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0778f5b 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java 03fe069

>   test/src/main/java/org/apache/accumulo/test/performance/thrift/NullTserver.java 0591b19

>   test/src/test/java/org/apache/accumulo/test/functional/CloneIntoIT.java PRE-CREATION

> 
> Diff: https://reviews.apache.org/r/27198/diff/
> 
> 
> Testing
> -------
> 
> Includes CloneIntoIT, which exercises all permutations of the flags. Existing BulkIT
still functions as intended for validation of no feature loss in refactoring exiting code
for multi-purposing.
> 
> 
> Thanks,
> 
> John Vines
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message