Pavel Tupitsyn created IGNITE-15234:
---------------------------------------

             Summary: 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


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.3.4#803005)

Reply via email to