You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by Sergey Shelukhin <se...@hortonworks.com> on 2014/01/10 02:43:40 UTC

1.0 and cleaning up the APIs

Hi.

I was wondering if we intend to release 1.0 as compatible version with 0.96
and 0.98. I would assume so..
If so, then after 1.0, or if not then maybe even for 1.0, to have the first
proper release with clean APIs, I wonder if we should institute a cleanup
of client APIs.
In particular, I have 3 things in mind
1) Making all APIs async by default, with extra parameters/effort/... to
make sync calls.
After all making sync out of async is very easy, have a callback/whatever
and wait for it to be called. Other way around it's not so easy.
2) Resolving visibility issues (where way more things than necessary are
visible), and issues like in HTable class where there are tons of legacy
overloads for processBatchCallback/etc. that should be removed.
3) Getting rid of various behaviors that were kept to be compatible with 94
(e.g. non-intuitive put error handling in HTable).

-- 
CONFIDENTIALITY NOTICE
NOTICE: This message is intended for the use of the individual or entity to 
which it is addressed and may contain information that is confidential, 
privileged and exempt from disclosure under applicable law. If the reader 
of this message is not the intended recipient, you are hereby notified that 
any printing, copying, dissemination, distribution, disclosure or 
forwarding of this communication is strictly prohibited. If you have 
received this communication in error, please contact the sender immediately 
and delete it from your system. Thank You.

Re: 1.0 and cleaning up the APIs

Posted by Andrew Purtell <ap...@apache.org>.
On Fri, Jan 10, 2014 at 9:46 AM, Stack <st...@duboce.net> wrote:

> What you suggest Mr Sergey?  Filing blockers against 1.0?  Any deprecations
> needed in 0.98 before it goes out?
>

Happily accepting patches to 0.98 that deprecate APIs  if we have some idea
of what would/should go away in 1.0 today! No need to ask me about patches
that only add annotations, go for it.

-- 
Best regards,

   - Andy

Problems worthy of attack prove their worth by hitting back. - Piet Hein
(via Tom White)

Re: 1.0 and cleaning up the APIs

Posted by Andrew Purtell <ap...@apache.org>.
On Mon, Jan 13, 2014 at 11:49 AM, Stack <st...@duboce.net> wrote:

> If you want to add an async client in 1.x timeline, do it in additive way?
>  Add an AsyncHTable.   Have HTable use it under the covers.
>

+1, we've been talking about doing this over here, but there are lots of
issues on the collective plate.



-- 
Best regards,

   - Andy

Problems worthy of attack prove their worth by hitting back. - Piet Hein
(via Tom White)

Re: 1.0 and cleaning up the APIs

Posted by Stack <st...@duboce.net>.
On Mon, Jan 13, 2014 at 9:59 AM, Sergey Shelukhin <se...@hortonworks.com>wrote:

> > Lets get 1.0 out sooner rather than later.
> ...
> > I think a cleanup of APIs for 1.0 would be in order.
> Do you mean after 1.0? That's what I read from the previous comment.
> Presumably, changing client APIs will break compat.
>
>

Break APIs in 2.x line, not in 1.x.x line.

If you want to add an async client in 1.x timeline, do it in additive way?
 Add an AsyncHTable.   Have HTable use it under the covers.

St.Ack

Re: 1.0 and cleaning up the APIs

Posted by Sergey Shelukhin <se...@hortonworks.com>.
> Lets get 1.0 out sooner rather than later.
...
> I think a cleanup of APIs for 1.0 would be in order.
Do you mean after 1.0? That's what I read from the previous comment.
Presumably, changing client APIs will break compat.

As for deprecations, if more radical approach is taken, w.r.t. hiding
public things I am not sure how deprecation approach would work; and w.r.t.
usage patterns e.g. making async APIs the default, entire HTable class
might need to be deprecated :) Otherwise, I think the deprecations already
in 98 might be good. So we can remove these in 1.0.
I wanted to get some opinion on the viability of the former options.




On Fri, Jan 10, 2014 at 9:46 AM, Stack <st...@duboce.net> wrote:

> On Thu, Jan 9, 2014 at 5:43 PM, Sergey Shelukhin <sergey@hortonworks.com
> >wrote:
>
> > Hi.
> >
> > I was wondering if we intend to release 1.0 as compatible version with
> 0.96
> > and 0.98. I would assume so..
> >
>
>
> +1
>
> Lets get 1.0 out sooner rather than later.
>
>
>
> > If so, then after 1.0, or if not then maybe even for 1.0, to have the
> first
> > proper release with clean APIs, I wonder if we should institute a cleanup
> > of client APIs.
> >
>
> I think a cleanup of APIs for 1.0 would be in order.
>
>
>
> > In particular, I have 3 things in mind
> > 1) Making all APIs async by default, with extra parameters/effort/... to
> > make sync calls.
> > After all making sync out of async is very easy, have a callback/whatever
> > and wait for it to be called. Other way around it's not so easy.
> >
>
> This sounds like a post-1.0 effort.
>
>
> > 2) Resolving visibility issues (where way more things than necessary are
> > visible), and issues like in HTable class where there are tons of legacy
> > overloads for processBatchCallback/etc. that should be removed.
> >
>
> +1
>
>  Our Jon Hsieh did a monster job narrowing the API for 0.96 w/ annotations
> which should help here.
>
>
>
> > 3) Getting rid of various behaviors that were kept to be compatible with
> 94
> > (e.g. non-intuitive put error handling in HTable).
> >
>
> +1
>
> What you suggest Mr Sergey?  Filing blockers against 1.0?  Any deprecations
> needed in 0.98 before it goes out?
>
> St.Ack
>

-- 
CONFIDENTIALITY NOTICE
NOTICE: This message is intended for the use of the individual or entity to 
which it is addressed and may contain information that is confidential, 
privileged and exempt from disclosure under applicable law. If the reader 
of this message is not the intended recipient, you are hereby notified that 
any printing, copying, dissemination, distribution, disclosure or 
forwarding of this communication is strictly prohibited. If you have 
received this communication in error, please contact the sender immediately 
and delete it from your system. Thank You.

Re: 1.0 and cleaning up the APIs

Posted by Stack <st...@duboce.net>.
On Thu, Jan 9, 2014 at 5:43 PM, Sergey Shelukhin <se...@hortonworks.com>wrote:

> Hi.
>
> I was wondering if we intend to release 1.0 as compatible version with 0.96
> and 0.98. I would assume so..
>


+1

Lets get 1.0 out sooner rather than later.



> If so, then after 1.0, or if not then maybe even for 1.0, to have the first
> proper release with clean APIs, I wonder if we should institute a cleanup
> of client APIs.
>

I think a cleanup of APIs for 1.0 would be in order.



> In particular, I have 3 things in mind
> 1) Making all APIs async by default, with extra parameters/effort/... to
> make sync calls.
> After all making sync out of async is very easy, have a callback/whatever
> and wait for it to be called. Other way around it's not so easy.
>

This sounds like a post-1.0 effort.


> 2) Resolving visibility issues (where way more things than necessary are
> visible), and issues like in HTable class where there are tons of legacy
> overloads for processBatchCallback/etc. that should be removed.
>

+1

 Our Jon Hsieh did a monster job narrowing the API for 0.96 w/ annotations
which should help here.



> 3) Getting rid of various behaviors that were kept to be compatible with 94
> (e.g. non-intuitive put error handling in HTable).
>

+1

What you suggest Mr Sergey?  Filing blockers against 1.0?  Any deprecations
needed in 0.98 before it goes out?

St.Ack