Yes. They are 100% forward/backwards compatible on the wire.
However, it is my understanding that there were some minor additions (new API) to 0.9.1 which won't work in 0.9.0... but that won't affect us since we are not using those features (and wouldn't be adding anything that leverages those features in any bugfixes on 1.6.x), and because we provide the jar.
I'm considering whether or not it'd be appropriate to push in ACCUMULO-1691 into the 1.6.1-SNAPSHOT branch. This would effectively bump our dependency on libthrift to 0.9.1. However, thrift 0.9.1 and 0.9.0 are 100% wire-compatible (I've been assured by jfarrell and codesf in the #thrift IRC channel).
Given that this we provide this dependency, and the bump would fix some thrift bugs, and that Thrift's own API is backwards-compatible in this version, I don't think this would impact our community except in the positive.
(Note: currently, my patch for ACCUMULO-1691 bumps up the wire version, but I plan on changing that so it doesn't, now that I've been assured it is compatible... I've also done some manual tests to verify this, and haven't seen any issues across our tests, even without re-generating the thrift classes in ACCUMULO-2773; If I roll ACCUMULO-1691 in, I'd also include ACCUMULO-2773.)
Given this conversation, and because I can't really think of a good reason not to, I'm going to proceed with applying this to 1.6.1, after addressing the issues in RB. That satisfies my desire to make a 1.7.0 minor release down the road, and satisfies busbey's concerns about mixing versioning semantics in 1.x.x (by avoiding 1.x.0 minor releases)
Since there was a discussion thread on this, I wanted to bring this up on the list instead of just leaving a comment on the issue.
I just bisect'ed a failing MetaSplitIT and found that the changes introduced by bumping to 0.9.1 were what supposedly introduced them. The thing that worries me is that putting this in 1.6.1 came with a "it's compatible" guarantee, when, to be perfectly honest, it's obviously not at the level of compatibility that we want it to be for a bug-fix release (it broke a test).
Now, I haven't traced it back far enough to see what has exactly changed with the exceptions (causing us to poll indefinitely instead of fail back to the client), but that makes me worry that assumptions we have in the implementation of our API, WRT exception handling, are suddenly invalid.
I'll try to poke around at this some more to figure it out exactly.
Apache Lucene, Apache Solr and all other Apache Software Foundation projects and their respective logos are trademarks of the Apache Software Foundation.
Elasticsearch, Kibana, Logstash, and Beats are trademarks of Elasticsearch BV, registered in the U.S. and in other countries. This site and Sematext Group is in no way affiliated with Elasticsearch BV.
Service operated by Sematext