> I'd like to ask that this be scheduled for 0.6, with the intention of > wrapping up 0.5 ASAP and moving into development of 0.6. That's fine. We're cutting the branch in a few days anyway, right?
> The asio vs libev async implementations is sort of like different > flavors of MQ transports. Would be nice to try to support the > different flavors in as clean a way as possible. This is designed to be really easy. To implement a server, all you need to do is drive a TAsyncBufferProcessor. To implement a client, all you need is an implementation of TAsyncChannel. If you look at these interfaces, I hope you will agree that they are very minimal and easy to integrate into any async framework. --David On 09/25/2010 10:00 PM, Bruce Lowekamp wrote: > > I'd like to request holding off on them until after 0.5. > > I'm hoping to get time and permission to begin contributing some changes we > have. One of them is a boost::asio/boost::bind based async c++ > implementation. My biggest concern with the implementation has been the > number (and invasive nature) of the changes to t_cpp_generator. Looking > (very briefly) at the changes you have, there's more abstraction than before, > and some of it is definitely in the right direction, but I need to look at it > some more to figure out how much of what we need is there and whether there > are any conflicts. > > Biggest reason to ask that it not be in 0.5, though, is that if it's in 0.5, > we essentially won't be able to try any release candidates with our > code---the changes will be too dramatic. Would need more time to work on > merging out changes before we could test. > > The asio vs libev async implementations is sort of like different flavors of > MQ transports. Would be nice to try to support the different flavors in as > clean a way as possible. > > I'd like to ask that this be scheduled for 0.6, with the intention of > wrapping up 0.5 ASAP and moving into development of 0.6. > > Bruce > > > On Sep 25, 2010, at 9:16 PM, Anthony Molinaro wrote: > >> I agree, especially since I don't actually use the C++ stuff :). But >> seriously, I know the pain of maintaining a long lived branch and the >> new features provided sound promising. So I'd say just commit it so >> it makes it into 0.5.0, so much is changing with 0.5.0 anyway, might >> as well add in some more :). >> >> -Anthony >> >> On Sat, Sep 25, 2010 at 06:51:12PM -0700, Bryan Duxbury wrote: >>> 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 <dre...@facebook.com> 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 >>>> >> >> -- >> ------------------------------------------------------------------------ >> Anthony Molinaro <antho...@alumni.caltech.edu> >