You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@accumulo.apache.org by Max Thomas <ma...@jhu.edu> on 2015/08/19 19:01:15 UTC

thrift versions in accumulo

The latest major thrift release is 0.9.2; Accumulo 1.7 (and the current 
master branch on Github) depends on 0.9.1. 0.9.2 fixes a number of 
issues that are desirable to have, such as functions in Python for hash 
codes.

An initial test with a Java project depending on thrift 0.9.2 and 
accumulo results in an exception when the Accumulo server starts, 
presumably due to conflicting classes.

I have a few questions:

1) Are there creative Maven things to get Accumulo and thrift 0.9.2 to 
place nicely together without building Accumulo from scratch?

2) Is there a plan in place to upgrade the thrift dependency for 1.8.0 
or the 1.7.x line? (Perhaps short term; see below)

3) I see this issue on JIRA: 
https://issues.apache.org/jira/browse/ACCUMULO-756?jql=project%20%3D%20ACCUMULO%20AND%20text%20~%20thrift

Is work still active on this issue?

Re: thrift versions in accumulo

Posted by dl...@comcast.net.
+1 to Netty. I have used it and like it, but I think you will have to write all of the code yourself. Nifty (Facebook) could be an option to use Thrift and Netty together. Finagle (Twitter) would be another alternative. 

----- Original Message -----

From: "Christopher" <ct...@apache.org> 
To: "Accumulo User List" <us...@accumulo.apache.org> 
Sent: Wednesday, August 19, 2015 3:50:45 PM 
Subject: Re: thrift versions in accumulo 

Well, Thrift serves two purposes for us. It manages the RPC API and 
handles the data serialization for the RPC. 

Long term, I'd like to look at Netty for handling the API (because it 
seems stable, widely used, and feature-rich). I'm not particularly 
concerned about the serialization, as long as the library is stable. 
Avro makes as much sense to me as any other, but I haven't actually 
used it yet, so I'll reserve judgment. 

Even if we move away from Thrift in the long-term for the 
client/server and server/server RPCs, we'll probably not get rid of it 
entirely. It's still pretty useful for the accumulo-proxy. However, 
since that's a small, optional add-on, it'd be pretty easy to isolate 
thrift to just be a dependency of that... and presumably it'd be easy 
to rebuild that add-on component for different thrift versions or to 
support multiple versions. 

-- 
Christopher L Tubbs II 
http://gravatar.com/ctubbsii 


