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 >
