You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@accumulo.apache.org by Christopher Tubbs <ct...@apache.org> on 2013/11/01 03:01:49 UTC

Review Request 15166: ACCUMULO-802 Tablespaces

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

Review request for accumulo.


Bugs: ACCUMULO-802
    https://issues.apache.org/jira/browse/ACCUMULO-802


Repository: accumulo


Description
-------

ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)


Diffs
-----

  core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
  core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
  core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
  core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
  core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
  core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
  core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
  core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
  core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
  core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
  core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
  core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
  core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
  core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
  core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
  core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
  core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
  core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
  core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
  core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
  core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
  core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
  core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
  core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
  core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
  core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
  core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
  core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
  core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
  core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
  core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
  core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
  core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
  core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
  server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
  server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
  server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
  server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
  server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
  server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
  server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
  server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
  server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
  server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
  server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
  server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
  server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
  server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
  server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
  server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
  server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
  server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
  server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
  server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
  server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
  server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
  server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
  server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
  server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
  server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
  server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
  server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
  server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
  server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
  server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
  server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
  server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
  server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
  server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
  test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
  test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
  test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
  test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
  test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
  test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
  test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
  test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
  test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
  test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
  test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
  test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
  test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
  test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
  test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
  test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
  test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
  test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 

Diff: https://reviews.apache.org/r/15166/diff/


Testing
-------


Thanks,

Christopher Tubbs


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Christopher Tubbs <ct...@apache.org>.

> On Nov. 1, 2013, 6:19 p.m., John Vines wrote:
> > core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java, line 24
> > <https://reviews.apache.org/r/15166/diff/1/?file=376077#file376077line24>
> >
> >     If we make TableNamespaceExistException extend AccumuloExtension we can get around a lot of api compatibility issues
> 
> Christopher Tubbs wrote:
>     That doesn't follow the existing pattern with TableExistsException, and the Exception does not appear to be thrown in any existing API. To what API-compatibility issues are you referring?
> 
> John Vines wrote:
>     There is an issue with TableNamespaceNotFoundException and I think all 3 of these exceptions should be in the same family, i.e. implemented by similar means.
> 
> Sean Hickey wrote:
>     Like Christopher pointed out, I was just following what Tables did with their exceptions. If you think that should be different, then we might want to change the table exceptions too.

I think this can be addressed later. I think that where the rare places where a TableNamespaceNotFoundException is wrapped with a RuntimeException, it is sufficient, because namespace operations should be rare, and namespaces can generally be stable. It's not that I think it shouldn't be addressed... I just think it's not a priority.


- Christopher


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


On Oct. 31, 2013, 10:01 p.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Oct. 31, 2013, 10:01 p.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Christopher Tubbs <ct...@apache.org>.

> On Nov. 1, 2013, 6:19 p.m., John Vines wrote:
> > server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java, line 311
> > <https://reviews.apache.org/r/15166/diff/1/?file=376139#file376139line311>
> >
> >     Part of is wondering we want to change the hasTablePermission(blah) to hit both the table and the namespace
> 
> Christopher Tubbs wrote:
>     I'm a big fan of changing this whole pluggable permissions model to one where we have a simple:
>     boolean canPerform(User user, Action action); // possibly with an optional "environment" as an arbitrary property map
>     
>     With a few defined Actions, like TableRenameAction(oldName, newName), etc. and User with a strict interface like "boolean isAuthenticated(); String getPrincipal();", the pluggable permissions handler becomes an operations-based implementation of *policy*, rather than a dumb storage for a difficult to extend set of permissions *tokens*. The default implementation will still be token based, but the API will be much cleaner, much more extensible/pluggable, and wouldn't change when we add new features like this.
>     
>     Had we done that, this would be trivial to extend in a sensible way.
> 
> John Vines wrote:
>     It's still trivial now (more trivial than the current implementation), you're just using this circumstance to gripe about how you want things to be, we have other tickets for that. That doesn't change things for this release.
>     
>     This change simply adds a namespace argument to the hasTablePermission or _hasTablePermission call that can be propagated throughout with simple signature changing.
> 
> Sean Hickey wrote:
>     It might prove convenient to have hasTablePermission to check both, but the structure I was following was that each security check (all the "canDoSomething" functions) had a separate check for the table and system permissions that might allow it to do that. Because of that, the permission that might allow you do something might be different for the table vs namespace vs system. This might be from me misunderstanding the permissions model, but for example, when you check for canCompact(table), we're checking for ALTER_TABLE in both System and Namespace permissions but then WRITE for Table permissions. If we change it so that hasTablePermission checks for namespace (and maybe even system) permissions, we'll just need to realize what that specific table permission might translate to for the higher level permissions.

JV, yes, I took the opportunity to muse, following what looked to be a musing yourself. If you were proposing a change, and not simply musing, I'm not sure I understand what specifically you are suggesting, if it's not a permissions policy issue... (eg. which permissions are required to allow the specified action).


- Christopher


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


On Oct. 31, 2013, 10:01 p.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Oct. 31, 2013, 10:01 p.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Christopher Tubbs <ct...@apache.org>.

> On Nov. 1, 2013, 6:19 p.m., John Vines wrote:
> > server/master/src/main/java/org/apache/accumulo/master/Master.java, line 953
> > <https://reviews.apache.org/r/15166/diff/1/?file=376147#file376147line953>
> >
> >     I think we should have dedicated thrift returns for these. Or at least dedicated thrift error codes
> 
> Sean Hickey wrote:
>     Ya, I wasn't sure how to handle that exactly. Looking back at the code, there is a TableNotFoundException that's a Thrift Exception, so we should probably just make a similar one for namespaces.

This is internal implementation details. It's currently functioning, and I don't think it should hold up the feature. I'm dropping this.


- Christopher


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


On Oct. 31, 2013, 10:01 p.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Oct. 31, 2013, 10:01 p.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Christopher Tubbs <ct...@apache.org>.

> On Nov. 1, 2013, 6:19 p.m., John Vines wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java, line 335
> > <https://reviews.apache.org/r/15166/diff/1/?file=376084#file376084line335>
> >
> >     RuntimeException should not be used here
> 
> John Vines wrote:
>     How was this fixed?

The method doesn't exist.


- Christopher


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


On Oct. 31, 2013, 10:01 p.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Oct. 31, 2013, 10:01 p.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Christopher Tubbs <ct...@apache.org>.

> On Nov. 1, 2013, 6:19 p.m., John Vines wrote:
> > core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java, line 26
> > <https://reviews.apache.org/r/15166/diff/1/?file=376101#file376101line26>
> >
> >     I think we also need BULK_IMPORT for bulk importing to namespace tables, DROP for dropping the entire namespace, and possibly GRANT_TABLE (though I can see that being iffy)
> 
> Sean Hickey wrote:
>     I thought about adding BULK_IMPORT, but I didn't add it because I don't think I added bulk importing for namespaces. I made DROP_NAMESPACE in SystemPermission, but I agree that it should also be in TableNamespacePermission (because TablePermission has DROP_TABLE). I was a little confused how permissions were supposed to work in general, so I don't know how well GRANT_TABLE would work as a namespace permission.
> 
> Christopher Tubbs wrote:
>     There's some confusion here, because it's not clear how these permissions are supposed to be used in the policy for performing operations (specifically, what they mean, and how they are inherited, and whether inheritance changes their meaning). I think we should keep them minimal for now, pending a comprehensive policy-based model in the next release that allow users to manage permissions in a more robust way. (ACCUMULO-1632).

I don't think we *need* BULK_IMPORT to push this feature. That can be added later, as an improvement.


- Christopher


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


On Oct. 31, 2013, 10:01 p.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Oct. 31, 2013, 10:01 p.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Christopher Tubbs <ct...@apache.org>.

> On Nov. 1, 2013, 6:19 p.m., John Vines wrote:
> > core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java, line 24
> > <https://reviews.apache.org/r/15166/diff/1/?file=376077#file376077line24>
> >
> >     If we make TableNamespaceExistException extend AccumuloExtension we can get around a lot of api compatibility issues

That doesn't follow the existing pattern with TableExistsException, and the Exception does not appear to be thrown in any existing API. To what API-compatibility issues are you referring?


> On Nov. 1, 2013, 6:19 p.m., John Vines wrote:
> > core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java, line 135
> > <https://reviews.apache.org/r/15166/diff/1/?file=376093#file376093line135>
> >
> >     This is also inconsistent with the public API

In what way? I've changed it to SecurityErrorCode.Table_NAMESPACE_DOESNT_EXIST. Is that what you mean?


> On Nov. 1, 2013, 6:19 p.m., John Vines wrote:
> > core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java, line 181
> > <https://reviews.apache.org/r/15166/diff/1/?file=376096#file376096line181>
> >
> >     Ticket should be made for this

Created ACCUMULO-1865


> On Nov. 1, 2013, 6:19 p.m., John Vines wrote:
> > core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java, line 41
> > <https://reviews.apache.org/r/15166/diff/1/?file=376098#file376098line41>
> >
> >     Doesn't there need to be a corresponding TABLE_NAMESPACE_ALREADY_EXISTS?

No, there is no security-related error that can fail an operation because something exists. Those may still be errors, but not security errors. Likewise, there's no SecurityErrorCode.TABLE_ALREADY_EXISTS either.


