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