hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jean-Daniel Cryans <jdcry...@apache.org>
Subject Does compatibility between versions also mean binary compatibility?
Date Thu, 04 Apr 2013 20:20:38 GMT
tl;dr should two compatible versions be considered both wire and
binary compatible or just the former?

Hey devs,

0.92 is compatible with 0.94, meaning that you can run a client for
either against the other and you can roll restart from 0.92 to 0.94.

What about binary compatibility? Meaning, can you run user code
compiled against 0.92 with 0.94's jars?

Unfortunately, the answer is "no" in this case if you invoke setters
on HColumnDescriptor as you'll get:

java.lang.NoSuchMethodError:
org.apache.hadoop.hbase.HColumnDescriptor.setMaxVersions(I)V

HBASE-5357 "Use builder pattern in HColumnDescriptor" changed the
method signatures by changing "void" to "HColumnDescriptor" so it' not
the same methods anymore.

I don't think we really had talks about binary compatibility before so
this is why I'm raising it up now.

Should "compatible" versions be just wire compatible or both wire and
binary compatible? The latter means we need new tests. I think it
should be both.

What do you guys think?

J-D

Mime
View raw message