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

Andrey Mashenkov updated IGNITE-24976:
--------------------------------------
    Description: 
1. Row serialization inside UpgradingRowAdapter and ProjectedTuple classes do 
reading value from delegate then do writing into ByteBuffer.
This causes unnecessary boxing/unboxing operation and various type validation.

Let's add a copy method to avoid this.

2. We enrich binary row with a virtual column (partition id for partition 
awareness feature). 
Unfortunately, we create a Map for a single virtual column each time we wrap a 
row.

Let's do it once. 

3. Every time we serialize such rows, we create an column type descriptor for 
this virtual column in addition.

Let's cache the descriptor.


  was:
1. Row serialization inside UpgradingRowAdapter and ProjectedTuple classes do 
reading value from delegate then do writing into ByteBuffer.
This causes unnecessary boxing/unboxing operation and various type validation.

Let's add a copy method to avoid this.

2. We enrich binary row with a virtual column (partition id for partition 
awareness feature). 
Unfortunately, we create a Map for a single virtual column each time we wrap a 
row.
Let's do it once. 
3. Every time we serialize such rows, we create an column type descriptor for 
this virtual column in addition.
Let's cache the descriptor.



> Sql. Optimize sql row serialization
> -----------------------------------
>
>                 Key: IGNITE-24976
>                 URL: https://issues.apache.org/jira/browse/IGNITE-24976
>             Project: Ignite
>          Issue Type: Improvement
>          Components: sql
>            Reporter: Andrey Mashenkov
>            Assignee: Andrey Mashenkov
>            Priority: Major
>              Labels: ignite-3, performance
>             Fix For: 3.1
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> 1. Row serialization inside UpgradingRowAdapter and ProjectedTuple classes do 
> reading value from delegate then do writing into ByteBuffer.
> This causes unnecessary boxing/unboxing operation and various type validation.
> Let's add a copy method to avoid this.
> 2. We enrich binary row with a virtual column (partition id for partition 
> awareness feature). 
> Unfortunately, we create a Map for a single virtual column each time we wrap 
> a row.
> Let's do it once. 
> 3. Every time we serialize such rows, we create an column type descriptor for 
> this virtual column in addition.
> Let's cache the descriptor.



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

Reply via email to