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/01/11 13:24:00 UTC

[jira] [Updated] (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:all-tabpanel ]

Ivan Daschinskiy updated IGNITE-13967:
--------------------------------------
    Summary: Refactor and improve performance of python thin client marshaller  (was: Refactor and imrpove performance of python thin client marshaller)

> 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
>
> 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)