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 Threaded View
HBase >> mail # dev >> Does compatibility between versions also mean binary compatibility?


Copy link to this message
-
Does compatibility between versions also mean binary compatibility?
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
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