On Wed, Aug 19, 2015 at 3:41 PM, Max Thomas <ma...@jhu.edu> wrote: 
> I'm not opposed to the idea... 
> 
> What about the long term future (e.g., Christopher's comment) for Thrift? 
> Are there particularly attractive alternatives (Avro) that you have in mind 
> for the project? Asking both as a interested user and general technologist. 
> 
> 
> On 8/19/15 3:20 PM, Christopher wrote: 
>> 
>> +1 to that. 
>> 
>> -- 
>> Christopher L Tubbs II 
>> http://gravatar.com/ctubbsii 
>> 
>> 
>> On Wed, Aug 19, 2015 at 3:14 PM, Josh Elser <jo...@gmail.com> wrote: 
>>> 
>>> I guess it's also worth being explicit: if you have the cycles to work on 
>>> this, we can help give direction on trying to switch 1.8.0 to 0.9.2, Max. 
>>> 
>>> "Necessary work" doesn't imply that it has to be a committer. Likely 
>>> vetted 
>>> by one of us in the end, but you can definitely help push this along if 
>>> you 
>>> have the time/cycles. 
>>> 
>>> 
>>> Christopher wrote: 
>>>> 
>>>> 
>>>> ACCUMULO-756 has been put on the back-burner for now (at least from 
>>>> me). I'd love to revisit it, but unfortunately, I've had other 
>>>> priorities. 
>>>> 
>>>> As for 0.9.2, I've had a lot of concerns over our continued use of 
>>>> Thrift. It has had serious regressions, and behavior changes in "bug 
>>>> fixes" that have not been expected. I'd be in favor of switching to 
>>>> 0.9.2 for Accumulo 1.8.0, if we can be reasonably assured it's not 
>>>> going to wreak havoc on us like 0.9.0->0.9.1 did. That means time and 
>>>> testing. I think we can go ahead and make a ticket for it (if it's not 
>>>> done already), and if somebody has time to do it for 1.8.0, great. If 
>>>> it turns out to be more trouble than it's worth, or if it causes 
>>>> unnecessary problems, we can postpone or roll back. 
>>>> 
>>>> For 1.7.x, we'll likely stay with 0.9.1, unless our experience working 
>>>> with 0.9.2 on 1.8.0 leads us to believe that it'd be a safe 
>>>> transition. It'd have to be *very* low risk, I imagine... but we'd 
>>>> probably need to discuss further once we have more information. 
>>>> 
>>>> -- 
>>>> Christopher L Tubbs II 
>>>> http://gravatar.com/ctubbsii 
>>>> 
>>>> 
>>>> On Wed, Aug 19, 2015 at 1:56 PM, Josh Elser<jo...@gmail.com> 
>>>> wrote: 
>>>>> 
>>>>> 
>>>>> We talked about updating 1.8.0 to 0.9.2. 1.7 would very likely not be 
>>>>> updated to 0.9.2 due to worry of stability from Thrift (this has been a 
>>>>> real 
>>>>> problem in the past). 
>>>>> 
>>>>> Thrift itself needs consistent libraries on both sides of the wire. An 
>>>>> 0.9.1 
>>>>> client doesn't work with an 0.9.2 server. Thrift's compatibility gives 
>>>>> us 
>>>>> the ability to run Accumulo 1.6 clients against Accumulo 1.7 servers 
>>>>> (hypothetically). 
>>>>> 
>>>>> Hopefully, you could bump the version, recompile the Thrift code in 1.7 
>>>>> and 
>>>>> it would work if you want to experiment. YMMV 
>>>>> 
>>>>> 
>>>>> Max Thomas wrote: 
>>>>>> 
>>>>>> 
>>>>>> The latest major thrift release is 0.9.2; Accumulo 1.7 (and the 
>>>>>> current 
>>>>>> master branch on Github) depends on 0.9.1. 0.9.2 fixes a number of 
>>>>>> issues that are desirable to have, such as functions in Python for 
>>>>>> hash 
>>>>>> codes. 
>>>>>> 
>>>>>> An initial test with a Java project depending on thrift 0.9.2 and 
>>>>>> accumulo results in an exception when the Accumulo server starts, 
>>>>>> presumably due to conflicting classes. 
>>>>>> 
>>>>>> I have a few questions: 
>>>>>> 
>>>>>> 1) Are there creative Maven things to get Accumulo and thrift 0.9.2 to 
>>>>>> place nicely together without building Accumulo from scratch? 
>>>>>> 
>>>>>> 2) Is there a plan in place to upgrade the thrift dependency for 1.8.0 
>>>>>> or the 1.7.x line? (Perhaps short term; see below) 
>>>>>> 
>>>>>> 3) I see this issue on JIRA: 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> https://issues.apache.org/jira/browse/ACCUMULO-756?jql=project%20%3D%20ACCUMULO%20AND%20text%20~%20thrift 
>>>>>> 
>>>>>> 
>>>>>> Is work still active on this issue? 


Re: thrift versions in accumulo

Posted by Christopher <ct...@apache.org>.
On Wed, Aug 19, 2015 at 4:01 PM, Josh Elser <jo...@gmail.com> wrote:
> Christopher wrote:
>>
>> Well, Thrift serves two purposes for us. It manages the RPC API and
>> handles the data serialization for the RPC.
>
>
> Hit the nail on the head. It's nice because it does solve formatting the
> data in a compatible way and also delivering that data from client ot
> server. It also has lots of nice things like SSL and SASl support baked in
> too. Take a look at the 2k lines of code HBase maintains just to set up an
> RPC connection. :)

I'd bet we have at least 2k lines of copied/slightly-modified Thrift
code baked in to Accumulo, reimplemented so we could access APIs which
have repeatedly regressed in visibility.
And, I'm sure we have more than that in "utility code" to set up a
Thrift server and/or client.