> On Nov. 1, 2013, 6:19 p.m., John Vines wrote:
> > server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java, line 431
> > <https://reviews.apache.org/r/15166/diff/1/?file=376130#file376130line431>
> >
> >     This error could cause confusion when you have a table in the default namespace with the same name as a namespace (if that's possible?)

I don't think so, not since the "why" string explicitly says "Could not find table namespace while getting configuration."


> On Nov. 1, 2013, 6:19 p.m., John Vines wrote:
> > server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java, line 29
> > <https://reviews.apache.org/r/15166/diff/1/?file=376133#file376133line29>
> >
> >     Why is this overriding the logging?

Because TableConfWatcher does. If we don't need to do that, we can create a separate ticket.


> On Nov. 1, 2013, 6:19 p.m., John Vines wrote:
> > server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java, line 311
> > <https://reviews.apache.org/r/15166/diff/1/?file=376139#file376139line311>
> >
> >     Part of is wondering we want to change the hasTablePermission(blah) to hit both the table and the namespace

I'm a big fan of changing this whole pluggable permissions model to one where we have a simple:
boolean canPerform(User user, Action action); // possibly with an optional "environment" as an arbitrary property map

With a few defined Actions, like TableRenameAction(oldName, newName), etc. and User with a strict interface like "boolean isAuthenticated(); String getPrincipal();", the pluggable permissions handler becomes an operations-based implementation of *policy*, rather than a dumb storage for a difficult to extend set of permissions *tokens*. The default implementation will still be token based, but the API will be much cleaner, much more extensible/pluggable, and wouldn't change when we add new features like this.

Had we done that, this would be trivial to extend in a sensible way.


> On Nov. 1, 2013, 6:19 p.m., John Vines wrote:
> > server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java, line 309
> > <https://reviews.apache.org/r/15166/diff/1/?file=376152#file376152line309>
> >
> >     Locking on NamespaceIds for compactions, and many other FATE operations, could be a nasty bottleneck. Do we really need to lock on them?!

I'm not sure. Probably not, but could there be problems with moving tables between namespaces in some cases if not? Or, perhaps preventing that would be a better way to go.


- Christopher


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


On Oct. 31, 2013, 10:01 p.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Oct. 31, 2013, 10:01 p.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Christopher Tubbs <ct...@apache.org>.

> On Nov. 1, 2013, 6:19 p.m., John Vines wrote:
> > core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java, line 26
> > <https://reviews.apache.org/r/15166/diff/1/?file=376101#file376101line26>
> >
> >     I think we also need BULK_IMPORT for bulk importing to namespace tables, DROP for dropping the entire namespace, and possibly GRANT_TABLE (though I can see that being iffy)
> 
> Sean Hickey wrote:
>     I thought about adding BULK_IMPORT, but I didn't add it because I don't think I added bulk importing for namespaces. I made DROP_NAMESPACE in SystemPermission, but I agree that it should also be in TableNamespacePermission (because TablePermission has DROP_TABLE). I was a little confused how permissions were supposed to work in general, so I don't know how well GRANT_TABLE would work as a namespace permission.

There's some confusion here, because it's not clear how these permissions are supposed to be used in the policy for performing operations (specifically, what they mean, and how they are inherited, and whether inheritance changes their meaning). I think we should keep them minimal for now, pending a comprehensive policy-based model in the next release that allow users to manage permissions in a more robust way. (ACCUMULO-1632).


> On Nov. 1, 2013, 6:19 p.m., John Vines wrote:
> > server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java, line 29
> > <https://reviews.apache.org/r/15166/diff/1/?file=376133#file376133line29>
> >
> >     Why is this overriding the logging?
> 
> Christopher Tubbs wrote:
>     Because TableConfWatcher does. If we don't need to do that, we can create a separate ticket.
> 
> John Vines wrote:
>     Ticket opened

Ticket number?


> On Nov. 1, 2013, 6:19 p.m., John Vines wrote:
> > server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java, line 431
> > <https://reviews.apache.org/r/15166/diff/1/?file=376130#file376130line431>
> >
> >     This error could cause confusion when you have a table in the default namespace with the same name as a namespace (if that's possible?)
> 
> Christopher Tubbs wrote:
>     I don't think so, not since the "why" string explicitly says "Could not find table namespace while getting configuration."
> 
> John Vines wrote:
>     Resorting to parsing strings to determine errors programmatically is pretty crummy for end users. Also, looking through this code path shows that TableNamespaceOperationsImpl#getProperties doesn't work right since it looks for the type NOTFOUND, which this error isn't setting. Perhaps we should make TableOperation a combination of Table and TableNamespace options in order to support backwards compatibility while maintaining a solid set of easily decipherable errors.
> 
> Sean Hickey wrote:
>     Well, if you really want to be able to easily find it programmatically, it might be best to just make a new type of exception (like ThriftNamespaceOperationException or something) because all the namespace stuff is new and won't break any backwards compatibility. I was just trying to reuse some existing stuff, especially with the thrift calls because I was brand new to thrift.

I don't think users should parse error messages. But, your initial comment wasn't about being able to programmatically determine the error... it was about potential for confusion. My comment was in that regard.

I don't want to create a bunch of new thrift exceptions at this point... but it's an option. For now, I can fix the NOTFOUND oversight, so a better exception is thrown in the client API.


- Christopher


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


On Oct. 31, 2013, 10:01 p.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Oct. 31, 2013, 10:01 p.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Sean Hickey <ta...@gmail.com>.

> On Nov. 1, 2013, 10:19 p.m., John Vines wrote:
> > core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java, line 26
> > <https://reviews.apache.org/r/15166/diff/1/?file=376101#file376101line26>
> >
> >     I think we also need BULK_IMPORT for bulk importing to namespace tables, DROP for dropping the entire namespace, and possibly GRANT_TABLE (though I can see that being iffy)

I thought about adding BULK_IMPORT, but I didn't add it because I don't think I added bulk importing for namespaces. I made DROP_NAMESPACE in SystemPermission, but I agree that it should also be in TableNamespacePermission (because TablePermission has DROP_TABLE). I was a little confused how permissions were supposed to work in general, so I don't know how well GRANT_TABLE would work as a namespace permission.


> On Nov. 1, 2013, 10:19 p.m., John Vines wrote:
> > server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java, line 311
> > <https://reviews.apache.org/r/15166/diff/1/?file=376139#file376139line311>
> >
> >     Part of is wondering we want to change the hasTablePermission(blah) to hit both the table and the namespace
> 
> Christopher Tubbs wrote:
>     I'm a big fan of changing this whole pluggable permissions model to one where we have a simple:
>     boolean canPerform(User user, Action action); // possibly with an optional "environment" as an arbitrary property map
>     
>     With a few defined Actions, like TableRenameAction(oldName, newName), etc. and User with a strict interface like "boolean isAuthenticated(); String getPrincipal();", the pluggable permissions handler becomes an operations-based implementation of *policy*, rather than a dumb storage for a difficult to extend set of permissions *tokens*. The default implementation will still be token based, but the API will be much cleaner, much more extensible/pluggable, and wouldn't change when we add new features like this.
>     
>     Had we done that, this would be trivial to extend in a sensible way.
> 
> John Vines wrote:
>     It's still trivial now (more trivial than the current implementation), you're just using this circumstance to gripe about how you want things to be, we have other tickets for that. That doesn't change things for this release.
>     
>     This change simply adds a namespace argument to the hasTablePermission or _hasTablePermission call that can be propagated throughout with simple signature changing.

It might prove convenient to have hasTablePermission to check both, but the structure I was following was that each security check (all the "canDoSomething" functions) had a separate check for the table and system permissions that might allow it to do that. Because of that, the permission that might allow you do something might be different for the table vs namespace vs system. This might be from me misunderstanding the permissions model, but for example, when you check for canCompact(table), we're checking for ALTER_TABLE in both System and Namespace permissions but then WRITE for Table permissions. If we change it so that hasTablePermission checks for namespace (and maybe even system) permissions, we'll just need to realize what that specific table permission might translate to for the higher level permissions.


> On Nov. 1, 2013, 10:19 p.m., John Vines wrote:
> > server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java, line 309
> > <https://reviews.apache.org/r/15166/diff/1/?file=376152#file376152line309>
> >
> >     Locking on NamespaceIds for compactions, and many other FATE operations, could be a nasty bottleneck. Do we really need to lock on them?!
> 
> Christopher Tubbs wrote:
>     I'm not sure. Probably not, but could there be problems with moving tables between namespaces in some cases if not? Or, perhaps preventing that would be a better way to go.
> 
> John Vines wrote:
>     I'm sure some operations need to lock namespaces, but not as many as we do now. Possibly a multi-read/write lock is needed

Maybe not, but I just didn't want to introduce any concurrency issues. For most table operations, it does only grab a read-lock on the namespace (so other people just can't change the namespace while you're changing a table). 


> On Nov. 1, 2013, 10:19 p.m., John Vines wrote:
> > server/master/src/main/java/org/apache/accumulo/master/Master.java, line 953
> > <https://reviews.apache.org/r/15166/diff/1/?file=376147#file376147line953>
> >
> >     I think we should have dedicated thrift returns for these. Or at least dedicated thrift error codes

Ya, I wasn't sure how to handle that exactly. Looking back at the code, there is a TableNotFoundException that's a Thrift Exception, so we should probably just make a similar one for namespaces.


> On Nov. 1, 2013, 10:19 p.m., John Vines wrote:
> > server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java, line 431
> > <https://reviews.apache.org/r/15166/diff/1/?file=376130#file376130line431>
> >
> >     This error could cause confusion when you have a table in the default namespace with the same name as a namespace (if that's possible?)
> 
> Christopher Tubbs wrote:
>     I don't think so, not since the "why" string explicitly says "Could not find table namespace while getting configuration."
> 
> John Vines wrote:
>     Resorting to parsing strings to determine errors programmatically is pretty crummy for end users. Also, looking through this code path shows that TableNamespaceOperationsImpl#getProperties doesn't work right since it looks for the type NOTFOUND, which this error isn't setting. Perhaps we should make TableOperation a combination of Table and TableNamespace options in order to support backwards compatibility while maintaining a solid set of easily decipherable errors.

Well, if you really want to be able to easily find it programmatically, it might be best to just make a new type of exception (like ThriftNamespaceOperationException or something) because all the namespace stuff is new and won't break any backwards compatibility. I was just trying to reuse some existing stuff, especially with the thrift calls because I was brand new to thrift.


> On Nov. 1, 2013, 10:19 p.m., John Vines wrote:
> > core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java, line 24
> > <https://reviews.apache.org/r/15166/diff/1/?file=376077#file376077line24>
> >
> >     If we make TableNamespaceExistException extend AccumuloExtension we can get around a lot of api compatibility issues
> 
> Christopher Tubbs wrote:
>     That doesn't follow the existing pattern with TableExistsException, and the Exception does not appear to be thrown in any existing API. To what API-compatibility issues are you referring?
> 
> John Vines wrote:
>     There is an issue with TableNamespaceNotFoundException and I think all 3 of these exceptions should be in the same family, i.e. implemented by similar means.

Like Christopher pointed out, I was just following what Tables did with their exceptions. If you think that should be different, then we might want to change the table exceptions too.


- Sean


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


On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Nov. 1, 2013, 2:01 a.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by John Vines <vi...@apache.org>.

> On Nov. 1, 2013, 10:19 p.m., John Vines wrote:
> > core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java, line 24
> > <https://reviews.apache.org/r/15166/diff/1/?file=376077#file376077line24>
> >
> >     If we make TableNamespaceExistException extend AccumuloExtension we can get around a lot of api compatibility issues
> 
> Christopher Tubbs wrote:
>     That doesn't follow the existing pattern with TableExistsException, and the Exception does not appear to be thrown in any existing API. To what API-compatibility issues are you referring?

There is an issue with TableNamespaceNotFoundException and I think all 3 of these exceptions should be in the same family, i.e. implemented by similar means.


> On Nov. 1, 2013, 10:19 p.m., John Vines wrote:
> > core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java, line 135
> > <https://reviews.apache.org/r/15166/diff/1/?file=376093#file376093line135>
> >
> >     This is also inconsistent with the public API
> 
> Christopher Tubbs wrote:
>     In what way? I've changed it to SecurityErrorCode.Table_NAMESPACE_DOESNT_EXIST. Is that what you mean?

That is


> On Nov. 1, 2013, 10:19 p.m., John Vines wrote:
> > server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java, line 431
> > <https://reviews.apache.org/r/15166/diff/1/?file=376130#file376130line431>
> >
> >     This error could cause confusion when you have a table in the default namespace with the same name as a namespace (if that's possible?)
> 
> Christopher Tubbs wrote:
>     I don't think so, not since the "why" string explicitly says "Could not find table namespace while getting configuration."

Resorting to parsing strings to determine errors programmatically is pretty crummy for end users. Also, looking through this code path shows that TableNamespaceOperationsImpl#getProperties doesn't work right since it looks for the type NOTFOUND, which this error isn't setting. Perhaps we should make TableOperation a combination of Table and TableNamespace options in order to support backwards compatibility while maintaining a solid set of easily decipherable errors.


> On Nov. 1, 2013, 10:19 p.m., John Vines wrote:
> > server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java, line 29
> > <https://reviews.apache.org/r/15166/diff/1/?file=376133#file376133line29>
> >
> >     Why is this overriding the logging?
> 
> Christopher Tubbs wrote:
>     Because TableConfWatcher does. If we don't need to do that, we can create a separate ticket.

Ticket opened


> On Nov. 1, 2013, 10:19 p.m., John Vines wrote:
> > server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java, line 309
> > <https://reviews.apache.org/r/15166/diff/1/?file=376152#file376152line309>
> >
> >     Locking on NamespaceIds for compactions, and many other FATE operations, could be a nasty bottleneck. Do we really need to lock on them?!
> 
> Christopher Tubbs wrote:
>     I'm not sure. Probably not, but could there be problems with moving tables between namespaces in some cases if not? Or, perhaps preventing that would be a better way to go.

I'm sure some operations need to lock namespaces, but not as many as we do now. Possibly a multi-read/write lock is needed


> On Nov. 1, 2013, 10:19 p.m., John Vines wrote:
> > server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java, line 311
> > <https://reviews.apache.org/r/15166/diff/1/?file=376139#file376139line311>
> >
> >     Part of is wondering we want to change the hasTablePermission(blah) to hit both the table and the namespace
> 
> Christopher Tubbs wrote:
>     I'm a big fan of changing this whole pluggable permissions model to one where we have a simple:
>     boolean canPerform(User user, Action action); // possibly with an optional "environment" as an arbitrary property map
>     
>     With a few defined Actions, like TableRenameAction(oldName, newName), etc. and User with a strict interface like "boolean isAuthenticated(); String getPrincipal();", the pluggable permissions handler becomes an operations-based implementation of *policy*, rather than a dumb storage for a difficult to extend set of permissions *tokens*. The default implementation will still be token based, but the API will be much cleaner, much more extensible/pluggable, and wouldn't change when we add new features like this.
>     
>     Had we done that, this would be trivial to extend in a sensible way.

It's still trivial now (more trivial than the current implementation), you're just using this circumstance to gripe about how you want things to be, we have other tickets for that. That doesn't change things for this release.

This change simply adds a namespace argument to the hasTablePermission or _hasTablePermission call that can be propagated throughout with simple signature changing.


- John


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


On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Nov. 1, 2013, 2:01 a.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by John Vines <vi...@apache.org>.

> On Nov. 1, 2013, 10:19 p.m., John Vines wrote:
> > server/master/src/main/java/org/apache/accumulo/master/Master.java, line 953
> > <https://reviews.apache.org/r/15166/diff/1/?file=376147#file376147line953>
> >
> >     I think we should have dedicated thrift returns for these. Or at least dedicated thrift error codes
> 
> Sean Hickey wrote:
>     Ya, I wasn't sure how to handle that exactly. Looking back at the code, there is a TableNotFoundException that's a Thrift Exception, so we should probably just make a similar one for namespaces.
> 
> Christopher Tubbs wrote:
>     This is internal implementation details. It's currently functioning, and I don't think it should hold up the feature. I'm dropping this.

I've been comparing and I think some of the exceptions should be in line with invalid table names, of which it is actually. So I'll file a separate ticket for that, I guess.

However, Rename has a catch for NamespaceNotFoundException, but nothing in the Repo creation throws a NamespaceNotFoundException, so there's a bug there. All the other table operations which catch it are good though.


- John


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


On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Nov. 1, 2013, 2:01 a.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Christopher Tubbs <ct...@apache.org>.

> On Nov. 1, 2013, 6:19 p.m., John Vines wrote:
> > server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java, line 311
> > <https://reviews.apache.org/r/15166/diff/1/?file=376139#file376139line311>
> >
> >     Part of is wondering we want to change the hasTablePermission(blah) to hit both the table and the namespace
> 
> Christopher Tubbs wrote:
>     I'm a big fan of changing this whole pluggable permissions model to one where we have a simple:
>     boolean canPerform(User user, Action action); // possibly with an optional "environment" as an arbitrary property map
>     
>     With a few defined Actions, like TableRenameAction(oldName, newName), etc. and User with a strict interface like "boolean isAuthenticated(); String getPrincipal();", the pluggable permissions handler becomes an operations-based implementation of *policy*, rather than a dumb storage for a difficult to extend set of permissions *tokens*. The default implementation will still be token based, but the API will be much cleaner, much more extensible/pluggable, and wouldn't change when we add new features like this.
>     
>     Had we done that, this would be trivial to extend in a sensible way.
> 
> John Vines wrote:
>     It's still trivial now (more trivial than the current implementation), you're just using this circumstance to gripe about how you want things to be, we have other tickets for that. That doesn't change things for this release.
>     
>     This change simply adds a namespace argument to the hasTablePermission or _hasTablePermission call that can be propagated throughout with simple signature changing.
> 
> Sean Hickey wrote:
>     It might prove convenient to have hasTablePermission to check both, but the structure I was following was that each security check (all the "canDoSomething" functions) had a separate check for the table and system permissions that might allow it to do that. Because of that, the permission that might allow you do something might be different for the table vs namespace vs system. This might be from me misunderstanding the permissions model, but for example, when you check for canCompact(table), we're checking for ALTER_TABLE in both System and Namespace permissions but then WRITE for Table permissions. If we change it so that hasTablePermission checks for namespace (and maybe even system) permissions, we'll just need to realize what that specific table permission might translate to for the higher level permissions.
> 
> Christopher Tubbs wrote:
>     JV, yes, I took the opportunity to muse, following what looked to be a musing yourself. If you were proposing a change, and not simply musing, I'm not sure I understand what specifically you are suggesting, if it's not a permissions policy issue... (eg. which permissions are required to allow the specified action).
> 
> John Vines wrote:
>     I'm suggesting instead of replicating every single Table operation and table permission call to reflect table namespaces that we change the table operations to do both the individual table and the table namespace lookup. It should be adding a _hasTableNamespacePermission and changing hasTablePermission to call both _hasTablePermission and _hasTableNamespacePermission (or changing _hasTablePermission to do both the Table and TableNamespace checks, I could go either way currently). Then every single can* operation can remain unchanged. This is critical because any other can* checks could easily slip up the logic or miss a namespace, which would not be good.

I don't understand the change you're proposing. Can you mock up some pseudo-code on the latest diff in my github? In the meantime, I'm closing this, deferring it to future work (JIRA).


- Christopher


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


On Oct. 31, 2013, 10:01 p.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Oct. 31, 2013, 10:01 p.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by John Vines <vi...@apache.org>.

> On Nov. 1, 2013, 10:19 p.m., John Vines wrote:
> > core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java, line 24
> > <https://reviews.apache.org/r/15166/diff/1/?file=376077#file376077line24>
> >
> >     If we make TableNamespaceExistException extend AccumuloExtension we can get around a lot of api compatibility issues
> 
> Christopher Tubbs wrote:
>     That doesn't follow the existing pattern with TableExistsException, and the Exception does not appear to be thrown in any existing API. To what API-compatibility issues are you referring?
> 
> John Vines wrote:
>     There is an issue with TableNamespaceNotFoundException and I think all 3 of these exceptions should be in the same family, i.e. implemented by similar means.
> 
> Sean Hickey wrote:
>     Like Christopher pointed out, I was just following what Tables did with their exceptions. If you think that should be different, then we might want to change the table exceptions too.
> 
> Christopher Tubbs wrote:
>     I think this can be addressed later. I think that where the rare places where a TableNamespaceNotFoundException is wrapped with a RuntimeException, it is sufficient, because namespace operations should be rare, and namespaces can generally be stable. It's not that I think it shouldn't be addressed... I just think it's not a priority.

I disagree. Wrapping legitimate exceptions in RTEs A. lead to shitty user APIs and B. lead to APIs that will have to be deprecated in order to implement them properly


> On Nov. 1, 2013, 10:19 p.m., John Vines wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java, line 335
> > <https://reviews.apache.org/r/15166/diff/1/?file=376084#file376084line335>
> >
> >     RuntimeException should not be used here

How was this fixed?


> On Nov. 1, 2013, 10:19 p.m., John Vines wrote:
> > server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java, line 431
> > <https://reviews.apache.org/r/15166/diff/1/?file=376130#file376130line431>
> >
> >     This error could cause confusion when you have a table in the default namespace with the same name as a namespace (if that's possible?)
> 
> Christopher Tubbs wrote:
>     I don't think so, not since the "why" string explicitly says "Could not find table namespace while getting configuration."
> 
> John Vines wrote:
>     Resorting to parsing strings to determine errors programmatically is pretty crummy for end users. Also, looking through this code path shows that TableNamespaceOperationsImpl#getProperties doesn't work right since it looks for the type NOTFOUND, which this error isn't setting. Perhaps we should make TableOperation a combination of Table and TableNamespace options in order to support backwards compatibility while maintaining a solid set of easily decipherable errors.
> 
> Sean Hickey wrote:
>     Well, if you really want to be able to easily find it programmatically, it might be best to just make a new type of exception (like ThriftNamespaceOperationException or something) because all the namespace stuff is new and won't break any backwards compatibility. I was just trying to reuse some existing stuff, especially with the thrift calls because I was brand new to thrift.
> 
> Christopher Tubbs wrote:
>     I don't think users should parse error messages. But, your initial comment wasn't about being able to programmatically determine the error... it was about potential for confusion. My comment was in that regard.
>     
>     I don't want to create a bunch of new thrift exceptions at this point... but it's an option. For now, I can fix the NOTFOUND oversight, so a better exception is thrown in the client API.

This also seems to be marked as resolved by not fixed in the 802 branch...


> On Nov. 1, 2013, 10:19 p.m., John Vines wrote:
> > server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java, line 29
> > <https://reviews.apache.org/r/15166/diff/1/?file=376133#file376133line29>
> >
> >     Why is this overriding the logging?
> 
> Christopher Tubbs wrote:
>     Because TableConfWatcher does. If we don't need to do that, we can create a separate ticket.
> 
> John Vines wrote:
>     Ticket opened
> 
> Christopher Tubbs wrote:
>     Ticket number?

ACCUMULO-1871


> On Nov. 1, 2013, 10:19 p.m., John Vines wrote:
> > server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java, line 311
> > <https://reviews.apache.org/r/15166/diff/1/?file=376139#file376139line311>
> >
> >     Part of is wondering we want to change the hasTablePermission(blah) to hit both the table and the namespace
> 
> Christopher Tubbs wrote:
>     I'm a big fan of changing this whole pluggable permissions model to one where we have a simple:
>     boolean canPerform(User user, Action action); // possibly with an optional "environment" as an arbitrary property map
>     
>     With a few defined Actions, like TableRenameAction(oldName, newName), etc. and User with a strict interface like "boolean isAuthenticated(); String getPrincipal();", the pluggable permissions handler becomes an operations-based implementation of *policy*, rather than a dumb storage for a difficult to extend set of permissions *tokens*. The default implementation will still be token based, but the API will be much cleaner, much more extensible/pluggable, and wouldn't change when we add new features like this.
>     
>     Had we done that, this would be trivial to extend in a sensible way.
> 
> John Vines wrote:
>     It's still trivial now (more trivial than the current implementation), you're just using this circumstance to gripe about how you want things to be, we have other tickets for that. That doesn't change things for this release.
>     
>     This change simply adds a namespace argument to the hasTablePermission or _hasTablePermission call that can be propagated throughout with simple signature changing.
> 
> Sean Hickey wrote:
>     It might prove convenient to have hasTablePermission to check both, but the structure I was following was that each security check (all the "canDoSomething" functions) had a separate check for the table and system permissions that might allow it to do that. Because of that, the permission that might allow you do something might be different for the table vs namespace vs system. This might be from me misunderstanding the permissions model, but for example, when you check for canCompact(table), we're checking for ALTER_TABLE in both System and Namespace permissions but then WRITE for Table permissions. If we change it so that hasTablePermission checks for namespace (and maybe even system) permissions, we'll just need to realize what that specific table permission might translate to for the higher level permissions.
> 
> Christopher Tubbs wrote:
>     JV, yes, I took the opportunity to muse, following what looked to be a musing yourself. If you were proposing a change, and not simply musing, I'm not sure I understand what specifically you are suggesting, if it's not a permissions policy issue... (eg. which permissions are required to allow the specified action).

I'm suggesting instead of replicating every single Table operation and table permission call to reflect table namespaces that we change the table operations to do both the individual table and the table namespace lookup. It should be adding a _hasTableNamespacePermission and changing hasTablePermission to call both _hasTablePermission and _hasTableNamespacePermission (or changing _hasTablePermission to do both the Table and TableNamespace checks, I could go either way currently). Then every single can* operation can remain unchanged. This is critical because any other can* checks could easily slip up the logic or miss a namespace, which would not be good.


- John


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


On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Nov. 1, 2013, 2:01 a.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by John Vines <vi...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/15166/#review28029
-----------------------------------------------------------



core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java
<https://reviews.apache.org/r/15166/#comment54506>

    If we make TableNamespaceExistException extend AccumuloExtension we can get around a lot of api compatibility issues



core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java
<https://reviews.apache.org/r/15166/#comment54507>

    If we make TableNamespaceNotEmptyException extend AccumuloExtension we can get around a lot of api compatibility issues



core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java
<https://reviews.apache.org/r/15166/#comment54508>

    If we make TableNamespaceNotFoundException extend AccumuloExtension we can get around a lot of api compatibility issues



core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java
<https://reviews.apache.org/r/15166/#comment54514>

    RuntimeException should not be used here



core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java
<https://reviews.apache.org/r/15166/#comment54511>

    This is also inconsistent with the public API



core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java
<https://reviews.apache.org/r/15166/#comment54512>

    This is also inconsistent with the public API



core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java
<https://reviews.apache.org/r/15166/#comment54513>

    This is also inconsistent with the public API



core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java
<https://reviews.apache.org/r/15166/#comment54518>

    Ticket should be made for this



core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java
<https://reviews.apache.org/r/15166/#comment54519>

    This can probably be deleted?



core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java
<https://reviews.apache.org/r/15166/#comment54530>

    Doesn't there need to be a corresponding TABLE_NAMESPACE_ALREADY_EXISTS?



core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java
<https://reviews.apache.org/r/15166/#comment54533>

    I think we also need BULK_IMPORT for bulk importing to namespace tables, DROP for dropping the entire namespace, and possibly GRANT_TABLE (though I can see that being iffy)



server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java
<https://reviews.apache.org/r/15166/#comment54541>

    This error could cause confusion when you have a table in the default namespace with the same name as a namespace (if that's possible?)



server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java
<https://reviews.apache.org/r/15166/#comment54542>

    Why is this overriding the logging?



server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java
<https://reviews.apache.org/r/15166/#comment54547>

    Part of is wondering we want to change the hasTablePermission(blah) to hit both the table and the namespace



server/master/src/main/java/org/apache/accumulo/master/Master.java
<https://reviews.apache.org/r/15166/#comment54538>

    I think we should have dedicated thrift returns for these. Or at least dedicated thrift error codes



server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java
<https://reviews.apache.org/r/15166/#comment54548>

    Locking on NamespaceIds for compactions, and many other FATE operations, could be a nasty bottleneck. Do we really need to lock on them?!


Still learning Review Board, so I might have done some thing weird. Also, giant patch is exhausting.

- John Vines


On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Nov. 1, 2013, 2:01 a.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Christopher Tubbs <ct...@apache.org>.

> On Nov. 8, 2013, 2:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java, line 24
> > <https://reviews.apache.org/r/15166/diff/1/?file=376077#file376077line24>
> >
> >     I would like to see this (and the other two exceptions) all extend RuntimeException. I think that since these are all conditions that can be checked for before attempting operations, it is unnecessarily burdensome on the client to force additional checked Exceptions on them.
> 
> John Vines wrote:
>     A million times no. Do NOT force clients to catch RuntimeExceptions to handle your error codes.

I agree they should not be RuntimeExceptions.


> On Nov. 8, 2013, 2:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java, line 235
> > <https://reviews.apache.org/r/15166/diff/1/?file=376080#file376080line235>
> >
> >     Please do not introduce whitespace errors.

I'll reformat all the edited files before merging.


> On Nov. 8, 2013, 2:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java, line 40
> > <https://reviews.apache.org/r/15166/diff/1/?file=376082#file376082line40>
> >
> >     Should TableOperations and TabletOpoerations share a common super-interface?

Can improve that later.


> On Nov. 8, 2013, 2:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java, line 84
> > <https://reviews.apache.org/r/15166/diff/1/?file=376082#file376082line84>
> >
> >     I don't understand what this method does. Sets the default existance of versioning iterator on tables created in the namespace? That seems like maybe too broad of a setting to expose through this API?

I think you're right. We don't really need to have convenience methods to set up iterators by default on namespaces, especially since we already have them on creating tables. Besides, this is a trivial matter of: 1) create namespace, 2) configure namespace, 3) create table


> On Nov. 8, 2013, 2:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java, line 413
> > <https://reviews.apache.org/r/15166/diff/1/?file=376084#file376084line413>
> >
> >     If an error happens with a table in the middle of the list, then we're left in a half-cloned state. Probably better to clean up after ourselves.

I'm thinking we should just drop the ability to clone namespaces. It creates too many issues to watch for, and it isn't that hard to do in client code.


> On Nov. 8, 2013, 2:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java, line 555
> > <https://reviews.apache.org/r/15166/diff/1/?file=376084#file376084line555>
> >
> >     What happens if you attempt to offline a namespace while somebody else moves a table from one namespace into another? What _should_ happen?

Good question. I'm thinking we should drop the ability to migrate tables between namespaces. It creates too many concurrency issues. Besides, it doesn't buy us much if we can clone into a new namespace.


> On Nov. 8, 2013, 2:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java, line 42
> > <https://reviews.apache.org/r/15166/diff/1/?file=376087#file376087line42>
> >
> >     Is there value in making this a SortedMap? Why not just Map?

Sorted is always nice... the number of namespaces should be small enough to not really matter.


> On Nov. 8, 2013, 2:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java, line 25
> > <https://reviews.apache.org/r/15166/diff/1/?file=376088#file376088line25>
> >
> >     No.

Bug!


- Christopher


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


On Oct. 31, 2013, 10:01 p.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Oct. 31, 2013, 10:01 p.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Mike Drob <md...@mdrob.com>.

- Mike


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


On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Nov. 1, 2013, 2:01 a.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by John Vines <vi...@apache.org>.

> On Nov. 8, 2013, 7:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java, line 24
> > <https://reviews.apache.org/r/15166/diff/1/?file=376077#file376077line24>
> >
> >     I would like to see this (and the other two exceptions) all extend RuntimeException. I think that since these are all conditions that can be checked for before attempting operations, it is unnecessarily burdensome on the client to force additional checked Exceptions on them.
> 
> John Vines wrote:
>     A million times no. Do NOT force clients to catch RuntimeExceptions to handle your error codes.
> 
> Christopher Tubbs wrote:
>     I agree they should not be RuntimeExceptions.
> 
> Mike Drob wrote:
>     You're already forcing clients to catch the exceptions when you declare them as checked exceptions. And there is an exists method on operations, which is completely pointless with the checked exceptions. Consider the following code snippets:
>     
>     // Can write this if TableNamespaceExistsException is Runtime
>     if (! namespaceOperations.exists("foo"))
>       namespaceOperations.create("foo")
>     
>     // If it is checked, then you have to write
>     if (! namespaceOperations.exists("foo")) {
>       try {
>         namespaceOperations.create("foo")
>       } catch (TableNamespaceExistsException tnee) {
>         // log? nothing we can do anyway.
>       }
>     }
>     
>     // Or even worse, skip the existence check entirely and just try to create...
>     // With this sample, what is even the point of having an exists() method?
>     try {
>       namespaceOperations.create("foo")
>     } catch (Exception e) {
>       // log? nothing we can do anyway.
>     }
>     
>     
>     Now, my preferred snippet (#1) _is_ susceptible to a potential race condition, but I think the solution is a more serious API redesign. Maybe have create return a boolean instead of throwing, similar to Collection.add(). Or maybe add a createIfAbsent() method, similar to ConcurrentHashMap.putIfAbsent().
>     
>     There's lots of ways to do this, but forcing users to catch clunky exceptions is one of my least favorite parts of Java. Also see Effective Java, Item 59.

Catching a well defined exception is a hell of a lot different then catching RuntimeException. Runtime exceptions should be reserved for errors where things are fundamentally broken, not because you're too lazy to write a catch clause.


- John


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


On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Nov. 1, 2013, 2:01 a.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by John Vines <vi...@apache.org>.

> On Nov. 8, 2013, 7:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java, line 24
> > <https://reviews.apache.org/r/15166/diff/1/?file=376077#file376077line24>
> >
> >     I would like to see this (and the other two exceptions) all extend RuntimeException. I think that since these are all conditions that can be checked for before attempting operations, it is unnecessarily burdensome on the client to force additional checked Exceptions on them.
> 
> John Vines wrote:
>     A million times no. Do NOT force clients to catch RuntimeExceptions to handle your error codes.
> 
> Christopher Tubbs wrote:
>     I agree they should not be RuntimeExceptions.
> 
> Mike Drob wrote:
>     You're already forcing clients to catch the exceptions when you declare them as checked exceptions. And there is an exists method on operations, which is completely pointless with the checked exceptions. Consider the following code snippets:
>     
>     // Can write this if TableNamespaceExistsException is Runtime
>     if (! namespaceOperations.exists("foo"))
>       namespaceOperations.create("foo")
>     
>     // If it is checked, then you have to write
>     if (! namespaceOperations.exists("foo")) {
>       try {
>         namespaceOperations.create("foo")
>       } catch (TableNamespaceExistsException tnee) {
>         // log? nothing we can do anyway.
>       }
>     }
>     
>     // Or even worse, skip the existence check entirely and just try to create...
>     // With this sample, what is even the point of having an exists() method?
>     try {
>       namespaceOperations.create("foo")
>     } catch (Exception e) {
>       // log? nothing we can do anyway.
>     }
>     
>     
>     Now, my preferred snippet (#1) _is_ susceptible to a potential race condition, but I think the solution is a more serious API redesign. Maybe have create return a boolean instead of throwing, similar to Collection.add(). Or maybe add a createIfAbsent() method, similar to ConcurrentHashMap.putIfAbsent().
>     
>     There's lots of ways to do this, but forcing users to catch clunky exceptions is one of my least favorite parts of Java. Also see Effective Java, Item 59.
> 
> John Vines wrote:
>     Catching a well defined exception is a hell of a lot different then catching RuntimeException. Runtime exceptions should be reserved for errors where things are fundamentally broken, not because you're too lazy to write a catch clause.

And while I do like the idea of a boolean for operation returns, they don't provide any input as to why they fail, which makes programmatic handling worse. You're going to have drastically different behavior if a table creation fails because it already exists vs. if you don't have permissions for it vs. the cluster is on fire


- John


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


On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Nov. 1, 2013, 2:01 a.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Josh Elser <jo...@gmail.com>.

> On Nov. 8, 2013, 7:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java, line 24
> > <https://reviews.apache.org/r/15166/diff/1/?file=376077#file376077line24>
> >
> >     I would like to see this (and the other two exceptions) all extend RuntimeException. I think that since these are all conditions that can be checked for before attempting operations, it is unnecessarily burdensome on the client to force additional checked Exceptions on them.
> 
> John Vines wrote:
>     A million times no. Do NOT force clients to catch RuntimeExceptions to handle your error codes.
> 
> Christopher Tubbs wrote:
>     I agree they should not be RuntimeExceptions.
> 
> Mike Drob wrote:
>     You're already forcing clients to catch the exceptions when you declare them as checked exceptions. And there is an exists method on operations, which is completely pointless with the checked exceptions. Consider the following code snippets:
>     
>     // Can write this if TableNamespaceExistsException is Runtime
>     if (! namespaceOperations.exists("foo"))
>       namespaceOperations.create("foo")
>     
>     // If it is checked, then you have to write
>     if (! namespaceOperations.exists("foo")) {
>       try {
>         namespaceOperations.create("foo")
>       } catch (TableNamespaceExistsException tnee) {
>         // log? nothing we can do anyway.
>       }
>     }
>     
>     // Or even worse, skip the existence check entirely and just try to create...
>     // With this sample, what is even the point of having an exists() method?
>     try {
>       namespaceOperations.create("foo")
>     } catch (Exception e) {
>       // log? nothing we can do anyway.
>     }
>     
>     
>     Now, my preferred snippet (#1) _is_ susceptible to a potential race condition, but I think the solution is a more serious API redesign. Maybe have create return a boolean instead of throwing, similar to Collection.add(). Or maybe add a createIfAbsent() method, similar to ConcurrentHashMap.putIfAbsent().
>     
>     There's lots of ways to do this, but forcing users to catch clunky exceptions is one of my least favorite parts of Java. Also see Effective Java, Item 59.
> 
> John Vines wrote:
>     Catching a well defined exception is a hell of a lot different then catching RuntimeException. Runtime exceptions should be reserved for errors where things are fundamentally broken, not because you're too lazy to write a catch clause.
> 
> John Vines wrote:
>     And while I do like the idea of a boolean for operation returns, they don't provide any input as to why they fail, which makes programmatic handling worse. You're going to have drastically different behavior if a table creation fails because it already exists vs. if you don't have permissions for it vs. the cluster is on fire

I'm agree with John here. First, we already have the semantics of throwing a named, non-Runtime exception with Table operations -- I see no reason to treat namespaces differently than tables. Second, you're making a sweeping assumption that all clients will do nothing when a namespace already exists. You can't possibly know this to be true.

Yes, it's more verbose, but this *is* Java which has never been known for its subtlety. I'd much rather have a few more lines of code than withhold error information from the client.


- Josh


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


On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Nov. 1, 2013, 2:01 a.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by John Vines <vi...@apache.org>.

> On Nov. 8, 2013, 7:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java, line 24
> > <https://reviews.apache.org/r/15166/diff/1/?file=376077#file376077line24>
> >
> >     I would like to see this (and the other two exceptions) all extend RuntimeException. I think that since these are all conditions that can be checked for before attempting operations, it is unnecessarily burdensome on the client to force additional checked Exceptions on them.

A million times no. Do NOT force clients to catch RuntimeExceptions to handle your error codes.


- John


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


On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Nov. 1, 2013, 2:01 a.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Sean Hickey <ta...@gmail.com>.

> On Nov. 8, 2013, 7:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java, line 84
> > <https://reviews.apache.org/r/15166/diff/1/?file=376082#file376082line84>
> >
> >     I don't understand what this method does. Sets the default existance of versioning iterator on tables created in the namespace? That seems like maybe too broad of a setting to expose through this API?
> 
> Christopher Tubbs wrote:
>     I think you're right. We don't really need to have convenience methods to set up iterators by default on namespaces, especially since we already have them on creating tables. Besides, this is a trivial matter of: 1) create namespace, 2) configure namespace, 3) create table

I think what I was doing was moving the initial table properties to the namespace-level rather than setting them individually on each table. That way you can set it so all the tables in that namespace start with the versioning iterator or not (and whatever else generateInitialTableProperties() does).


- Sean


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


On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Nov. 1, 2013, 2:01 a.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Christopher Tubbs <ct...@apache.org>.

> On Nov. 8, 2013, 2:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java, line 84
> > <https://reviews.apache.org/r/15166/diff/1/?file=376082#file376082line84>
> >
> >     I don't understand what this method does. Sets the default existance of versioning iterator on tables created in the namespace? That seems like maybe too broad of a setting to expose through this API?
> 
> Christopher Tubbs wrote:
>     I think you're right. We don't really need to have convenience methods to set up iterators by default on namespaces, especially since we already have them on creating tables. Besides, this is a trivial matter of: 1) create namespace, 2) configure namespace, 3) create table
> 
> Sean Hickey wrote:
>     I think what I was doing was moving the initial table properties to the namespace-level rather than setting them individually on each table. That way you can set it so all the tables in that namespace start with the versioning iterator or not (and whatever else generateInitialTableProperties() does).

