You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Ivan Daschinskiy (Jira)" <ji...@apache.org> on 2021/02/07 16:27:00 UTC

[jira] [Commented] (IGNITE-13967) Refactor and improve performance of python thin client marshaller

    [ https://issues.apache.org/jira/browse/IGNITE-13967?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17280608#comment-17280608 ] 

Ivan Daschinskiy commented on IGNITE-13967:
-------------------------------------------

[~isapego] Hi, patch is ready. Could you please review it?

> 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: 10m
>  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)