What was it about Thrift that drove us to use it? Was it the bindings for multiple languages? Should this decision be revisited?
----- Original Message ----- From: "Josh Elser" <[email protected]> To: "dev" <[email protected]> Sent: Tuesday, December 1, 2015 12:49:26 PM Subject: State of our RPCs Hi -- My adventures in Thrift as a part of ACCUMULO-4065 are finally coming to a close, it seems. The briefest summary I can give is that our hack to work around an 0.9.0->0.9.1 compatibility issue ended up creating a bug in a very obtuse case (when a server answering a oneway Thrift call threw an RTE or an Error). Given some other recent chatter in the project, I'm left wondering: what next? We've long considered Thrift to be a very useful tool, but extremely scary to upgrade. I think this is just another sign of this. This leaves me asking, how do we fix this? Best as I understand it, Thrift is still a relatively active project (at least their mailing list archives shows it). My impression is that the Java library is much less-so. Most of our issues to me that they ultimately stem from incompatibilities between libthrift versions and uncaught performance regressions. Assuming that to be true, do we need to make a coordinated effort to improve the upstream libthrift code? Become a part of their community, focusing on preventing these sorts of issues from ever filtering down to us? Help them generate and follow compatibility guidelines? I feel like our strategy over the past few years has been to "avert your eyes" -- if we don't touch it, it'll hopefully be ok. Perhaps we need to try something new. Thoughts? - Josh
