accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sean Hickey (JIRA)" <>
Subject [jira] [Commented] (ACCUMULO-802) table namespaces
Date Thu, 15 Aug 2013 19:02:47 GMT


Sean Hickey commented on ACCUMULO-802:

Since today is my last day to work on Accumulo full time (I'm going back to school for the
fall semester), I figured I should post what I think is left to be done (or at least needs
looked at to make sure it works correctly). 

* I wasn't sure whether I should change the TableOperations functions to throw TableNamespaceNotFoundExceptions
(and possibly break backwards compatibility), so right now they throw IllegalArgumentExceptions
constructed from TableNamespaceNotFoundExceptions.

* In copying the format of TableOperations' create() function, I made the TableNamespaceOperations()
create function take a TimeType for input, but I don't use it. I wasn't sure if we should
apply that TimeType to all tables in the namespace or scrap that functionality for namespaces
in general.

* I never looked into putting qoutas/priorities on namespaces, although that was one of the
original use cases.

* I never implemented "aliasing" or having one table show in multiple namespaces.

* I never messed with the Monitor code to organize the tables by namespace (ACCUMULO-1480).

* I changed the default initial table properties (that are applied when a table is created)
to instead be applied to new namespaces (and the default namespace) rather than each table.

* I wasn't sure if there should be any initial properties on the system namespace, so I left
it empty (no default properties). 

* I didn't add default user permissions for a namespaces (ACCUMULO-617 and ACCUMULO-1479).

* While running RandomWalk, one related error that I see every once in a while is that a table
will have a reference to a namespace that no longer exists. (There are a few other errors
that seem unrelated to table namespaces).

I might be able to work on Accumulo some more if I find time during school. I rebased my git
repo to make it easier to apply my changed (I linked to it in my previous comment). I think
[~ctubbsii] is planning on finishing up the last little bit of this feature.

> table namespaces
> ----------------
>                 Key: ACCUMULO-802
>                 URL:
>             Project: Accumulo
>          Issue Type: New Feature
>            Reporter: Eric Newton
>            Assignee: Sean Hickey
>             Fix For: 1.6.0
>         Attachments: ACCUMULO-802.v0.patch, ACCUMULO-802.v1.patch, ACCUMULO-802.v2.patch,
ACCUMULO-802.v3.patch, ACCUMULO-802.v4.patch, ACCUMULO-802.v5.patch, table-namespaces-README.txt,
table-namespaces-README.v1.txt, table-namespaces-README.v2.txt
> A large cluster is a valuable shared resource.  The current permission system and simple
table naming structure does not allow for delegation of authority and safe partitioning within
this shared resource.
> Use cases:
>  # create a namespace (like "test") and delegate the {{grant}} permission to tables created
in that namespace to a user that would manage those tables. Presently, {{grant}} is never
>  # create simple "test" and "production" namespaces that are trivial for users to switch
between.  For example, instead of having tables "test_index" and "test_documents" the client
would support "index" and "documents" with an API to support switching trivially between the
the different environments.
>  # create a set of tables in a namespace called "latest"  This namespace is re-created
periodically with a map-reduce job.  If code changes inadvertently create a corrupt "latest,"
users can switch to the set of tables known as "safest"  In this way, users can experiment,
and provide feedback on incremental improvements, while have a safe fallback.
>  # two applications hosted on the same cluster that can share a table, which has been
"aliased" into their namespace.  Namespace-local permissions are ignored, but a (most likely
read-only) view of the table is available.  This would be helpful for reference tables.
>  # quotas/priorities.  Implement namespace-specific priorities and resource allocations.
 It is reasonable to run namespace-specific queries and ingest on production equipment. Large
cluster resources are always limited, and often the *only* place where near-production quality
software can be run at full scale.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message