>
>> Long term, I'd like to look at Netty for handling the API (because it
>> seems stable, widely used, and feature-rich). I'm not particularly
>> concerned about the serialization, as long as the library is stable.
>> Avro makes as much sense to me as any other, but I haven't actually
>> used it yet, so I'll reserve judgment.
>>
>> Even if we move away from Thrift in the long-term for the
>> client/server and server/server RPCs, we'll probably not get rid of it
>> entirely. It's still pretty useful for the accumulo-proxy. However,
>> since that's a small, optional add-on, it'd be pretty easy to isolate
>> thrift to just be a dependency of that... and presumably it'd be easy
>> to rebuild that add-on component for different thrift versions or to
>> support multiple versions.
>
>
> I know Sean had expressed a desire in trying to pull out Thrift from the
> core of things to make this kind of experimentation easier. Being able to
> express our RPCs in a way that isn't tied to Thrift would be step #1. Then,
> make Thrift be an "implementation" (convert to that generic way from step
> #1). After that, it should be straightforward to use whatever serialization
> and transport mechanism your heart desires (and your fingers code).

We might be able to change the way we leverage Thrift, to inoculate
ourselves from some of its nuisances as a stepping stone in this
transition.

For example, we could make sure we catch and properly return any
server-side exceptions at the Accumulo layer, so we're not relying on
Thrift to do any exception-handling/serialization for us. (That was a
pain point with 0.9.1) Similarly, we can simplify our parameters in
our RPC methods, so they take a data structure (which can be treated
as a byte source) rather than a parameter list (also a pain point in
0.9.1, due to a modified implicit serialVersionUID having changed).
That would allow us to explicitly control the API evolution, and would
ease swapping out serialization while still using Thrift to manage the
connections.

>
> +1 To Thrift being around in some form for the proxy for the foreseeable
> future.
>
>
>> --
>> Christopher L Tubbs II
>> http://gravatar.com/ctubbsii
>>
>>
>> On Wed, Aug 19, 2015 at 3:41 PM, Max Thomas<ma...@jhu.edu>  wrote:
>>>
>>> I'm not opposed to the idea...
>>>
>>> What about the long term future (e.g., Christopher's comment) for Thrift?
>>> Are there particularly attractive alternatives (Avro) that you have in
>>> mind
>>> for the project? Asking both as a interested user and general
>>> technologist.
>>>
>>>
>

Re: thrift versions in accumulo

Posted by Josh Elser <jo...@gmail.com>.
Christopher wrote:
> Well, Thrift serves two purposes for us. It manages the RPC API and
> handles the data serialization for the RPC.

Hit the nail on the head. It's nice because it does solve formatting the 
data in a compatible way and also delivering that data from client ot 
server. It also has lots of nice things like SSL and SASl support baked 
in too. Take a look at the 2k lines of code HBase maintains just to set 
up an RPC connection. :)

> Long term, I'd like to look at Netty for handling the API (because it
> seems stable, widely used, and feature-rich). I'm not particularly
> concerned about the serialization, as long as the library is stable.
> Avro makes as much sense to me as any other, but I haven't actually
> used it yet, so I'll reserve judgment.
>
> Even if we move away from Thrift in the long-term for the
> client/server and server/server RPCs, we'll probably not get rid of it
> entirely. It's still pretty useful for the accumulo-proxy. However,
> since that's a small, optional add-on, it'd be pretty easy to isolate
> thrift to just be a dependency of that... and presumably it'd be easy
> to rebuild that add-on component for different thrift versions or to
> support multiple versions.

I know Sean had expressed a desire in trying to pull out Thrift from the 
core of things to make this kind of experimentation easier. Being able 
to express our RPCs in a way that isn't tied to Thrift would be step #1. 
Then, make Thrift be an "implementation" (convert to that generic way 
from step #1). After that, it should be straightforward to use whatever 
serialization and transport mechanism your heart desires (and your 
fingers code).

+1 To Thrift being around in some form for the proxy for the foreseeable 
future.

> --
> Christopher L Tubbs II
> http://gravatar.com/ctubbsii
>
>
> On Wed, Aug 19, 2015 at 3:41 PM, Max Thomas<ma...@jhu.edu>  wrote:
>> I'm not opposed to the idea...
>>
>> What about the long term future (e.g., Christopher's comment) for Thrift?
>> Are there particularly attractive alternatives (Avro) that you have in mind
>> for the project? Asking both as a interested user and general technologist.
>>
>>

Re: thrift versions in accumulo

Posted by Christopher <ct...@apache.org>.
Well, Thrift serves two purposes for us. It manages the RPC API and
handles the data serialization for the RPC.

Long term, I'd like to look at Netty for handling the API (because it
seems stable, widely used, and feature-rich). I'm not particularly
concerned about the serialization, as long as the library is stable.
Avro makes as much sense to me as any other, but I haven't actually
used it yet, so I'll reserve judgment.

Even if we move away from Thrift in the long-term for the
client/server and server/server RPCs, we'll probably not get rid of it
entirely. It's still pretty useful for the accumulo-proxy. However,
since that's a small, optional add-on, it'd be pretty easy to isolate
thrift to just be a dependency of that... and presumably it'd be easy
to rebuild that add-on component for different thrift versions or to
support multiple versions.

--
Christopher L Tubbs II
http://gravatar.com/ctubbsii


On Wed, Aug 19, 2015 at 3:41 PM, Max Thomas <ma...@jhu.edu> wrote:
> I'm not opposed to the idea...
>
> What about the long term future (e.g., Christopher's comment) for Thrift?
> Are there particularly attractive alternatives (Avro) that you have in mind
> for the project? Asking both as a interested user and general technologist.
>
>
> On 8/19/15 3:20 PM, Christopher wrote:
>>
>> +1 to that.
>>
>> --
>> Christopher L Tubbs II
>> http://gravatar.com/ctubbsii
>>
>>
>> On Wed, Aug 19, 2015 at 3:14 PM, Josh Elser <jo...@gmail.com> wrote:
>>>
>>> I guess it's also worth being explicit: if you have the cycles to work on
>>> this, we can help give direction on trying to switch 1.8.0 to 0.9.2, Max.
>>>
>>> "Necessary work" doesn't imply that it has to be a committer. Likely
>>> vetted
>>> by one of us in the end, but you can definitely help push this along if
>>> you
>>> have the time/cycles.
>>>
>>>
>>> Christopher wrote:
>>>>
>>>>
>>>> ACCUMULO-756 has been put on the back-burner for now (at least from
>>>> me). I'd love to revisit it, but unfortunately, I've had other
>>>> priorities.
>>>>
>>>> As for 0.9.2, I've had a lot of concerns over our continued use of
>>>> Thrift. It has had serious regressions, and behavior changes in "bug
>>>> fixes" that have not been expected. I'd be in favor of switching to
>>>> 0.9.2 for Accumulo 1.8.0, if we can be reasonably assured it's not
>>>> going to wreak havoc on us like 0.9.0->0.9.1 did. That means time and
>>>> testing. I think we can go ahead and make a ticket for it (if it's not
>>>> done already), and if somebody has time to do it for 1.8.0, great. If
>>>> it turns out to be more trouble than it's worth, or if it causes
>>>> unnecessary problems, we can postpone or roll back.
>>>>
>>>> For 1.7.x, we'll likely stay with 0.9.1, unless our experience working
>>>> with 0.9.2 on 1.8.0 leads us to believe that it'd be a safe
>>>> transition. It'd have to be *very* low risk, I imagine... but we'd
>>>> probably need to discuss further once we have more information.
>>>>
>>>> --
>>>> Christopher L Tubbs II
>>>> http://gravatar.com/ctubbsii
>>>>
>>>>
>>>> On Wed, Aug 19, 2015 at 1:56 PM, Josh Elser<jo...@gmail.com>
>>>> wrote:
>>>>>
>>>>>
>>>>> We talked about updating 1.8.0 to 0.9.2. 1.7 would very likely not be
>>>>> updated to 0.9.2 due to worry of stability from Thrift (this has been a
>>>>> real
>>>>> problem in the past).
>>>>>
>>>>> Thrift itself needs consistent libraries on both sides of the wire. An
>>>>> 0.9.1
>>>>> client doesn't work with an 0.9.2 server. Thrift's compatibility gives
>>>>> us
>>>>> the ability to run Accumulo 1.6 clients against Accumulo 1.7 servers
>>>>> (hypothetically).
>>>>>
>>>>> Hopefully, you could bump the version, recompile the Thrift code in 1.7
>>>>> and
>>>>> it would work if you want to experiment. YMMV
>>>>>
>>>>>
>>>>> Max Thomas wrote:
>>>>>>
>>>>>>
>>>>>> The latest major thrift release is 0.9.2; Accumulo 1.7 (and the
>>>>>> current
>>>>>> master branch on Github) depends on 0.9.1. 0.9.2 fixes a number of
>>>>>> issues that are desirable to have, such as functions in Python for
>>>>>> hash
>>>>>> codes.
>>>>>>
>>>>>> An initial test with a Java project depending on thrift 0.9.2 and
>>>>>> accumulo results in an exception when the Accumulo server starts,
>>>>>> presumably due to conflicting classes.
>>>>>>
>>>>>> I have a few questions:
>>>>>>
>>>>>> 1) Are there creative Maven things to get Accumulo and thrift 0.9.2 to
>>>>>> place nicely together without building Accumulo from scratch?
>>>>>>
>>>>>> 2) Is there a plan in place to upgrade the thrift dependency for 1.8.0
>>>>>> or the 1.7.x line? (Perhaps short term; see below)
>>>>>>
>>>>>> 3) I see this issue on JIRA:
>>>>>>
>>>>>>
>>>>>>
>>>>>> https://issues.apache.org/jira/browse/ACCUMULO-756?jql=project%20%3D%20ACCUMULO%20AND%20text%20~%20thrift
>>>>>>
>>>>>>
>>>>>> Is work still active on this issue?

Re: thrift versions in accumulo

Posted by Max Thomas <ma...@jhu.edu>.
I'm not opposed to the idea...

What about the long term future (e.g., Christopher's comment) for 
Thrift? Are there particularly attractive alternatives (Avro) that you 
have in mind for the project? Asking both as a interested user and 
general technologist.

On 8/19/15 3:20 PM, Christopher wrote:
> +1 to that.
>
> --
> Christopher L Tubbs II
> http://gravatar.com/ctubbsii
>
>
> On Wed, Aug 19, 2015 at 3:14 PM, Josh Elser <jo...@gmail.com> wrote:
>> I guess it's also worth being explicit: if you have the cycles to work on
>> this, we can help give direction on trying to switch 1.8.0 to 0.9.2, Max.
>>
>> "Necessary work" doesn't imply that it has to be a committer. Likely vetted
>> by one of us in the end, but you can definitely help push this along if you
>> have the time/cycles.
>>
>>
>> Christopher wrote:
>>>
>>> ACCUMULO-756 has been put on the back-burner for now (at least from
>>> me). I'd love to revisit it, but unfortunately, I've had other
>>> priorities.
>>>
>>> As for 0.9.2, I've had a lot of concerns over our continued use of
>>> Thrift. It has had serious regressions, and behavior changes in "bug
>>> fixes" that have not been expected. I'd be in favor of switching to
>>> 0.9.2 for Accumulo 1.8.0, if we can be reasonably assured it's not
>>> going to wreak havoc on us like 0.9.0->0.9.1 did. That means time and
>>> testing. I think we can go ahead and make a ticket for it (if it's not
>>> done already), and if somebody has time to do it for 1.8.0, great. If
>>> it turns out to be more trouble than it's worth, or if it causes
>>> unnecessary problems, we can postpone or roll back.
>>>
>>> For 1.7.x, we'll likely stay with 0.9.1, unless our experience working
>>> with 0.9.2 on 1.8.0 leads us to believe that it'd be a safe
>>> transition. It'd have to be *very* low risk, I imagine... but we'd
>>> probably need to discuss further once we have more information.
>>>
>>> --
>>> Christopher L Tubbs II
>>> http://gravatar.com/ctubbsii
>>>
>>>
>>> On Wed, Aug 19, 2015 at 1:56 PM, Josh Elser<jo...@gmail.com>  wrote:
>>>>
>>>> We talked about updating 1.8.0 to 0.9.2. 1.7 would very likely not be
>>>> updated to 0.9.2 due to worry of stability from Thrift (this has been a
>>>> real
>>>> problem in the past).
>>>>
>>>> Thrift itself needs consistent libraries on both sides of the wire. An
>>>> 0.9.1
>>>> client doesn't work with an 0.9.2 server. Thrift's compatibility gives us
>>>> the ability to run Accumulo 1.6 clients against Accumulo 1.7 servers
>>>> (hypothetically).
>>>>
>>>> Hopefully, you could bump the version, recompile the Thrift code in 1.7
>>>> and
>>>> it would work if you want to experiment. YMMV
>>>>
>>>>
>>>> Max Thomas wrote:
>>>>>
>>>>> The latest major thrift release is 0.9.2; Accumulo 1.7 (and the current
>>>>> master branch on Github) depends on 0.9.1. 0.9.2 fixes a number of
>>>>> issues that are desirable to have, such as functions in Python for hash
>>>>> codes.
>>>>>
>>>>> An initial test with a Java project depending on thrift 0.9.2 and
>>>>> accumulo results in an exception when the Accumulo server starts,
>>>>> presumably due to conflicting classes.
>>>>>
>>>>> I have a few questions:
>>>>>
>>>>> 1) Are there creative Maven things to get Accumulo and thrift 0.9.2 to
>>>>> place nicely together without building Accumulo from scratch?
>>>>>
>>>>> 2) Is there a plan in place to upgrade the thrift dependency for 1.8.0
>>>>> or the 1.7.x line? (Perhaps short term; see below)
>>>>>
>>>>> 3) I see this issue on JIRA:
>>>>>
>>>>>
>>>>> https://issues.apache.org/jira/browse/ACCUMULO-756?jql=project%20%3D%20ACCUMULO%20AND%20text%20~%20thrift
>>>>>
>>>>>
>>>>> Is work still active on this issue?

Re: thrift versions in accumulo

Posted by Christopher <ct...@apache.org>.
+1 to that.

--
Christopher L Tubbs II
http://gravatar.com/ctubbsii


On Wed, Aug 19, 2015 at 3:14 PM, Josh Elser <jo...@gmail.com> wrote:
> I guess it's also worth being explicit: if you have the cycles to work on
> this, we can help give direction on trying to switch 1.8.0 to 0.9.2, Max.
>
> "Necessary work" doesn't imply that it has to be a committer. Likely vetted
> by one of us in the end, but you can definitely help push this along if you
> have the time/cycles.
>
>
> Christopher wrote:
>>
>> ACCUMULO-756 has been put on the back-burner for now (at least from
>> me). I'd love to revisit it, but unfortunately, I've had other
>> priorities.
>>
>> As for 0.9.2, I've had a lot of concerns over our continued use of
>> Thrift. It has had serious regressions, and behavior changes in "bug
>> fixes" that have not been expected. I'd be in favor of switching to
>> 0.9.2 for Accumulo 1.8.0, if we can be reasonably assured it's not
>> going to wreak havoc on us like 0.9.0->0.9.1 did. That means time and
>> testing. I think we can go ahead and make a ticket for it (if it's not
>> done already), and if somebody has time to do it for 1.8.0, great. If
>> it turns out to be more trouble than it's worth, or if it causes
>> unnecessary problems, we can postpone or roll back.
>>
>> For 1.7.x, we'll likely stay with 0.9.1, unless our experience working
>> with 0.9.2 on 1.8.0 leads us to believe that it'd be a safe
>> transition. It'd have to be *very* low risk, I imagine... but we'd
>> probably need to discuss further once we have more information.
>>
>> --
>> Christopher L Tubbs II
>> http://gravatar.com/ctubbsii
>>
>>
>> On Wed, Aug 19, 2015 at 1:56 PM, Josh Elser<jo...@gmail.com>  wrote:
>>>
>>> We talked about updating 1.8.0 to 0.9.2. 1.7 would very likely not be
>>> updated to 0.9.2 due to worry of stability from Thrift (this has been a
>>> real
>>> problem in the past).
>>>
>>> Thrift itself needs consistent libraries on both sides of the wire. An
>>> 0.9.1
>>> client doesn't work with an 0.9.2 server. Thrift's compatibility gives us
>>> the ability to run Accumulo 1.6 clients against Accumulo 1.7 servers
>>> (hypothetically).
>>>
>>> Hopefully, you could bump the version, recompile the Thrift code in 1.7
>>> and
>>> it would work if you want to experiment. YMMV
>>>
>>>
>>> Max Thomas wrote:
>>>>
>>>> The latest major thrift release is 0.9.2; Accumulo 1.7 (and the current
>>>> master branch on Github) depends on 0.9.1. 0.9.2 fixes a number of
>>>> issues that are desirable to have, such as functions in Python for hash
>>>> codes.
>>>>
>>>> An initial test with a Java project depending on thrift 0.9.2 and
>>>> accumulo results in an exception when the Accumulo server starts,
>>>> presumably due to conflicting classes.
>>>>
>>>> I have a few questions:
>>>>
>>>> 1) Are there creative Maven things to get Accumulo and thrift 0.9.2 to
>>>> place nicely together without building Accumulo from scratch?
>>>>
>>>> 2) Is there a plan in place to upgrade the thrift dependency for 1.8.0
>>>> or the 1.7.x line? (Perhaps short term; see below)
>>>>
>>>> 3) I see this issue on JIRA:
>>>>
>>>>
>>>> https://issues.apache.org/jira/browse/ACCUMULO-756?jql=project%20%3D%20ACCUMULO%20AND%20text%20~%20thrift
>>>>
>>>>
>>>> Is work still active on this issue?