That makes sense, but I think that a minimal approach would be good for a first cut... especially if it's something that users can already do with a short sequence of existing API calls.


> On Nov. 8, 2013, 2:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java, line 234
> > <https://reviews.apache.org/r/15166/diff/1/?file=376080#file376080line234>
> >
> >     Minor nit on inconsistent parameter naming - "permission" everywhere else in the codebase.

If you check the box to create an issue in RB when you add a comment, I can check it off the list as fixed.


> On Nov. 8, 2013, 2:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java, line 413
> > <https://reviews.apache.org/r/15166/diff/1/?file=376084#file376084line413>
> >
> >     If an error happens with a table in the middle of the list, then we're left in a half-cloned state. Probably better to clean up after ourselves.
> 
> Christopher Tubbs wrote:
>     I'm thinking we should just drop the ability to clone namespaces. It creates too many issues to watch for, and it isn't that hard to do in client code.
> 
> Mike Drob wrote:
>     +1

ACCUMULO-1906


> On Nov. 8, 2013, 2:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java, line 555
> > <https://reviews.apache.org/r/15166/diff/1/?file=376084#file376084line555>
> >
> >     What happens if you attempt to offline a namespace while somebody else moves a table from one namespace into another? What _should_ happen?
> 
> Christopher Tubbs wrote:
>     Good question. I'm thinking we should drop the ability to migrate tables between namespaces. It creates too many concurrency issues. Besides, it doesn't buy us much if we can clone into a new namespace.
> 
> Mike Drob wrote:
>     +1

