[ 
https://issues.apache.org/jira/browse/IGNITE-19788?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Evgeny Stanilovsky reassigned IGNITE-19788:
-------------------------------------------

    Assignee: Evgeny Stanilovsky

> Sql. Improve QueryBatchMessage serialisation
> --------------------------------------------
>
>                 Key: IGNITE-19788
>                 URL: https://issues.apache.org/jira/browse/IGNITE-19788
>             Project: Ignite
>          Issue Type: Improvement
>          Components: sql
>            Reporter: Konstantin Orlov
>            Assignee: Evgeny Stanilovsky
>            Priority: Major
>              Labels: ignite-3
>
> As of now, java's built-in serialisation is used to marshal rows in 
> QueryBatchMessage. It's quite inefficient in terms of the size of serialised 
> batch. Besides, network marshaller is unable to estimate the size of 
> serialised data in advance, thus serialising the entire batch as a single 
> buffer.
> Let's address the part that force marshaller to create a buffer of entire 
> batch. Optimal serialisation of each particular row is subject for another 
> JIRA case.
> Proposed solution
>  * Extend interface {{org.apache.ignite.internal.sql.engine.exec.RowHandler}} 
> with method {{ByteBuffer toByteBuffer(RowT row)}}
>  * Extend interface 
> {{org.apache.ignite.internal.sql.engine.exec.RowHandler.RowFactory}} with 
> method {{RowT create(ByteBuffer buffer)}}
>  * Cover {{ArrayRowHandler}} with tests
>  * Change return type of 
> {{org.apache.ignite.internal.sql.engine.message.QueryBatchMessage#rows}} to 
> {{List<ByteBuffer>}}
>  * Adjust related code



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to