accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christopher Tubbs (JIRA)" <>
Subject [jira] [Commented] (ACCUMULO-2589) Create new client API
Date Tue, 02 Dec 2014 21:39:13 GMT


Christopher Tubbs commented on ACCUMULO-2589:


Update: So far, I've been experimenting adding a single entry point, which is an AccumuloClient
object, wired to the implementation in the core jar using java's ServiceLoader. I've created
concrete Table and Namespace objects (as well as Table and Namespace ID objects), and moved
many operations into those. I've begun looking at the scanner/writer APIs and have tried putting
those into the API in sensible locations as well. I've experimented with some API improvements
to the pluggable security components and permissions... but haven't found anything I like
(probably will be deferred to future work). There's still a lot of wiring back to the existing
API/implementations that need to be done, and I need to figure out how we want to do exception
handling in the new API (there have been many suggestions). I'm also trying to find a sensible
serialization practice that we can use on our "dumb" objects that doesn't depend on Hadoop
libraries, but satisfies our serialization needs (in particular, credentials).

I did take a little bit of a break working on this to deal with outstanding 1.7 issues. I'm
now at a place where I can soon revisit this and rebase onto master, which will involve merging
the changes from ACCUMULO-3199.

As for uploading as a feature branch, I didn't want to spam the mailing lists with repeated
rebase-ing, at least until it's a bit more stable and ready to contribute back to the project.
I can collaborate on GitHub, though. I definitely don't want to discourage help from others...
but I'd rather collaborate on GitHub until it's at least a little bit more stable and ready
to contribute.

> Create new client API
> ---------------------
>                 Key: ACCUMULO-2589
>                 URL:
>             Project: Accumulo
>          Issue Type: New Feature
>          Components: client
>            Reporter: Christopher Tubbs
>            Assignee: Christopher Tubbs
>            Priority: Blocker
>             Fix For: 2.0.0
>          Time Spent: 10m
>  Remaining Estimate: 0h
> There are many issues with the current client API, and we've had a lot of lessons learned
that could be incorporated into a new one.
> Some of the issues this would address:
> * questions like "What is considered 'Public API'?"
> * automated testing for incompatible API changes
> * provide better support for alternative implementations of pluggable features
> * distinguish between compile-time dependencies and runtime dependencies
> * consistent exception handling
> * consistent/symmetric getters/setters
> * well-defined resource lifecycles
> * better resource management
> * simpler entry point to communicate with Accumulo
> * better support for client-side configuration management
> * logical layout of first class Accumulo objects in the API (Table, User, Scan, Connection)
> Some of these goal may evolve during the development of this feature, and many previously
identified issues can be moved to sub-tasks of this one. This ticket is intended to cover
the overall feature, but the details will be handled in sub-tasks.

This message was sent by Atlassian JIRA

View raw message