Konstantin Orlov created IGNITE-19788:
-----------------------------------------
Summary: 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
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)