You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by romange <gi...@git.apache.org> on 2014/05/17 09:55:55 UTC

[GitHub] thrift pull request: 0.9.x

GitHub user romange opened a pull request:

    https://github.com/apache/thrift/pull/122

    0.9.x

    Eliminate redundant allocations for temporary args during RPC processing. 
    The change is suitable for ThreadPoolServer where each thread processed its own connection.
    
    We create thread local request/response arguments instead of allocating them on stack in TDispatchProcessor. This way, the next  RPC reuses already allocated strings and arrays.
    In order to make sure that the objects are semantically empty we added a new method "clear" that resets all its fields to their initial values (0 for basic types, empty for containers) and unsets optional fields.
    
    On our system the CPU usage during high QPS period was cut by 50%.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/romange/thrift 0.9.x

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/thrift/pull/122.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #122
    
----
commit b80d850e692f01e1fa23ec0a7e9002524c536691
Author: Roman Gershman <ro...@gmail.com>
Date:   2014-05-14T15:39:00Z

    add clear method to cpp thrift messages

commit 270bbd4ce37ea1c922d852a7309edf668318e7b4
Author: Roman Gershman <ro...@gmail.com>
Date:   2014-05-15T00:37:04Z

    fix macro error

commit b4883f4018a1f697318f8608c1790c648466be28
Author: Roman Gershman <ro...@gmail.com>
Date:   2014-05-15T00:53:49Z

    fix include path problems

commit 04dbab5e382df9cd55dd8d06dc5a26261f1decf6
Author: Roman Gershman <ro...@gmail.com>
Date:   2014-05-15T01:40:22Z

    add support for thread local variables

commit 7054bb9d2b058a1306236e21723cd035a0433bdb
Author: Roman Gershman <ro...@gmail.com>
Date:   2014-05-15T09:29:43Z

    remove allocations by using thread-local data structures or reuse the same variables during repetitive operations

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---