Home | About | Sematext search-lucene.com search-hadoop.com
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB
 Search Hadoop and all its subprojects:

Switch to Plain View
HBase >> mail # dev >> Rolling restart from 0.92 to 0.94


+
lars hofhansl 2013-09-04, 21:00
+
Stack 2013-09-04, 21:39
+
James Taylor 2013-09-04, 22:04
+
Jean-Daniel Cryans 2013-09-04, 22:08
Copy link to this message
-
Re: Rolling restart from 0.92 to 0.94
There are two places (at least) to worry about compatibility -- rpc/wire
compatibility and client api/binary jar compatibility.  In 0.92->0.94 we
got wire compatibility (fixed a few like this HBASE-6710) meaning we could
heterogeneous a client/master/rs from 0.92 and 0.94 (thus allowing rolling
upgrades).  There are a few places where we broke api compatibility and did
not address it.

I'm facing similar problems currently between 0.94 and 0.95/0.96 -- we've
agreed to break wire compat (for the protobuf changes) and we have broken
api compatibliity implicitly (HBASE-7215 removed an api used by a dependent
project)  and explicitly (HBASE-9334/HBASE-9247).

We have a patch in flight that can help detects api compatibility breakages
now -- see HBASE-9153 and its associated gdoc with a detailed report [1] .
 Please comment ! After 0.96 goes out we'll likely be stuck with the
breakages.  Since HBase has many dependencies now we should try to minimize
the amount we do this in the future and be strict about our deprecation
policies.

[1]
https://docs.google.com/a/cloudera.com/document/d/14nqQXlIvgJOxGFTfhSoquYzjW8Yx-v9TqTBqRjiB7g0/edit
On Wed, Sep 4, 2013 at 3:08 PM, Jean-Daniel Cryans <[EMAIL PROTECTED]>wrote:

> Link to this discussion we had in April about binary compatibility:
> http://search-hadoop.com/m/Lg90wHGW981
>
>
> On Wed, Sep 4, 2013 at 3:04 PM, James Taylor <[EMAIL PROTECTED]>
> wrote:
>
> > My two cents: if we want to ensure we're backward compatible, we need to
> do
> > two things: define clear boundaries of the classes and/or packages to
> which
> > this applies, and run automated tests that verify that backward
> > compatibility is maintained across point releases. Or maybe we have this
> > and I'm not aware of it? The way that APIs are annotated in the later
> > branches as public/private/evolving is a good thing, but unfortunately
> > doesn't apply to the 0.94 branch. Maybe that could be back-ported?
> >
> > James
> >
> >
> > On Wed, Sep 4, 2013 at 2:39 PM, Stack <[EMAIL PROTECTED]> wrote:
> >
> > > On Thu, Sep 5, 2013 at 5:00 AM, lars hofhansl <[EMAIL PROTECTED]>
> wrote:
> > >
> > > > Shrijeet Paliwal just pointed me to this section in the HBase
> > bookhttp://
> > > > hbase.apache.org/upgrading.html#upgrade0.94 (thanks Shrijeet):
> > > >
> > > >
> > > > ----
> > > > 1.3. Upgrading from 0.92.x to 0.94.x
> > > > We used to think that 0.92 and 0.94 were interface compatible and
> that
> > > you
> > > > can do a rolling upgrade between these versions but then we figured
> > that
> > > > HBASE-5357 Use builder pattern in HColumnDescriptor changed method
> > > > signatures so rather than return void they instead return
> > > > HColumnDescriptor.  This will throw
> > > > java.lang.NoSuchMethodError:
> > > > org.apache.hadoop.hbase.HColumnDescriptor.setMaxVersions(I)V
> > > > .... so 0.92 and 0.94 are NOT compatible.  You cannot do a rolling
> > > upgrade
> > > > between them.
> > > > ----
> > > >
> > > >
> > > > Is that statement actually correct? The issue here is binary code
> > > > compatibility, which we indeed do not support, but which does not
> > impede
> > > > rolling upgrades between versions (as long as we're wire compatible
> > > between
> > > > releases, which we are).
> > > >
> > >
> > > The statement overreaches with its absolute that the two are NOT
> > > compatible.  If someone suggests text, I'll update the refguide.
> > > St.Ack
> > >
> >
>

--
// Jonathan Hsieh (shay)
// Software Engineer, Cloudera
// [EMAIL PROTECTED]
+
Andrew Purtell 2013-09-04, 21:26
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB