accumulo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Wonders <>
Subject Re: [DISCUSS] Moving away from Thrift
Date Fri, 17 Nov 2017 13:05:49 GMT
I have had pleasant experiences with grpc for several little projects.  The
grpc project is explicit about stable and experimental apis.  There are
however still a number of useful features that are considered experimental.

Since grpc supports async requests over TLS channels it would make it much
more natural to add async apis for both scanning and writing.  I've been
working on a little side project to explore what is possible today but got
ran into challenges due to thrift not supporting TLS for nonblocking
clients.  I think grpc could lead to the possibility of eliminating some
thread pools within the accumulo client.

Another benefit is that it uses a standardized protocol (HTTP/2) underneath.

It is the best alternative to thrift that I'm aware of for general purpose
rpc/ipc.  That being said, it would be a serious undertaking to swap out
thrift for anything else.


On Nov 17, 2017 2:51 AM, "Jorge Machado" <>

> What about ? From Google ?
> Jorge Machado
> Am 17.11.2017 um 05:50 schrieb Christopher <<mailto:ct
> On Fri, Nov 17, 2017 at 12:26 AM Mike Drob <<mailto:mdrob
>>> wrote:
> Apache projects are highly discouraged from hostile forks of other ASF
> projects. I'm not sure if there's a written foundation policy for it or if
> it's simply a gentleman's agreement, but I've seen it come up in other
> places and it has never been pretty.
> Which alternatives are you considering, Christopher? Avro RPC keeps us in
> the Apache umbrella. I've seen Accumulo+Kryo work, but it always felt
> kludgy. Protobuf has it's own issues.
> I don't really have enough information about any to consider at this point.
> The main purpose of this thread is to solicit suggestions for alternatives
> to consider. I'm not familiar with Avro RPC. As I understand it, Avro is
> serialization (same with Kryo and Protobuf). I think we have tons of
> options for serialization, but the main thing Thrift does for us that I
> haven't really seen elsewhere is the RPC language definition and
> boilerplate network/protocol stuff.
> There may just be no good RPC solution existing today.
> Yeah. That is a concern. :/
> Mike
> On Thu, Nov 16, 2017, 10:58 PM Christopher <<mailto:ct
>>> wrote:
> The current Thrift issue has already been fixed with a patch. Their PMC
> needs to release it, though.
> Following ASF's commitment to "community over code", I think it would be
> inappropriate for an Apache project to fork another active project while
> that community still exists. It's better to work with them if we can, and
> to use another dependency if we can't. There may be ASF policy against
> such
> forking, but that may only apply to forking non-ASF projects. In any
> case,
> I don't think it's a good idea.
> Also, even if we are able to resolve the current issue of releasing a
> version without the spammy print statement, I think there's value in
> discussing possible alternatives and their pros/cons. There's no timeline
> for this. Consider this an open-ended discussion regarding RPC
> alternatives. I just want to gather those alternatives into one place to
> discuss.
> On Thu, Nov 16, 2017 at 11:43 PM Ed Coleman <<mailto:dev
>>> wrote:
> Have we tried fixing the current issue and then submitting a
> pull-request?
> I'd favor first submitting a pull request and any other help that we
> can
> provide to get it adopted and released soon - failing that we could
> fork
> the project and go from there. That could offer us a path to correct
> the
> immediate issue and offer time to consider other alternatives.
> Ed Coleman
> -----Original Message-----
> From: Christopher []
> Sent: Thursday, November 16, 2017 11:36 PM
> To: accumulo-dev <<>>
> Subject: [DISCUSS] Moving away from Thrift
> Accumulo Devs,
> I think it's time we start seriously thinking about moving away from
> Thrift and considering alternatives.
> For me, is becoming
> the
> last straw.
> Thrift is a neat idea, but to be blunt: there seems to be a fundamental
> lack of care or interest from the Thrift developers at the current
> moment.
> Some of the problems we've seen over the years: Every version is
> fundamentally incompatible with other versions. Repeated flip-flopping
> regressions seems to occur with each release. Fundamental design
> concepts
> like distinguishing server-side exceptions (TApplicationException vs.
> TException) are undermined without consideration of the initial design.
> And now, a serious bug (a spammy debugging print statement) was left in
> for
> nearly a year now (still exists in current version), and no response
> from
> the PMC to indicate any willingness to release a fix. Repeated requests
> to
> the developer list has gone ignored. And, I'm not even counting my
> requests
> for assistance debugging a compiler issue on s390x arch having also
> gone
> ignored.
> These problems are not exclusive to Accumulo. Many of these are
> problems
> that Cassandra has also faced, and I'm sure there are others.
> It's possible that Thrift can remedy the situation. None of these
> problems
> are insurmountable, and none of them are beyond fixes, particularly if
> we
> can afford to volunteer more to help out. My intention is not to throw
> a
> fellow Apache project under the bus, and I do not intend to give up
> reporting bugs, and contributing patches to Thrift where appropriate.
> But,
> I think we also need to think realistically, and consider alternatives,
> if
> Thrift development does not go in a direction which is favorable to
> Accumulo.
> So, with that in mind, any suggestions for alternatives? With
> pros/cons?

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message