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)