You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Igor Sapego (Jira)" <ji...@apache.org> on 2021/11/10 12:42:00 UTC
[jira] [Commented] (IGNITE-15234) Thin 3.0: Perf: ByteBuf-based
message packer and unpacker
[ https://issues.apache.org/jira/browse/IGNITE-15234?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17441709#comment-17441709 ]
Igor Sapego commented on IGNITE-15234:
--------------------------------------
[~ptupitsyn] Looks good. See my comments in PR.
> Thin 3.0: Perf: ByteBuf-based message packer and unpacker
> ---------------------------------------------------------
>
> Key: IGNITE-15234
> URL: https://issues.apache.org/jira/browse/IGNITE-15234
> Project: Ignite
> Issue Type: Improvement
> Components: thin client
> Affects Versions: 3.0.0-alpha3
> Reporter: Pavel Tupitsyn
> Assignee: Pavel Tupitsyn
> Priority: Major
> Labels: ignite-3
> Fix For: 3.0.0-alpha4
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Current implementations of *ClientMessagePacker* and *ClientMessageUnpacker* are based on *msgpack-core* library and involve intermediate classes and buffers:
> {code:java}
> public ClientMessageUnpacker(ByteBuf buf) {
> super(new InputStreamBufferInput(new ByteBufInputStream(buf)), MessagePack.DEFAULT_UNPACKER_CONFIG);
> this.buf = buf;
> }
> {code}
> * MessageUnpacker and MessagePacker classes use internal heap-allocated buffers
> * InputStreamBufferInput uses another buffer
> Netty ByteBuf is efficient by itself, we can implement packer and unpacker directly on top of it without extra buffers and indirection.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)