I say go for it. I wonder if it's even worth publishing the git branch and
waiting for complaints - history has shown that we probably won't get them
until way after the fact.

-Bryan

On Sat, Sep 25, 2010 at 5:41 PM, David Reiss <[email protected]> wrote:

> Hey guys,
>
> We've been doing a lot of experimental changes to Thrift/C++ within
> Facebook.  Some of our experiments have panned out and some haven't, but
> some have dragged on for a long time with half-finished code checked into
> trunk.  This has prevented us from merging our changes back out to Apache
> for a while, which has been very frustrating.  I've cleaned up a lot of
> the code as best I can, and I'm hoping the community would be okay
> accepting these patches into the trunk, even though some of the features
> are still experimental and likely to have interface changes.  Because of
> the interleaved development history, it's not really possible to tease out
> many of the individual features without significant conflict resolution.
> However, I'm hoping that no one will be tempted to do that since all of
> the changes should be isolated to new APIs and fully backwards-compatible
> at the source level.
>
> The main changes are:
>
> - Templated transport and protocol code.  This change has sped up some of
>  our benchmarks by 5x for serialization and 3x for deserialization, and
>  reduced the end-to-end latency of at least one of our production systems
>  by 50%.  All that's needed is a few type annotations in your C++ source.
> - Async client and server support.  So far, just implemented as an
>  evhttp-based client and server, but the infrastructure is in place for
>  writing fully event-driven Thrift clients and servers.
> - Hooks that allow user code to get better statistics about the calls
>  being made to the server.
> - Better test coverage for transport classes.
> - Various small features and bug fixes.
>
> My plan is to create JIRA issues with patches for the 5 items above
> (including a conglomo-issue for the small changes), publish a git branch
> with all of the changes (plus an instant release if people want), then
> wait to see if anyone complains and commit if they don't.
>
> The git branch is called "fb-merge-p2" and is available at either of
> git://git.thrift-rpc.org/thrift.git
> git://github.com/dreiss/thrift.git
>
> Non git users can pull the full combined patch from r996610 at
>
> http://gitweb.thrift-rpc.org/?p=thrift.git;a=treediff_plain;h=refs/heads/pri/dreiss/fb-merge-p2;hp=d5c342b
>
> The full list of changes is at
>
> http://gitweb.thrift-rpc.org/?p=thrift.git;a=log;h=refs/heads/pri/dreiss/fb-merge-p2;hb=HEAD
> (click through on "commitdiff" to see the full individual commits.)
>
> Thoughts?
>
> --David
>

Reply via email to