[
https://issues.apache.org/jira/browse/THRIFT-2252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13814621#comment-13814621
]
George Cao commented on THRIFT-2252:
------------------------------------
[~jensg], I think the mapping between function name and it's ID may be stored
as meta data on both the client and server sides, then we can reduce the
network overhead. I am interested in the *more options* you mentioned above,
would you tell me more detail about them?
> Optimize the overhead of the tag message of the request
> -------------------------------------------------------
>
> Key: THRIFT-2252
> URL: https://issues.apache.org/jira/browse/THRIFT-2252
> Project: Thrift
> Issue Type: Improvement
> Reporter: George Cao
> Labels: optimization, payload, perfomance
>
> For now, every request the client sent consists of a tag message(TMessage)
> and the API arguments.
> This tag message includes the API name(method name), message type and a
> sequence ID.
> Compare to the API arguments which usually are some structure data like
> integers, the tag message will cause a lot of overhead because of the API
> name string.
> For example, assume we have an API like this in Java:
> {code}
> int getSomeEntityById(int id);
> {code}
> The the tag message will takes *len("getSomeEntityById") + 1 + 4 = 22* bytes
> and the API arguments only takes 4 bytes.
>
> Even worse if we support multiplexing, because we need append additional
> service name at the beginning of the API name.
> So shall we assign an ID to each API like struct's every property has an ID?
> Then we can avoid using the verbose string names.
--
This message was sent by Atlassian JIRA
(v6.1#6144)