Re: thrift versions in accumulo

Posted by Josh Elser <jo...@gmail.com>.
I guess it's also worth being explicit: if you have the cycles to work 
on this, we can help give direction on trying to switch 1.8.0 to 0.9.2, Max.

"Necessary work" doesn't imply that it has to be a committer. Likely 
vetted by one of us in the end, but you can definitely help push this 
along if you have the time/cycles.

Christopher wrote:
> ACCUMULO-756 has been put on the back-burner for now (at least from
> me). I'd love to revisit it, but unfortunately, I've had other
> priorities.
>
> As for 0.9.2, I've had a lot of concerns over our continued use of
> Thrift. It has had serious regressions, and behavior changes in "bug
> fixes" that have not been expected. I'd be in favor of switching to
> 0.9.2 for Accumulo 1.8.0, if we can be reasonably assured it's not
> going to wreak havoc on us like 0.9.0->0.9.1 did. That means time and
> testing. I think we can go ahead and make a ticket for it (if it's not
> done already), and if somebody has time to do it for 1.8.0, great. If
> it turns out to be more trouble than it's worth, or if it causes
> unnecessary problems, we can postpone or roll back.
>
> For 1.7.x, we'll likely stay with 0.9.1, unless our experience working
> with 0.9.2 on 1.8.0 leads us to believe that it'd be a safe
> transition. It'd have to be *very* low risk, I imagine... but we'd
> probably need to discuss further once we have more information.
>
> --
> Christopher L Tubbs II
> http://gravatar.com/ctubbsii
>
>
> On Wed, Aug 19, 2015 at 1:56 PM, Josh Elser<jo...@gmail.com>  wrote:
>> We talked about updating 1.8.0 to 0.9.2. 1.7 would very likely not be
>> updated to 0.9.2 due to worry of stability from Thrift (this has been a real
>> problem in the past).
>>
>> Thrift itself needs consistent libraries on both sides of the wire. An 0.9.1
>> client doesn't work with an 0.9.2 server. Thrift's compatibility gives us
>> the ability to run Accumulo 1.6 clients against Accumulo 1.7 servers
>> (hypothetically).
>>
>> Hopefully, you could bump the version, recompile the Thrift code in 1.7 and
>> it would work if you want to experiment. YMMV
>>
>>
>> Max Thomas wrote:
>>> The latest major thrift release is 0.9.2; Accumulo 1.7 (and the current
>>> master branch on Github) depends on 0.9.1. 0.9.2 fixes a number of
>>> issues that are desirable to have, such as functions in Python for hash
>>> codes.
>>>
>>> An initial test with a Java project depending on thrift 0.9.2 and
>>> accumulo results in an exception when the Accumulo server starts,
>>> presumably due to conflicting classes.
>>>
>>> I have a few questions:
>>>
>>> 1) Are there creative Maven things to get Accumulo and thrift 0.9.2 to
>>> place nicely together without building Accumulo from scratch?
>>>
>>> 2) Is there a plan in place to upgrade the thrift dependency for 1.8.0
>>> or the 1.7.x line? (Perhaps short term; see below)
>>>
>>> 3) I see this issue on JIRA:
>>>
>>> https://issues.apache.org/jira/browse/ACCUMULO-756?jql=project%20%3D%20ACCUMULO%20AND%20text%20~%20thrift
>>>
>>>
>>> Is work still active on this issue?

Re: thrift versions in accumulo

Posted by Christopher <ct...@apache.org>.
ACCUMULO-756 has been put on the back-burner for now (at least from
me). I'd love to revisit it, but unfortunately, I've had other
priorities.

