[
https://issues.apache.org/jira/browse/IGNITE-13967?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17281035#comment-17281035
]
Igor Sapego commented on IGNITE-13967:
--------------------------------------
[~ivandasch] reviewed. See my comments in PR.
> Refactor and improve performance of python thin client marshaller
> -----------------------------------------------------------------
>
> Key: IGNITE-13967
> URL: https://issues.apache.org/jira/browse/IGNITE-13967
> Project: Ignite
> Issue Type: Improvement
> Components: thin client
> Reporter: Ivan Daschinskiy
> Assignee: Ivan Daschinskiy
> Priority: Major
> Labels: python
> Time Spent: 20m
> Remaining Estimate: 0h
>
> Currently implemented serialization has questionable design and suffers from
> some problems
> 1. It is tightly coupled with Client object
> 2. It doesn't use protocol feature that total length of message is in the
> header,
> thus it constantly load from Client some data instead of iteration over byte
> array.
> 3. It uses some tricky hacks and sometimes new connection is created when
> deserializing object.
> 4. It constantly allocates bytes (immutable data structure).
> I suggest to rewrite serialization and deserialization:
> 1. Pass to corresponding methods specific SerDe context + BytesIO
> 2. Context can be sync and async and contains specific flags and methods for
> loading/uploading binary object schemas
> 3. Refactor Client in order to retrieve full packet from socket at once then
> pass full packet futher.
> These steps can significantly improve performance, reduce amount of
> allocations and give
> foundation for implementing asyncio version of client.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)