Ivan Daschinskiy created IGNITE-13967:
-----------------------------------------

             Summary: Refactor and imrpove 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


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)

Reply via email to