As for 0.9.2, I've had a lot of concerns over our continued use of
Thrift. It has had serious regressions, and behavior changes in "bug
fixes" that have not been expected. I'd be in favor of switching to
0.9.2 for Accumulo 1.8.0, if we can be reasonably assured it's not
going to wreak havoc on us like 0.9.0->0.9.1 did. That means time and
testing. I think we can go ahead and make a ticket for it (if it's not
done already), and if somebody has time to do it for 1.8.0, great. If
it turns out to be more trouble than it's worth, or if it causes
unnecessary problems, we can postpone or roll back.

For 1.7.x, we'll likely stay with 0.9.1, unless our experience working
with 0.9.2 on 1.8.0 leads us to believe that it'd be a safe
transition. It'd have to be *very* low risk, I imagine... but we'd
probably need to discuss further once we have more information.

--
Christopher L Tubbs II
http://gravatar.com/ctubbsii


On Wed, Aug 19, 2015 at 1:56 PM, Josh Elser <jo...@gmail.com> wrote:
> We talked about updating 1.8.0 to 0.9.2. 1.7 would very likely not be
> updated to 0.9.2 due to worry of stability from Thrift (this has been a real
> problem in the past).
>
> Thrift itself needs consistent libraries on both sides of the wire. An 0.9.1
> client doesn't work with an 0.9.2 server. Thrift's compatibility gives us
> the ability to run Accumulo 1.6 clients against Accumulo 1.7 servers
> (hypothetically).
>
> Hopefully, you could bump the version, recompile the Thrift code in 1.7 and
> it would work if you want to experiment. YMMV
>
>
> Max Thomas wrote:
>>
>> The latest major thrift release is 0.9.2; Accumulo 1.7 (and the current
>> master branch on Github) depends on 0.9.1. 0.9.2 fixes a number of
>> issues that are desirable to have, such as functions in Python for hash
>> codes.
>>
>> An initial test with a Java project depending on thrift 0.9.2 and
>> accumulo results in an exception when the Accumulo server starts,
>> presumably due to conflicting classes.
>>
>> I have a few questions:
>>
>> 1) Are there creative Maven things to get Accumulo and thrift 0.9.2 to
>> place nicely together without building Accumulo from scratch?
>>
>> 2) Is there a plan in place to upgrade the thrift dependency for 1.8.0
>> or the 1.7.x line? (Perhaps short term; see below)
>>
>> 3) I see this issue on JIRA:
>>
>> https://issues.apache.org/jira/browse/ACCUMULO-756?jql=project%20%3D%20ACCUMULO%20AND%20text%20~%20thrift
>>
>>
>> Is work still active on this issue?

Re: thrift versions in accumulo

Posted by Josh Elser <jo...@gmail.com>.
We talked about updating 1.8.0 to 0.9.2. 1.7 would very likely not be 
updated to 0.9.2 due to worry of stability from Thrift (this has been a 
real problem in the past).

Thrift itself needs consistent libraries on both sides of the wire. An 
0.9.1 client doesn't work with an 0.9.2 server. Thrift's compatibility 
gives us the ability to run Accumulo 1.6 clients against Accumulo 1.7 
servers (hypothetically).

Hopefully, you could bump the version, recompile the Thrift code in 1.7 
and it would work if you want to experiment. YMMV

Max Thomas wrote:
> The latest major thrift release is 0.9.2; Accumulo 1.7 (and the current
> master branch on Github) depends on 0.9.1. 0.9.2 fixes a number of
> issues that are desirable to have, such as functions in Python for hash
> codes.
>
> An initial test with a Java project depending on thrift 0.9.2 and
> accumulo results in an exception when the Accumulo server starts,
> presumably due to conflicting classes.
>
> I have a few questions:
>
> 1) Are there creative Maven things to get Accumulo and thrift 0.9.2 to
> place nicely together without building Accumulo from scratch?
>
> 2) Is there a plan in place to upgrade the thrift dependency for 1.8.0
> or the 1.7.x line? (Perhaps short term; see below)
>
> 3) I see this issue on JIRA:
> https://issues.apache.org/jira/browse/ACCUMULO-756?jql=project%20%3D%20ACCUMULO%20AND%20text%20~%20thrift
>
>
> Is work still active on this issue?