[
https://issues.apache.org/jira/browse/IGNITE-16152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pavel Tupitsyn updated IGNITE-16152:
------------------------------------
Description:
Thin client protocol is schema-aware, but the known schema is thrown away on
the server after deserialization, and Table API has to match it against schemas
again.
*SchemaAware* interface can be used to preserve known schema when passing
tuples to the Table API (see how TupleMarshallerImpl checks for SchemaAware).
*Example: table.Upsert(Tuple t)*
# Client: match user tuple to schema, serialize with schema version, send to
server
# Server: read schema version, read tuple data, create Tuple, throw away schema
version, pass to Table API
# Server: match tuple to schema
was:
Thin client protocol is schema-aware, but the known schema is thrown away on
the server after deserialization, and Table API has to match it against schemas
again.
Investigate if we can gain performance by preserving known schema using
*SchemaAware* interface.
*Example: table.Upsert(Tuple t)*
# Client: match user tuple to schema, serialize with schema version, send to
server
# Server: read schema version, read tuple data, create Tuple, throw away schema
version, pass to Table API
# Server: match tuple to schema
> Thin 3.0: Optimize server-side Tuple handling using known schema version
> ------------------------------------------------------------------------
>
> Key: IGNITE-16152
> URL: https://issues.apache.org/jira/browse/IGNITE-16152
> Project: Ignite
> Issue Type: Improvement
> Components: thin client
> Affects Versions: 3.0.0-alpha3
> Reporter: Pavel Tupitsyn
> Assignee: Pavel Tupitsyn
> Priority: Major
> Labels: ignite-3
> Fix For: 3.0.0-alpha4
>
>
> Thin client protocol is schema-aware, but the known schema is thrown away on
> the server after deserialization, and Table API has to match it against
> schemas again.
> *SchemaAware* interface can be used to preserve known schema when passing
> tuples to the Table API (see how TupleMarshallerImpl checks for SchemaAware).
> *Example: table.Upsert(Tuple t)*
> # Client: match user tuple to schema, serialize with schema version, send to
> server
> # Server: read schema version, read tuple data, create Tuple, throw away
> schema version, pass to Table API
> # Server: match tuple to schema
--
This message was sent by Atlassian Jira
(v8.20.1#820001)