ACCUMULO-1907


- Christopher


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


On Oct. 31, 2013, 10:01 p.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Oct. 31, 2013, 10:01 p.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Christopher Tubbs <ct...@apache.org>.

> On Nov. 8, 2013, 2:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java, line 24
> > <https://reviews.apache.org/r/15166/diff/1/?file=376077#file376077line24>
> >
> >     I would like to see this (and the other two exceptions) all extend RuntimeException. I think that since these are all conditions that can be checked for before attempting operations, it is unnecessarily burdensome on the client to force additional checked Exceptions on them.
> 
> John Vines wrote:
>     A million times no. Do NOT force clients to catch RuntimeExceptions to handle your error codes.
> 
> Christopher Tubbs wrote:
>     I agree they should not be RuntimeExceptions.
> 
> Mike Drob wrote:
>     You're already forcing clients to catch the exceptions when you declare them as checked exceptions. And there is an exists method on operations, which is completely pointless with the checked exceptions. Consider the following code snippets:
>     
>     // Can write this if TableNamespaceExistsException is Runtime
>     if (! namespaceOperations.exists("foo"))
>       namespaceOperations.create("foo")
>     
>     // If it is checked, then you have to write
>     if (! namespaceOperations.exists("foo")) {
>       try {
>         namespaceOperations.create("foo")
>       } catch (TableNamespaceExistsException tnee) {
>         // log? nothing we can do anyway.
>       }
>     }
>     
>     // Or even worse, skip the existence check entirely and just try to create...
>     // With this sample, what is even the point of having an exists() method?
>     try {
>       namespaceOperations.create("foo")
>     } catch (Exception e) {
>       // log? nothing we can do anyway.
>     }
>     
>     
>     Now, my preferred snippet (#1) _is_ susceptible to a potential race condition, but I think the solution is a more serious API redesign. Maybe have create return a boolean instead of throwing, similar to Collection.add(). Or maybe add a createIfAbsent() method, similar to ConcurrentHashMap.putIfAbsent().
>     
>     There's lots of ways to do this, but forcing users to catch clunky exceptions is one of my least favorite parts of Java. Also see Effective Java, Item 59.
> 
> John Vines wrote:
>     Catching a well defined exception is a hell of a lot different then catching RuntimeException. Runtime exceptions should be reserved for errors where things are fundamentally broken, not because you're too lazy to write a catch clause.
> 
> John Vines wrote:
>     And while I do like the idea of a boolean for operation returns, they don't provide any input as to why they fail, which makes programmatic handling worse. You're going to have drastically different behavior if a table creation fails because it already exists vs. if you don't have permissions for it vs. the cluster is on fire
> 
> Josh Elser wrote:
>     I'm agree with John here. First, we already have the semantics of throwing a named, non-Runtime exception with Table operations -- I see no reason to treat namespaces differently than tables. Second, you're making a sweeping assumption that all clients will do nothing when a namespace already exists. You can't possibly know this to be true.
>     
>     Yes, it's more verbose, but this *is* Java which has never been known for its subtlety. I'd much rather have a few more lines of code than withhold error information from the client.
> 
> Christopher Tubbs wrote:
>     After some consideration, I think I'm inclined to agree with Mike that NamespaceNotFoundException should be a RuntimeException... because it represents a programmer error, of the type described by Joshua Bloch in Effective Java, rather than an easily recoverable situation. It's not that I expect clients to do nothing if it already exists... it's that I expect clients shouldn't be getting into this situation in the first place. I'm not 100% convinced that it applies to NamespaceExistsException... right now I'm inclined to think that it should be checked, because it's behavior should be considered independently to the exists() method.
>     
>     However, I'm going to leave them both as checked exceptions so that the API is not too inconsistent with TableOperations. I think that'd be more disruptive to users. We can revamp both these APIs and improve them together in the future.
> 
> John Vines wrote:
>     Again, STRONGLY disagree. We're dealing with a distributed system, and as such could have clients racing one another to check and then create the namespace if it does not exist. These are perfectly valid conditions that can be raced against one another and cause a failure in spite of however much prechecking is done. So there are cases where it is NOT necessarily a programmer error and should NOT be a runtime exception.

Hmm, the whole point of namespaces is to ease administration of groups of tables. If you're dynamically creating a namespace from multiple places, you're kind of undermining the whole point of the feature. However, the point is moot. I'm not making it a RuntimeException for now. I've talked to Mike about this, and he agreed that it'd be acceptable to keep consistency with the TableOperations API as is. So, we can discuss the merits of this if/when it comes up again.


- Christopher


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


On Oct. 31, 2013, 10:01 p.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Oct. 31, 2013, 10:01 p.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Mike Drob <md...@mdrob.com>.

> On Nov. 8, 2013, 7:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java, line 24
> > <https://reviews.apache.org/r/15166/diff/1/?file=376077#file376077line24>
> >
> >     I would like to see this (and the other two exceptions) all extend RuntimeException. I think that since these are all conditions that can be checked for before attempting operations, it is unnecessarily burdensome on the client to force additional checked Exceptions on them.
> 
> John Vines wrote:
>     A million times no. Do NOT force clients to catch RuntimeExceptions to handle your error codes.
> 
> Christopher Tubbs wrote:
>     I agree they should not be RuntimeExceptions.

You're already forcing clients to catch the exceptions when you declare them as checked exceptions. And there is an exists method on operations, which is completely pointless with the checked exceptions. Consider the following code snippets:

// Can write this if TableNamespaceExistsException is Runtime
if (! namespaceOperations.exists("foo"))
  namespaceOperations.create("foo")

// If it is checked, then you have to write
if (! namespaceOperations.exists("foo")) {
  try {
    namespaceOperations.create("foo")
  } catch (TableNamespaceExistsException tnee) {
    // log? nothing we can do anyway.
  }
}

// Or even worse, skip the existence check entirely and just try to create...
// With this sample, what is even the point of having an exists() method?
try {
  namespaceOperations.create("foo")
} catch (Exception e) {
  // log? nothing we can do anyway.
}


Now, my preferred snippet (#1) _is_ susceptible to a potential race condition, but I think the solution is a more serious API redesign. Maybe have create return a boolean instead of throwing, similar to Collection.add(). Or maybe add a createIfAbsent() method, similar to ConcurrentHashMap.putIfAbsent().

There's lots of ways to do this, but forcing users to catch clunky exceptions is one of my least favorite parts of Java. Also see Effective Java, Item 59.


> On Nov. 8, 2013, 7:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java, line 413
> > <https://reviews.apache.org/r/15166/diff/1/?file=376084#file376084line413>
> >
> >     If an error happens with a table in the middle of the list, then we're left in a half-cloned state. Probably better to clean up after ourselves.
> 
> Christopher Tubbs wrote:
>     I'm thinking we should just drop the ability to clone namespaces. It creates too many issues to watch for, and it isn't that hard to do in client code.

+1


> On Nov. 8, 2013, 7:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java, line 555
> > <https://reviews.apache.org/r/15166/diff/1/?file=376084#file376084line555>
> >
> >     What happens if you attempt to offline a namespace while somebody else moves a table from one namespace into another? What _should_ happen?
> 
> Christopher Tubbs wrote:
>     Good question. I'm thinking we should drop the ability to migrate tables between namespaces. It creates too many concurrency issues. Besides, it doesn't buy us much if we can clone into a new namespace.

+1


- Mike


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


On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Nov. 1, 2013, 2:01 a.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Christopher Tubbs <ct...@apache.org>.

> On Nov. 8, 2013, 2:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java, line 24
> > <https://reviews.apache.org/r/15166/diff/1/?file=376077#file376077line24>
> >
> >     I would like to see this (and the other two exceptions) all extend RuntimeException. I think that since these are all conditions that can be checked for before attempting operations, it is unnecessarily burdensome on the client to force additional checked Exceptions on them.
> 
> John Vines wrote:
>     A million times no. Do NOT force clients to catch RuntimeExceptions to handle your error codes.
> 
> Christopher Tubbs wrote:
>     I agree they should not be RuntimeExceptions.
> 
> Mike Drob wrote:
>     You're already forcing clients to catch the exceptions when you declare them as checked exceptions. And there is an exists method on operations, which is completely pointless with the checked exceptions. Consider the following code snippets:
>     
>     // Can write this if TableNamespaceExistsException is Runtime
>     if (! namespaceOperations.exists("foo"))
>       namespaceOperations.create("foo")
>     
>     // If it is checked, then you have to write
>     if (! namespaceOperations.exists("foo")) {
>       try {
>         namespaceOperations.create("foo")
>       } catch (TableNamespaceExistsException tnee) {
>         // log? nothing we can do anyway.
>       }
>     }
>     
>     // Or even worse, skip the existence check entirely and just try to create...
>     // With this sample, what is even the point of having an exists() method?
>     try {
>       namespaceOperations.create("foo")
>     } catch (Exception e) {
>       // log? nothing we can do anyway.
>     }
>     
>     
>     Now, my preferred snippet (#1) _is_ susceptible to a potential race condition, but I think the solution is a more serious API redesign. Maybe have create return a boolean instead of throwing, similar to Collection.add(). Or maybe add a createIfAbsent() method, similar to ConcurrentHashMap.putIfAbsent().
>     
>     There's lots of ways to do this, but forcing users to catch clunky exceptions is one of my least favorite parts of Java. Also see Effective Java, Item 59.
> 
> John Vines wrote:
>     Catching a well defined exception is a hell of a lot different then catching RuntimeException. Runtime exceptions should be reserved for errors where things are fundamentally broken, not because you're too lazy to write a catch clause.
> 
> John Vines wrote:
>     And while I do like the idea of a boolean for operation returns, they don't provide any input as to why they fail, which makes programmatic handling worse. You're going to have drastically different behavior if a table creation fails because it already exists vs. if you don't have permissions for it vs. the cluster is on fire
> 
> Josh Elser wrote:
>     I'm agree with John here. First, we already have the semantics of throwing a named, non-Runtime exception with Table operations -- I see no reason to treat namespaces differently than tables. Second, you're making a sweeping assumption that all clients will do nothing when a namespace already exists. You can't possibly know this to be true.
>     
>     Yes, it's more verbose, but this *is* Java which has never been known for its subtlety. I'd much rather have a few more lines of code than withhold error information from the client.

After some consideration, I think I'm inclined to agree with Mike that NamespaceNotFoundException should be a RuntimeException... because it represents a programmer error, of the type described by Joshua Bloch in Effective Java, rather than an easily recoverable situation. It's not that I expect clients to do nothing if it already exists... it's that I expect clients shouldn't be getting into this situation in the first place. I'm not 100% convinced that it applies to NamespaceExistsException... right now I'm inclined to think that it should be checked, because it's behavior should be considered independently to the exists() method.

However, I'm going to leave them both as checked exceptions so that the API is not too inconsistent with TableOperations. I think that'd be more disruptive to users. We can revamp both these APIs and improve them together in the future.


- Christopher


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


On Oct. 31, 2013, 10:01 p.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Oct. 31, 2013, 10:01 p.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by John Vines <vi...@apache.org>.

> On Nov. 8, 2013, 7:08 p.m., Mike Drob wrote:
> > core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java, line 24
> > <https://reviews.apache.org/r/15166/diff/1/?file=376077#file376077line24>
> >
> >     I would like to see this (and the other two exceptions) all extend RuntimeException. I think that since these are all conditions that can be checked for before attempting operations, it is unnecessarily burdensome on the client to force additional checked Exceptions on them.
> 
> John Vines wrote:
>     A million times no. Do NOT force clients to catch RuntimeExceptions to handle your error codes.
> 
> Christopher Tubbs wrote:
>     I agree they should not be RuntimeExceptions.
> 
> Mike Drob wrote:
>     You're already forcing clients to catch the exceptions when you declare them as checked exceptions. And there is an exists method on operations, which is completely pointless with the checked exceptions. Consider the following code snippets:
>     
>     // Can write this if TableNamespaceExistsException is Runtime
>     if (! namespaceOperations.exists("foo"))
>       namespaceOperations.create("foo")
>     
>     // If it is checked, then you have to write
>     if (! namespaceOperations.exists("foo")) {
>       try {
>         namespaceOperations.create("foo")
>       } catch (TableNamespaceExistsException tnee) {
>         // log? nothing we can do anyway.
>       }
>     }
>     
>     // Or even worse, skip the existence check entirely and just try to create...
>     // With this sample, what is even the point of having an exists() method?
>     try {
>       namespaceOperations.create("foo")
>     } catch (Exception e) {
>       // log? nothing we can do anyway.
>     }
>     
>     
>     Now, my preferred snippet (#1) _is_ susceptible to a potential race condition, but I think the solution is a more serious API redesign. Maybe have create return a boolean instead of throwing, similar to Collection.add(). Or maybe add a createIfAbsent() method, similar to ConcurrentHashMap.putIfAbsent().
>     
>     There's lots of ways to do this, but forcing users to catch clunky exceptions is one of my least favorite parts of Java. Also see Effective Java, Item 59.
> 
> John Vines wrote:
>     Catching a well defined exception is a hell of a lot different then catching RuntimeException. Runtime exceptions should be reserved for errors where things are fundamentally broken, not because you're too lazy to write a catch clause.
> 
> John Vines wrote:
>     And while I do like the idea of a boolean for operation returns, they don't provide any input as to why they fail, which makes programmatic handling worse. You're going to have drastically different behavior if a table creation fails because it already exists vs. if you don't have permissions for it vs. the cluster is on fire
> 
> Josh Elser wrote:
>     I'm agree with John here. First, we already have the semantics of throwing a named, non-Runtime exception with Table operations -- I see no reason to treat namespaces differently than tables. Second, you're making a sweeping assumption that all clients will do nothing when a namespace already exists. You can't possibly know this to be true.
>     
>     Yes, it's more verbose, but this *is* Java which has never been known for its subtlety. I'd much rather have a few more lines of code than withhold error information from the client.
> 
> Christopher Tubbs wrote:
>     After some consideration, I think I'm inclined to agree with Mike that NamespaceNotFoundException should be a RuntimeException... because it represents a programmer error, of the type described by Joshua Bloch in Effective Java, rather than an easily recoverable situation. It's not that I expect clients to do nothing if it already exists... it's that I expect clients shouldn't be getting into this situation in the first place. I'm not 100% convinced that it applies to NamespaceExistsException... right now I'm inclined to think that it should be checked, because it's behavior should be considered independently to the exists() method.
>     
>     However, I'm going to leave them both as checked exceptions so that the API is not too inconsistent with TableOperations. I think that'd be more disruptive to users. We can revamp both these APIs and improve them together in the future.

Again, STRONGLY disagree. We're dealing with a distributed system, and as such could have clients racing one another to check and then create the namespace if it does not exist. These are perfectly valid conditions that can be raced against one another and cause a failure in spite of however much prechecking is done. So there are cases where it is NOT necessarily a programmer error and should NOT be a runtime exception.


- John


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


On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Nov. 1, 2013, 2:01 a.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Mike Drob <md...@mdrob.com>.
I'm having trouble with Review Board and cannot load pages 2-5 of the diff.
Is anybody else seeing experiencing this?


On Fri, Nov 8, 2013 at 2:08 PM, Mike Drob <md...@mdrob.com> wrote:

>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/#review28554
> -----------------------------------------------------------
>
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java
> <https://reviews.apache.org/r/15166/#comment55352>
>
>     I would like to see this (and the other two exceptions) all extend
> RuntimeException. I think that since these are all conditions that can be
> checked for before attempting operations, it is unnecessarily burdensome on
> the client to force additional checked Exceptions on them.
>
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java
> <https://reviews.apache.org/r/15166/#comment55355>
>
>     Minor nit on inconsistent parameter naming - "permission" everywhere
> else in the codebase.
>
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java
> <https://reviews.apache.org/r/15166/#comment55356>
>
>     Please do not introduce whitespace errors.
>
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
> <https://reviews.apache.org/r/15166/#comment55357>
>
>     Should TableOperations and TabletOpoerations share a common
> super-interface?
>
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
> <https://reviews.apache.org/r/15166/#comment55359>
>
>     I don't understand what this method does. Sets the default existance
> of versioning iterator on tables created in the namespace? That seems like
> maybe too broad of a setting to expose through this API?
>
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java
> <https://reviews.apache.org/r/15166/#comment55366>
>
>     If an error happens with a table in the middle of the list, then we're
> left in a half-cloned state. Probably better to clean up after ourselves.
>
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java
> <https://reviews.apache.org/r/15166/#comment55371>
>
>     What happens if you attempt to offline a namespace while somebody else
> moves a table from one namespace into another? What _should_ happen?
>
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java
> <https://reviews.apache.org/r/15166/#comment55383>
>
>     Can we ignore the whitespace changes?
>
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java
> <https://reviews.apache.org/r/15166/#comment55388>
>
>     Is there value in making this a SortedMap? Why not just Map?
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java
> <https://reviews.apache.org/r/15166/#comment55389>
>
>     No.
>
>
> - Mike Drob
>
>
> On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
> >
> > -----------------------------------------------------------
> > This is an automatically generated e-mail. To reply, visit:
> > https://reviews.apache.org/r/15166/
> > -----------------------------------------------------------
> >
> > (Updated Nov. 1, 2013, 2:01 a.m.)
> >
> >
> > Review request for accumulo.
> >
> >
> > Bugs: ACCUMULO-802
> >     https://issues.apache.org/jira/browse/ACCUMULO-802
> >
> >
> > Repository: accumulo
> >
> >
> > Description
> > -------
> >
> > ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey,
> https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto
> latest master (including 210 commits)
> >
> >
> > Diffs
> > -----
> >
> >   core/src/main/java/org/apache/accumulo/core/Constants.java
> 9db0c405c5b9fbac13fa735c3ffd6433e9831051
> >   core/src/main/java/org/apache/accumulo/core/client/Connector.java
> bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85
> >
> core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java
> 86a3ff271fc2e085c426da3156cfab9cdbb5c36b
> >
> core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java
> 0f0e998f334631cfb342f9a39fdd12e62aa98f13
> >
> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java
> 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3
> >
> core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java
> bd1156912849b13ebad8f6b974fd35d8adf18f1d
> >
> core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java
> PRE-CREATION
> >   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java
> 8bc725a3405a79c20c690bff3f6fdb6f713be523
> >
> core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java
> 488e0654720250542145e0d543ad16813f8d8b6d
> >
> core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java
> b706ce87bb1e8a525e585b14b7fb8563c3493c2c
> >
> core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java
> 5ee144d9eb67c8e79dad870abbd823cac64e111e
> >
> core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java
> 80ec5133334f9ef466dd7e4077230acfd2c77fb5
> >
> core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java
> 765cda9cac6fb3bc7df9eb8db1c83846960e85c3
> >   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java
> 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047
> >
> core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java
> a3c2043b8120e13a190eb173d8342c205700382f
> >
> core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java
> fb51387fabea6d47854048daad4c8ec14047ab33
> >
> core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java
> 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f
> >
> core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java
> 699396e7e47b858ea8273c969f79dc7b3ebdc577
> >
> core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java
> PRE-CREATION
> >   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java
> 52e1d04998060954b7f09a3b9a6d9fdd898208b0
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java
> 85f68ef2464cb784861a587badd4835d842d8b87
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java
> 31529730935ff78de6c39fea531e20e2ade30a2d
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java
> 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java
> 4280555dfce0856e2e1329412b0051b15ce5a748
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java
> 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java
> 189458a504dce012f3c579ff3b8425f030ad1b54
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java
> d0644828af83f5c2d2ecbc58bd7545d958be31a0
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java
> 35c534d791648267539833b922643fc65dd600d4
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java
> f3e720029714da63a7ec7e2bfb7587443ed7ed8b
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java
> e2d4d915c3311205ca4731b449769c37cd92ac82
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java
> f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java
> 057f2b4374b3cc137a20158e70c33dd97c019c87
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java
> 676284aa9591d05a946d0bc4290ff88c3eb04eba
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java
> 3a7155687994049d2580f7b39e0df1a39d52c385
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java
> 2bec526af38d328ea86cb21860471d8bed384eac
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java
> 19b49e9cb4ca8483de55e644700d2a68d14ab42f
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java
> 79d78da3b0f6de47f57740ee13678792b61a87c7
> >   core/src/main/thrift/client.thrift
> 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289
> >   core/src/main/thrift/master.thrift
> 19960c8857295d22ffba728c95501f069ba953c0
> >
> core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java
> PRE-CREATION
> >
> server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java
> 9e0ac393deb962799e4e98753db1814dd630d14e
> >
> server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java
> 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4
> >
> server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java
> c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8
> >
> server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java
> 4c581530b77a88e141837507a32cdc4f89982c56
> >
> server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java
> PRE-CREATION
> >
> server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java
> PRE-CREATION
> >
> server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java
> PRE-CREATION
> >
> server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java
> 0477a443e307e174965140f0fd14c898a0d98727
> >
> server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java
> 3e0a2bf0e06227780adb92967d439212c0316924
> >
> server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java
> ee337a5d23f04b321a306a306c41ea59e2f731a0
> >
> server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java
> f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03
> >
> server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java
> b57abfec483e3e07b85ed41148e11789fc45461c
> >
> server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java
> 72c64b5897a4b0bf7de8081a76288fd8fb639021
> >
> server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java
> f2196035d93ce5718b09e9754d130015515da91f
> >
> server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java
> 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb
> >
> server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java
> 8a74d0b936d8fad3b020a230b6b20536d740288f
> >
> server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java
> PRE-CREATION
> >
> server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java
> cdee8fbe448592120a5cc5b6682aedfafca7e7bf
> >   server/master/src/main/java/org/apache/accumulo/master/Master.java
> 8a1a9b272bf332258febf46b7535d12f83a1dbd0
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java
> dd4c2292996d758860191fc054631812adfa34b2
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java
> 697c15e173b13bc5909862998b8742708bc933c1
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java
> 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java
> PRE-CREATION
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java
> 160fc7e89320250d24e89526188528ff4786cd6d
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java
> df2e0285b10fbdacb9fcacd007b48c1e2891d5d1
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java
> PRE-CREATION
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java
> 427125721cfaa122378bfe74b6c89b96b2f93137
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java
> PRE-CREATION
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java
> 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java
> b91da522ff13b2be4de3fe82c47875e74cc1e569
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java
> 3069aaf9eea3044d14bf7bb7b81c0270a0997f08
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java
> PRE-CREATION
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java
> 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java
> fa14f43100f5a13b16d2d34b95a8466501b93299
> >   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java
> 0ef6c6b867b284e86f8252ebb19913b3c1831362
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java
> be2de2a547aecc72eca7e2c980964ef85551aae8
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java
> 5fa9bc49439974071fe12d97b371eb4e6ac3db3f
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java
> 65d3aed4faf1f2a360aa0d4df123390206eae0f3
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java
> PRE-CREATION
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java
> b47f1a946e904820a0cc83a4b3e078d40f11bb99
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java
> 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java
> PRE-CREATION
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java
> PRE-CREATION
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java
> 8fcfab593071458954939970892a88b8793088b3
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java
> PRE-CREATION
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java
> d4a4e956699c2b2a483d6360e201da3eccd29847
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java
> PRE-CREATION
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java
> 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java
> 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c
> >   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
> 31867f39dd4d9661a00557c3291258b5e2507b30
> >   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java
> PRE-CREATION
> >
> test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java
> b8e1a4fcfcd1f02aa12926a44046493dbe74fe15
> >   test/system/randomwalk/conf/modules/Concurrent.xml
> 03e5542d6b5b02f09e899301c68cf1d6746285f5
> >
> > Diff: https://reviews.apache.org/r/15166/diff/
> >
> >
> > Testing
> > -------
> >
> >
> > Thanks,
> >
> > Christopher Tubbs
> >
> >
>
>

Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Mike Drob <md...@mdrob.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/15166/#review28554
-----------------------------------------------------------



core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java
<https://reviews.apache.org/r/15166/#comment55352>

    I would like to see this (and the other two exceptions) all extend RuntimeException. I think that since these are all conditions that can be checked for before attempting operations, it is unnecessarily burdensome on the client to force additional checked Exceptions on them. 



core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java
<https://reviews.apache.org/r/15166/#comment55355>

    Minor nit on inconsistent parameter naming - "permission" everywhere else in the codebase.



core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java
<https://reviews.apache.org/r/15166/#comment55356>

    Please do not introduce whitespace errors.



core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
<https://reviews.apache.org/r/15166/#comment55357>

    Should TableOperations and TabletOpoerations share a common super-interface?



core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
<https://reviews.apache.org/r/15166/#comment55359>

    I don't understand what this method does. Sets the default existance of versioning iterator on tables created in the namespace? That seems like maybe too broad of a setting to expose through this API?



core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java
<https://reviews.apache.org/r/15166/#comment55366>

    If an error happens with a table in the middle of the list, then we're left in a half-cloned state. Probably better to clean up after ourselves.



core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java
<https://reviews.apache.org/r/15166/#comment55371>

    What happens if you attempt to offline a namespace while somebody else moves a table from one namespace into another? What _should_ happen?



core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java
<https://reviews.apache.org/r/15166/#comment55383>

    Can we ignore the whitespace changes?



core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java
<https://reviews.apache.org/r/15166/#comment55388>

    Is there value in making this a SortedMap? Why not just Map?



core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java
<https://reviews.apache.org/r/15166/#comment55389>

    No.


- Mike Drob


On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Nov. 1, 2013, 2:01 a.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by ke...@deenlo.com.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/15166/#review28569
-----------------------------------------------------------



server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java
<https://reviews.apache.org/r/15166/#comment55410>

    If this is called as part of a fate operation, then it should not use NodeExistsPolicy of Fail.  I was starting to review more, but RB flaked out and I can not longer see anytinh other than this comment so I am publishing it.


- kturner


On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Nov. 1, 2013, 2:01 a.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Christopher Tubbs <ct...@apache.org>.

> On Nov. 8, 2013, 2:51 p.m., kturner wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java, line 706
> > <https://reviews.apache.org/r/15166/diff/1/?file=376085#file376085line706>
> >
> >     Doing this on the client side is susceptible to race conditions.

ACCUMULO-1966


- Christopher


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


On Oct. 31, 2013, 10:01 p.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Oct. 31, 2013, 10:01 p.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Sean Hickey <ta...@gmail.com>.

> On Nov. 8, 2013, 7:51 p.m., kturner wrote:
> > core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java, line 24
> > <https://reviews.apache.org/r/15166/diff/1/?file=376077#file376077line24>
> >
> >     Can we shorten TableNamespace to just Namespace?

That would be nice. I was just trying to differentiate from any other type of namespace, but then everything just became so verbose...


> On Nov. 8, 2013, 7:51 p.m., kturner wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java, line 47
> > <https://reviews.apache.org/r/15166/diff/1/?file=376082#file376082line47>
> >
> >     I am curious if this method returns the default namespace.

Yes, it should return all the namespaces including both the system and default namespaces. (I think it's the function I used for the shell to list all the namespaces)


> On Nov. 8, 2013, 7:51 p.m., kturner wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java, line 59
> > <https://reviews.apache.org/r/15166/diff/1/?file=376082#file376082line59>
> >
> >     Should we document what namespace names are valid here?

If you want to. The valid namespace names are the same as the old valid table names (now table names can include one period in the form <namespace>.<table>)


> On Nov. 8, 2013, 7:51 p.m., kturner wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java, line 90
> > <https://reviews.apache.org/r/15166/diff/1/?file=376082#file376082line90>
> >
> >     would it be more accurate to state that tables created in this namespace will use this setting if not specified?

Yes. I moved the initial table properties stuff into the namespace creation code. Actually, looking back at my code, now TableOperations.Create() just ignores the limitVersion boolean...so even if it is specified it would just do what the namespace wants it to (you'd have to manual change the table property). We might want to change that...


- Sean


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


On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Nov. 1, 2013, 2:01 a.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Christopher Tubbs <ct...@apache.org>.

> On Nov. 8, 2013, 2:51 p.m., kturner wrote:
> > core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java, line 244
> > <https://reviews.apache.org/r/15166/diff/1/?file=376084#file376084line244>
> >
> >     Might be good to refactor this code so that namespace and table operations use the same code to execute remote fate operations.

implementation detail. can refactor in future.


- Christopher


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


On Oct. 31, 2013, 10:01 p.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Oct. 31, 2013, 10:01 p.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>


Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Keith Turner <ke...@deenlo.com>.
Since review board was flaking out I switched to git for doing the code
review.  I am not done yet, but I am done for the day.

https://github.com/keith-turner/accumulo/commit/ace35113b04e8a7fa702bcd7666f43da61a5722b


On Fri, Nov 8, 2013 at 2:58 PM, Keith Turner <ke...@deenlo.com> wrote:

> I am still trying to review the code.  I published after page 1 on RB
> because RB has been flaky and I was concerned about losing my comments.
>  Currently when I try to look at page 2, 3, or 5 RB fails, but I can look
> at page 4
>
>
> On Fri, Nov 8, 2013 at 2:51 PM, <ke...@deenlo.com> wrote:
>
>>
>> -----------------------------------------------------------
>> This is an automatically generated e-mail. To reply, visit:
>> https://reviews.apache.org/r/15166/#review28561
>> -----------------------------------------------------------
>>
>>
>>
>>
>> core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java
>> <https://reviews.apache.org/r/15166/#comment55382>
>>
>>     Can we shorten TableNamespace to just Namespace?
>>
>>
>>
>>
>> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
>> <https://reviews.apache.org/r/15166/#comment55384>
>>
>>     This might be a good place to provide some information about the
>> default namespace and its behavior.  Or at least point out its existance
>> and refer to the user manual.
>>
>>
>>
>>
>>
>>
>> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
>> <https://reviews.apache.org/r/15166/#comment55385>
>>
>>     I am curious if this method returns the default namespace.
>>
>>
>>
>>
>> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
>> <https://reviews.apache.org/r/15166/#comment55386>
>>
>>     Should we document what namespace names are valid here?
>>
>>
>>
>>
>> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
>> <https://reviews.apache.org/r/15166/#comment55387>
>>
>>     would it be more accurate to state that tables created in this
>> namespace will use this setting if not specified?
>>
>>
>>
>>
>> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
>> <https://reviews.apache.org/r/15166/#comment55390>
>>
>>     API call was added to tableOperations to wait for online and offline
>>
>>
>>
>>
>> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java
>> <https://reviews.apache.org/r/15166/#comment55394>
>>
>>     Might be good to refactor this code so that namespace and table
>> operations use the same code to execute remote fate operations.
>>
>>
>>
>>
>> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java
>> <https://reviews.apache.org/r/15166/#comment55393>
>>
>>     If the client dies it will leave the clone incomplete.  There could
>> also be concurrency issue since this is driven from the client side.  Like
>> a table being deleted while clone is running.
>>
>>
>>
>>
>> core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java
>> <https://reviews.apache.org/r/15166/#comment55395>
>>
>>     Doing this on the client side is susceptible to race conditions.
>>
>>
>>
>> core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java
>> <https://reviews.apache.org/r/15166/#comment55400>
>>
>>     I think the mapping from namespace id to namespace name should be
>> resolved once in this method... that way the method will give a consistent
>> view in the face of namespace renames
>>
>>
>>
>> core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java
>> <https://reviews.apache.org/r/15166/#comment55398>
>>
>>     should not use jlin logger... should not just log an error here
>>
>>
>> - kturner
>>
>>
>> On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
>> >
>> > -----------------------------------------------------------
>> > This is an automatically generated e-mail. To reply, visit:
>> > https://reviews.apache.org/r/15166/
>> > -----------------------------------------------------------
>> >
>> > (Updated Nov. 1, 2013, 2:01 a.m.)
>> >
>> >
>> > Review request for accumulo.
>> >
>> >
>> > Bugs: ACCUMULO-802
>> >     https://issues.apache.org/jira/browse/ACCUMULO-802
>> >
>> >
>> > Repository: accumulo
>> >
>> >
>> > Description
>> > -------
>> >
>> > ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey,
>> https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto
>> latest master (including 210 commits)
>> >
>> >
>> > Diffs
>> > -----
>> >
>> >   core/src/main/java/org/apache/accumulo/core/Constants.java
>> 9db0c405c5b9fbac13fa735c3ffd6433e9831051
>> >   core/src/main/java/org/apache/accumulo/core/client/Connector.java
>> bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85
>> >
>> core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java
>> PRE-CREATION
>> >
>> core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java
>> PRE-CREATION
>> >
>> core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java
>> PRE-CREATION
>> >
>> core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java
>> 86a3ff271fc2e085c426da3156cfab9cdbb5c36b
>> >
>> core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java
>> 0f0e998f334631cfb342f9a39fdd12e62aa98f13
>> >
>> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
>> PRE-CREATION
>> >
>> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java
>> PRE-CREATION
>> >
>> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java
>> PRE-CREATION
>> >
>> core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java
>> 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3
>> >
>> core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java
>> bd1156912849b13ebad8f6b974fd35d8adf18f1d
>> >
>> core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java
>> PRE-CREATION
>> >   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java
>> 8bc725a3405a79c20c690bff3f6fdb6f713be523
>> >
>> core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java
>> 488e0654720250542145e0d543ad16813f8d8b6d
>> >
>> core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java
>> b706ce87bb1e8a525e585b14b7fb8563c3493c2c
>> >
>> core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java
>> 5ee144d9eb67c8e79dad870abbd823cac64e111e
>> >
>> core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java
>> 80ec5133334f9ef466dd7e4077230acfd2c77fb5
>> >
>> core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java
>> 765cda9cac6fb3bc7df9eb8db1c83846960e85c3
>> >
>> core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java
>> 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047
>> >
>> core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java
>> PRE-CREATION
>> >
>> core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java
>> PRE-CREATION
>> >
>> core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java
>> a3c2043b8120e13a190eb173d8342c205700382f
>> >
>> core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java
>> fb51387fabea6d47854048daad4c8ec14047ab33
>> >
>> core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java
>> 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f
>> >
>> core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java
>> 699396e7e47b858ea8273c969f79dc7b3ebdc577
>> >
>> core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java
>> PRE-CREATION
>> >   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java
>> 52e1d04998060954b7f09a3b9a6d9fdd898208b0
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java
>> 85f68ef2464cb784861a587badd4835d842d8b87
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java
>> 31529730935ff78de6c39fea531e20e2ade30a2d
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java
>> PRE-CREATION
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java
>> 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java
>> 4280555dfce0856e2e1329412b0051b15ce5a748
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java
>> PRE-CREATION
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java
>> 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java
>> 189458a504dce012f3c579ff3b8425f030ad1b54
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java
>> d0644828af83f5c2d2ecbc58bd7545d958be31a0
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java
>> PRE-CREATION
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java
>> 35c534d791648267539833b922643fc65dd600d4
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java
>> f3e720029714da63a7ec7e2bfb7587443ed7ed8b
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java
>> e2d4d915c3311205ca4731b449769c37cd92ac82
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java
>> PRE-CREATION
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java
>> PRE-CREATION
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java
>> f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java
>> PRE-CREATION
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java
>> 057f2b4374b3cc137a20158e70c33dd97c019c87
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java
>> 676284aa9591d05a946d0bc4290ff88c3eb04eba
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java
>> 3a7155687994049d2580f7b39e0df1a39d52c385
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java
>> 2bec526af38d328ea86cb21860471d8bed384eac
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java
>> 19b49e9cb4ca8483de55e644700d2a68d14ab42f
>> >
>> core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java
>> 79d78da3b0f6de47f57740ee13678792b61a87c7
>> >   core/src/main/thrift/client.thrift
>> 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289
>> >   core/src/main/thrift/master.thrift
>> 19960c8857295d22ffba728c95501f069ba953c0
>> >
>> core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java
>> PRE-CREATION
>> >
>> server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java
>> 9e0ac393deb962799e4e98753db1814dd630d14e
>> >
>> server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java
>> 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4
>> >
>> server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java
>> c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8
>> >
>> server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java
>> 4c581530b77a88e141837507a32cdc4f89982c56
>> >
>> server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java
>> PRE-CREATION
>> >
>> server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java
>> PRE-CREATION
>> >
>> server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java
>> PRE-CREATION
>> >
>> server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java
>> 0477a443e307e174965140f0fd14c898a0d98727
>> >
>> server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java
>> 3e0a2bf0e06227780adb92967d439212c0316924
>> >
>> server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java
>> ee337a5d23f04b321a306a306c41ea59e2f731a0
>> >
>> server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java
>> f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03
>> >
>> server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java
>> b57abfec483e3e07b85ed41148e11789fc45461c
>> >
>> server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java
>> 72c64b5897a4b0bf7de8081a76288fd8fb639021
>> >
>> server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java
>> f2196035d93ce5718b09e9754d130015515da91f
>> >
>> server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java
>> 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb
>> >
>> server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java
>> 8a74d0b936d8fad3b020a230b6b20536d740288f
>> >
>> server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java
>> PRE-CREATION
>> >
>> server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java
>> cdee8fbe448592120a5cc5b6682aedfafca7e7bf
>> >   server/master/src/main/java/org/apache/accumulo/master/Master.java
>> 8a1a9b272bf332258febf46b7535d12f83a1dbd0
>> >
>> server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java
>> dd4c2292996d758860191fc054631812adfa34b2
>> >
>> server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java
>> 697c15e173b13bc5909862998b8742708bc933c1
>> >
>> server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java
>> 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72
>> >
>> server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java
>> PRE-CREATION
>> >
>> server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java
>> 160fc7e89320250d24e89526188528ff4786cd6d
>> >
>> server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java
>> df2e0285b10fbdacb9fcacd007b48c1e2891d5d1
>> >
>> server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java
>> PRE-CREATION
>> >
>> server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java
>> 427125721cfaa122378bfe74b6c89b96b2f93137
>> >
>> server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java
>> PRE-CREATION
>> >
>> server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java
>> 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb
>> >
>> server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java
>> b91da522ff13b2be4de3fe82c47875e74cc1e569
>> >
>> server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java
>> 3069aaf9eea3044d14bf7bb7b81c0270a0997f08
>> >
>> server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java
>> PRE-CREATION
>> >
>> server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java
>> 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a
>> >
>> server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java
>> fa14f43100f5a13b16d2d34b95a8466501b93299
>> >   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java
>> 0ef6c6b867b284e86f8252ebb19913b3c1831362
>> >
>> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java
>> be2de2a547aecc72eca7e2c980964ef85551aae8
>> >
>> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java
>> 5fa9bc49439974071fe12d97b371eb4e6ac3db3f
>> >
>> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java
>> 65d3aed4faf1f2a360aa0d4df123390206eae0f3
>> >
>> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java
>> PRE-CREATION
>> >
>> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java
>> b47f1a946e904820a0cc83a4b3e078d40f11bb99
>> >
>> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java
>> 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba
>> >
>> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java
>> PRE-CREATION
>> >
>> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java
>> PRE-CREATION
>> >
>> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java
>> 8fcfab593071458954939970892a88b8793088b3
>> >
>> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java
>> PRE-CREATION
>> >
>> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java
>> d4a4e956699c2b2a483d6360e201da3eccd29847
>> >
>> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java
>> PRE-CREATION
>> >
>> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java
>> 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1
>> >
>> test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java
>> 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c
>> >   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
>> 31867f39dd4d9661a00557c3291258b5e2507b30
>> >   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java
>> PRE-CREATION
>> >
>> test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java
>> b8e1a4fcfcd1f02aa12926a44046493dbe74fe15
>> >   test/system/randomwalk/conf/modules/Concurrent.xml
>> 03e5542d6b5b02f09e899301c68cf1d6746285f5
>> >
>> > Diff: https://reviews.apache.org/r/15166/diff/
>> >
>> >
>> > Testing
>> > -------
>> >
>> >
>> > Thanks,
>> >
>> > Christopher Tubbs
>> >
>> >
>>
>>
>

Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by Keith Turner <ke...@deenlo.com>.
I am still trying to review the code.  I published after page 1 on RB
because RB has been flaky and I was concerned about losing my comments.
 Currently when I try to look at page 2, 3, or 5 RB fails, but I can look
at page 4


On Fri, Nov 8, 2013 at 2:51 PM, <ke...@deenlo.com> wrote:

>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/#review28561
> -----------------------------------------------------------
>
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java
> <https://reviews.apache.org/r/15166/#comment55382>
>
>     Can we shorten TableNamespace to just Namespace?
>
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
> <https://reviews.apache.org/r/15166/#comment55384>
>
>     This might be a good place to provide some information about the
> default namespace and its behavior.  Or at least point out its existance
> and refer to the user manual.
>
>
>
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
> <https://reviews.apache.org/r/15166/#comment55385>
>
>     I am curious if this method returns the default namespace.
>
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
> <https://reviews.apache.org/r/15166/#comment55386>
>
>     Should we document what namespace names are valid here?
>
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
> <https://reviews.apache.org/r/15166/#comment55387>
>
>     would it be more accurate to state that tables created in this
> namespace will use this setting if not specified?
>
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
> <https://reviews.apache.org/r/15166/#comment55390>
>
>     API call was added to tableOperations to wait for online and offline
>
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java
> <https://reviews.apache.org/r/15166/#comment55394>
>
>     Might be good to refactor this code so that namespace and table
> operations use the same code to execute remote fate operations.
>
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java
> <https://reviews.apache.org/r/15166/#comment55393>
>
>     If the client dies it will leave the clone incomplete.  There could
> also be concurrency issue since this is driven from the client side.  Like
> a table being deleted while clone is running.
>
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java
> <https://reviews.apache.org/r/15166/#comment55395>
>
>     Doing this on the client side is susceptible to race conditions.
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java
> <https://reviews.apache.org/r/15166/#comment55400>
>
>     I think the mapping from namespace id to namespace name should be
> resolved once in this method... that way the method will give a consistent
> view in the face of namespace renames
>
>
>
> core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java
> <https://reviews.apache.org/r/15166/#comment55398>
>
>     should not use jlin logger... should not just log an error here
>
>
> - kturner
>
>
> On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
> >
> > -----------------------------------------------------------
> > This is an automatically generated e-mail. To reply, visit:
> > https://reviews.apache.org/r/15166/
> > -----------------------------------------------------------
> >
> > (Updated Nov. 1, 2013, 2:01 a.m.)
> >
> >
> > Review request for accumulo.
> >
> >
> > Bugs: ACCUMULO-802
> >     https://issues.apache.org/jira/browse/ACCUMULO-802
> >
> >
> > Repository: accumulo
> >
> >
> > Description
> > -------
> >
> > ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey,
> https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto
> latest master (including 210 commits)
> >
> >
> > Diffs
> > -----
> >
> >   core/src/main/java/org/apache/accumulo/core/Constants.java
> 9db0c405c5b9fbac13fa735c3ffd6433e9831051
> >   core/src/main/java/org/apache/accumulo/core/client/Connector.java
> bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85
> >
> core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java
> 86a3ff271fc2e085c426da3156cfab9cdbb5c36b
> >
> core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java
> 0f0e998f334631cfb342f9a39fdd12e62aa98f13
> >
> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java
> 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3
> >
> core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java
> bd1156912849b13ebad8f6b974fd35d8adf18f1d
> >
> core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java
> PRE-CREATION
> >   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java
> 8bc725a3405a79c20c690bff3f6fdb6f713be523
> >
> core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java
> 488e0654720250542145e0d543ad16813f8d8b6d
> >
> core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java
> b706ce87bb1e8a525e585b14b7fb8563c3493c2c
> >
> core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java
> 5ee144d9eb67c8e79dad870abbd823cac64e111e
> >
> core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java
> 80ec5133334f9ef466dd7e4077230acfd2c77fb5
> >
> core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java
> 765cda9cac6fb3bc7df9eb8db1c83846960e85c3
> >   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java
> 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047
> >
> core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java
> a3c2043b8120e13a190eb173d8342c205700382f
> >
> core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java
> fb51387fabea6d47854048daad4c8ec14047ab33
> >
> core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java
> 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f
> >
> core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java
> 699396e7e47b858ea8273c969f79dc7b3ebdc577
> >
> core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java
> PRE-CREATION
> >   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java
> 52e1d04998060954b7f09a3b9a6d9fdd898208b0
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java
> 85f68ef2464cb784861a587badd4835d842d8b87
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java
> 31529730935ff78de6c39fea531e20e2ade30a2d
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java
> 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java
> 4280555dfce0856e2e1329412b0051b15ce5a748
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java
> 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java
> 189458a504dce012f3c579ff3b8425f030ad1b54
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java
> d0644828af83f5c2d2ecbc58bd7545d958be31a0
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java
> 35c534d791648267539833b922643fc65dd600d4
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java
> f3e720029714da63a7ec7e2bfb7587443ed7ed8b
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java
> e2d4d915c3311205ca4731b449769c37cd92ac82
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java
> f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java
> PRE-CREATION
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java
> 057f2b4374b3cc137a20158e70c33dd97c019c87
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java
> 676284aa9591d05a946d0bc4290ff88c3eb04eba
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java
> 3a7155687994049d2580f7b39e0df1a39d52c385
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java
> 2bec526af38d328ea86cb21860471d8bed384eac
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java
> 19b49e9cb4ca8483de55e644700d2a68d14ab42f
> >
> core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java
> 79d78da3b0f6de47f57740ee13678792b61a87c7
> >   core/src/main/thrift/client.thrift
> 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289
> >   core/src/main/thrift/master.thrift
> 19960c8857295d22ffba728c95501f069ba953c0
> >
> core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java
> PRE-CREATION
> >
> server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java
> 9e0ac393deb962799e4e98753db1814dd630d14e
> >
> server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java
> 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4
> >
> server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java
> c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8
> >
> server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java
> 4c581530b77a88e141837507a32cdc4f89982c56
> >
> server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java
> PRE-CREATION
> >
> server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java
> PRE-CREATION
> >
> server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java
> PRE-CREATION
> >
> server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java
> 0477a443e307e174965140f0fd14c898a0d98727
> >
> server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java
> 3e0a2bf0e06227780adb92967d439212c0316924
> >
> server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java
> ee337a5d23f04b321a306a306c41ea59e2f731a0
> >
> server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java
> f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03
> >
> server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java
> b57abfec483e3e07b85ed41148e11789fc45461c
> >
> server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java
> 72c64b5897a4b0bf7de8081a76288fd8fb639021
> >
> server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java
> f2196035d93ce5718b09e9754d130015515da91f
> >
> server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java
> 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb
> >
> server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java
> 8a74d0b936d8fad3b020a230b6b20536d740288f
> >
> server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java
> PRE-CREATION
> >
> server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java
> cdee8fbe448592120a5cc5b6682aedfafca7e7bf
> >   server/master/src/main/java/org/apache/accumulo/master/Master.java
> 8a1a9b272bf332258febf46b7535d12f83a1dbd0
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java
> dd4c2292996d758860191fc054631812adfa34b2
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java
> 697c15e173b13bc5909862998b8742708bc933c1
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java
> 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java
> PRE-CREATION
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java
> 160fc7e89320250d24e89526188528ff4786cd6d
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java
> df2e0285b10fbdacb9fcacd007b48c1e2891d5d1
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java
> PRE-CREATION
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java
> 427125721cfaa122378bfe74b6c89b96b2f93137
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java
> PRE-CREATION
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java
> 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java
> b91da522ff13b2be4de3fe82c47875e74cc1e569
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java
> 3069aaf9eea3044d14bf7bb7b81c0270a0997f08
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java
> PRE-CREATION
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java
> 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a
> >
> server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java
> fa14f43100f5a13b16d2d34b95a8466501b93299
> >   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java
> 0ef6c6b867b284e86f8252ebb19913b3c1831362
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java
> be2de2a547aecc72eca7e2c980964ef85551aae8
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java
> 5fa9bc49439974071fe12d97b371eb4e6ac3db3f
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java
> 65d3aed4faf1f2a360aa0d4df123390206eae0f3
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java
> PRE-CREATION
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java
> b47f1a946e904820a0cc83a4b3e078d40f11bb99
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java
> 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java
> PRE-CREATION
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java
> PRE-CREATION
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java
> 8fcfab593071458954939970892a88b8793088b3
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java
> PRE-CREATION
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java
> d4a4e956699c2b2a483d6360e201da3eccd29847
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java
> PRE-CREATION
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java
> 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1
> >
> test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java
> 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c
> >   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
> 31867f39dd4d9661a00557c3291258b5e2507b30
> >   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java
> PRE-CREATION
> >
> test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java
> b8e1a4fcfcd1f02aa12926a44046493dbe74fe15
> >   test/system/randomwalk/conf/modules/Concurrent.xml
> 03e5542d6b5b02f09e899301c68cf1d6746285f5
> >
> > Diff: https://reviews.apache.org/r/15166/diff/
> >
> >
> > Testing
> > -------
> >
> >
> > Thanks,
> >
> > Christopher Tubbs
> >
> >
>
>

Re: Review Request 15166: ACCUMULO-802 Tablespaces

Posted by ke...@deenlo.com.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/15166/#review28561
-----------------------------------------------------------



core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java
<https://reviews.apache.org/r/15166/#comment55382>

    Can we shorten TableNamespace to just Namespace?  



core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
<https://reviews.apache.org/r/15166/#comment55384>

    This might be a good place to provide some information about the default namespace and its behavior.  Or at least point out its existance and refer to the user manual.
    
    



core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
<https://reviews.apache.org/r/15166/#comment55385>

    I am curious if this method returns the default namespace.



core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
<https://reviews.apache.org/r/15166/#comment55386>

    Should we document what namespace names are valid here?



core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
<https://reviews.apache.org/r/15166/#comment55387>

    would it be more accurate to state that tables created in this namespace will use this setting if not specified?



core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java
<https://reviews.apache.org/r/15166/#comment55390>

    API call was added to tableOperations to wait for online and offline



core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java
<https://reviews.apache.org/r/15166/#comment55394>

    Might be good to refactor this code so that namespace and table operations use the same code to execute remote fate operations.



core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java
<https://reviews.apache.org/r/15166/#comment55393>

    If the client dies it will leave the clone incomplete.  There could also be concurrency issue since this is driven from the client side.  Like a table being deleted while clone is running.



core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java
<https://reviews.apache.org/r/15166/#comment55395>

    Doing this on the client side is susceptible to race conditions.



core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java
<https://reviews.apache.org/r/15166/#comment55400>

    I think the mapping from namespace id to namespace name should be resolved once in this method... that way the method will give a consistent view in the face of namespace renames



core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java
<https://reviews.apache.org/r/15166/#comment55398>

    should not use jlin logger... should not just log an error here


- kturner


On Nov. 1, 2013, 2:01 a.m., Christopher Tubbs wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15166/
> -----------------------------------------------------------
> 
> (Updated Nov. 1, 2013, 2:01 a.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-802
>     https://issues.apache.org/jira/browse/ACCUMULO-802
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> ACCUMULO-802 Tablespaces (Table Namespaces), work done by Sean Hickey, https://github.com/Wisellama/accumulo/tree/ACCUMULO-802, rebase'd onto latest master (including 210 commits)
> 
> 
> Diffs
> -----
> 
>   core/src/main/java/org/apache/accumulo/core/Constants.java 9db0c405c5b9fbac13fa735c3ffd6433e9831051 
>   core/src/main/java/org/apache/accumulo/core/client/Connector.java bbfa55f4b9ad8fc0e5f0c0058e2e0564685d7c85 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceExistsException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotEmptyException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/TableNamespaceNotFoundException.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperations.java 86a3ff271fc2e085c426da3156cfab9cdbb5c36b 
>   core/src/main/java/org/apache/accumulo/core/client/admin/SecurityOperationsImpl.java 0f0e998f334631cfb342f9a39fdd12e62aa98f13 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsHelper.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableNamespaceOperationsImpl.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java 1b652f99e23e2dfa06c7373a6f4c3c044f5cd1a3 
>   core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java bd1156912849b13ebad8f6b974fd35d8adf18f1d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/TableNamespaces.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/impl/Tables.java 8bc725a3405a79c20c690bff3f6fdb6f713be523 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/ClientService.java 488e0654720250542145e0d543ad16813f8d8b6d 
>   core/src/main/java/org/apache/accumulo/core/client/impl/thrift/SecurityErrorCode.java b706ce87bb1e8a525e585b14b7fb8563c3493c2c 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockAccumulo.java 5ee144d9eb67c8e79dad870abbd823cac64e111e 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockConnector.java 80ec5133334f9ef466dd7e4077230acfd2c77fb5 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java 765cda9cac6fb3bc7df9eb8db1c83846960e85c3 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTable.java 3dcab11bd50bf189ccc4cbaf97d3d4ecb9133047 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespace.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableNamespaceOperations.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/client/mock/MockTableOperations.java a3c2043b8120e13a190eb173d8342c205700382f 
>   core/src/main/java/org/apache/accumulo/core/client/security/SecurityErrorCode.java fb51387fabea6d47854048daad4c8ec14047ab33 
>   core/src/main/java/org/apache/accumulo/core/master/thrift/MasterClientService.java 5b9949a1b6b7997d08de371c9a36c1e1a2b50b1f 
>   core/src/main/java/org/apache/accumulo/core/security/SystemPermission.java 699396e7e47b858ea8273c969f79dc7b3ebdc577 
>   core/src/main/java/org/apache/accumulo/core/security/TableNamespacePermission.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java 52e1d04998060954b7f09a3b9a6d9fdd898208b0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellCompletor.java 85f68ef2464cb784861a587badd4835d842d8b87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptions.java 31529730935ff78de6c39fea531e20e2ade30a2d 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CloneNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConfigCommand.java 73d21ef6108282c9dd8dd8bc0f2ce77524acedcf 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ConstraintCommand.java 4280555dfce0856e2e1329412b0051b15ce5a748 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/CreateTableCommand.java 0ad787d67eaa5a90d26e113d7a79f0f3218ce0f4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java 189458a504dce012f3c579ff3b8425f030ad1b54 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteIterCommand.java d0644828af83f5c2d2ecbc58bd7545d958be31a0 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/DeleteTableCommand.java 35c534d791648267539833b922643fc65dd600d4 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/GrantCommand.java f3e720029714da63a7ec7e2bfb7587443ed7ed8b 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/ListIterCommand.java e2d4d915c3311205ca4731b449769c37cd92ac82 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacePermissionsCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/NamespacesCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/OptUtil.java f0c14d4cfd9ebf5a480ac63bb9dcd41e085b22f7 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameNamespaceCommand.java PRE-CREATION 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RenameTableCommand.java 057f2b4374b3cc137a20158e70c33dd97c019c87 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/RevokeCommand.java 676284aa9591d05a946d0bc4290ff88c3eb04eba 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/SetIterCommand.java 3a7155687994049d2580f7b39e0df1a39d52c385 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TableOperation.java 2bec526af38d328ea86cb21860471d8bed384eac 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/TablesCommand.java 19b49e9cb4ca8483de55e644700d2a68d14ab42f 
>   core/src/main/java/org/apache/accumulo/core/util/shell/commands/UserPermissionsCommand.java 79d78da3b0f6de47f57740ee13678792b61a87c7 
>   core/src/main/thrift/client.thrift 2f5e9d191a0d80d32e2a88a6e31845f3b93ae289 
>   core/src/main/thrift/master.thrift 19960c8857295d22ffba728c95501f069ba953c0 
>   core/src/test/java/org/apache/accumulo/core/client/mock/MockTableNamespacesTest.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/ServerConstants.java 9e0ac393deb962799e4e98753db1814dd630d14e 
>   server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java 3f1aaa29ef023d2f33fa5b35aad2e57df9b6aff4 
>   server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfiguration.java c9fd5a141a437aef6f1a9d8f8c80999f19af6ec8 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableConfiguration.java 4c581530b77a88e141837507a32cdc4f89982c56 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfWatcher.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableNamespaceConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/conf/TableParentConfiguration.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java 0477a443e307e174965140f0fd14c898a0d98727 
>   server/base/src/main/java/org/apache/accumulo/server/master/balancer/TableLoadBalancer.java 3e0a2bf0e06227780adb92967d439212c0316924 
>   server/base/src/main/java/org/apache/accumulo/server/security/AuditedSecurityOperation.java ee337a5d23f04b321a306a306c41ea59e2f731a0 
>   server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java f00159cc21d8a7b8a47efbbc3d1f2bd96f479a03 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/InsecurePermHandler.java b57abfec483e3e07b85ed41148e11789fc45461c 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/PermissionHandler.java 72c64b5897a4b0bf7de8081a76288fd8fb639021 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java f2196035d93ce5718b09e9754d130015515da91f 
>   server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java 3b9d8b24b85996dfbf734d4910aa6cd0d9247beb 
>   server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java 8a74d0b936d8fad3b020a230b6b20536d740288f 
>   server/base/src/main/java/org/apache/accumulo/server/util/NamespacePropUtil.java PRE-CREATION 
>   server/base/src/main/java/org/apache/accumulo/server/util/TablePropUtil.java cdee8fbe448592120a5cc5b6682aedfafca7e7bf 
>   server/master/src/main/java/org/apache/accumulo/master/Master.java 8a1a9b272bf332258febf46b7535d12f83a1dbd0 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CancelCompactions.java dd4c2292996d758860191fc054631812adfa34b2 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ChangeTableState.java 697c15e173b13bc5909862998b8742708bc933c1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java 8d906d602ae1abdd2f4d774c64b3b4cd1174aa72 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CompactRange.java 160fc7e89320250d24e89526188528ff4786cd6d 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTable.java df2e0285b10fbdacb9fcacd007b48c1e2891d5d1 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/CreateTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTable.java 427125721cfaa122378bfe74b6c89b96b2f93137 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/DeleteTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ExportTable.java 22df3b340bbb9e76ef1fabe16b521654eb7a6bcb 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/ImportTable.java b91da522ff13b2be4de3fe82c47875e74cc1e569 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTable.java 3069aaf9eea3044d14bf7bb7b81c0270a0997f08 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/RenameTableNamespace.java PRE-CREATION 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/TableRangeOp.java 0ad2196a30a959f5ca5c7bdaf6d46a8628fd957a 
>   server/master/src/main/java/org/apache/accumulo/master/tableOps/Utils.java fa14f43100f5a13b16d2d34b95a8466501b93299 
>   server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java 0ef6c6b867b284e86f8252ebb19913b3c1831362 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/ChangePermissions.java be2de2a547aecc72eca7e2c980964ef85551aae8 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CheckPermission.java 5fa9bc49439974071fe12d97b371eb4e6ac3db3f 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTable.java 65d3aed4faf1f2a360aa0d4df123390206eae0f3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CloneTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Config.java b47f1a946e904820a0cc83a4b3e078d40f11bb99 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTable.java 0aa7f7ad0882a3d82bd6ca423a3a8a3dac706fba 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/CreateTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/DeleteTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Merge.java 8fcfab593071458954939970892a88b8793088b3 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/OfflineTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java d4a4e956699c2b2a483d6360e201da3eccd29847 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTableNamespace.java PRE-CREATION 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java 2cf37cecb8223b31b58e1afa4fa08ebf9967a8e1 
>   test/src/main/java/org/apache/accumulo/test/randomwalk/security/WalkingSecurity.java 0ddb75254da156d75bbb0ca1f0a6e63c2443ab1c 
>   test/src/test/java/org/apache/accumulo/test/ShellServerIT.java 31867f39dd4d9661a00557c3291258b5e2507b30 
>   test/src/test/java/org/apache/accumulo/test/TableNamespacesIT.java PRE-CREATION 
>   test/src/test/java/org/apache/accumulo/test/functional/PermissionsIT.java b8e1a4fcfcd1f02aa12926a44046493dbe74fe15 
>   test/system/randomwalk/conf/modules/Concurrent.xml 03e5542d6b5b02f09e899301c68cf1d6746285f5 
> 
> Diff: https://reviews.apache.org/r/15166/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Christopher Tubbs
> 
>