[ https://issues.apache.org/jira/browse/IGNITE-19788?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Yury Gerzhedovich updated IGNITE-19788: --------------------------------------- Epic Link: IGNITE-19860 > 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 > 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)