> On Oct. 27, 2014, 8:29 p.m., Josh Elser wrote: > > core/src/main/java/org/apache/accumulo/core/client/admin/TableOperations.java, > > line 346 > > <https://reviews.apache.org/r/27198/diff/1/?file=733392#file733392line346> > > > > 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.
Changed > On Oct. 27, 2014, 8:29 p.m., Josh Elser wrote: > > core/src/main/java/org/apache/accumulo/core/client/impl/TableOperationsImpl.java, > > line 724 > > <https://reviews.apache.org/r/27198/diff/1/?file=733394#file733394line724> > > > > Boolean.toString(boolean) instead of creating a new String for the > > cast, please. Went ahead and fixed that in importDirectory too (where I got that code from) > On Oct. 27, 2014, 8:29 p.m., Josh Elser wrote: > > core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperationsImpl.java, > > line 452 > > <https://reviews.apache.org/r/27198/diff/1/?file=733399#file733399line452> > > > > nit: whitespace Reformatted file > On Oct. 27, 2014, 8:29 p.m., Josh Elser wrote: > > core/src/main/thrift/tabletserver.thrift, line 180 > > <https://reviews.apache.org/r/27198/diff/1/?file=733405#file733405line180> > > > > 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. > > John Vines wrote: > This isn't public api, this is only used for master->tserver. > > Josh Elser wrote: > Ah, I didn't notice that the first time around, thanks for pointing it > out. However, even though it is internal RPC, I still think that the > BulkImport code shouldn't have to change to support this new feature. You can > still keep the master->tserver RPC for bulk import the same and call the new > `addFiles(..., false)`. This keeps the RPC methods that the server-side bulk > import code calls the same while still letting you implement this new feature. > > John Vines wrote: > You are right in that I could do a separate method for this. But I feel > that further enables an issue I noticed while working on this of refactoring > things while not renaming/cleaning things up to what their actual purpose is. > This method was called bulkImport, but all it specifically did was assign > files. It did no moving of files, etc., it just validated they were in the > right path. So I changed the name to reflect it's actual behavior to better > indicate what it was doing. I just added a flag to make an ingrained > side-affect less ingrained. > > This really comes across as a case supporting copying a method, which I > have fundamental issues with. Maybe I'm not really seeing the value in > strictly maintaining a server-only API since we're not supporting wire > compatibility yet. > > Josh Elser wrote: > You hit exactly the reason I'm getting hung up on it. I'd like to start > focusing on wire compatibility more. While we don't have hard/fast rules yet, > I'd like to avoid making such changes only when there is no other option. It > would be a shame if this was the only change that kept a 1.6 master from > talking to a 1.7 tserver. Obviously, I doubt this is actually true, but I'd > rather not find out the hard way. > > Sean Busbey wrote: > Please do not break wire compatibility. I'd like to start testing rolling > upgrades and doing so will preclude it. Added back removed api, marked as deprecated so we can phase it out in a release we're comfortable breaking wire compatibility. > On Oct. 27, 2014, 8:29 p.m., Josh Elser wrote: > > server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneIntoTable.java, > > line 162 > > <https://reviews.apache.org/r/27198/diff/1/?file=733413#file733413line162> > > > > Won't this fail if you try cloneInto with an empty table as the source? > > John Vines wrote: > The table may be empty, but there will be the default tablet. I'll be > sure to add tests for this in the IT though to verify. > > Josh Elser wrote: > Thanks, I know there will be the default tablet, but you wouldn't have a > file column right away. I didn't look deep enough to figure out if that would > actually be problematic. > > John Vines wrote: > the ke is determined solely by the existance of the prev row column, > which any default tablet will have. > > Having no files just generates an empty map of files to import, so it's > effectively a noop. Added a test > On Oct. 27, 2014, 8:29 p.m., Josh Elser wrote: > > server/master/src/main/java/org/apache/accumulo/master/FateServiceHandler.java, > > line 235 > > <https://reviews.apache.org/r/27198/diff/1/?file=733412#file733412line235> > > > > 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? > > John Vines wrote: > While I don't understand a use case for wanting metadata tablets to be > referenced in a standard table, I see no reason to prevent it. > > Josh Elser wrote: > So, root table is only precluded as the source table because it's backed > by ZK and not HDFS files? > > John Vines wrote: > I precluded it because that's what clone table was doing. We can see > about opening up to that though. Can't clone the root files because they're managed by them existing, which means you can't link to them. - John ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/27198/#review58675 ----------------------------------------------------------- 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 > >