[
https://issues.apache.org/jira/browse/IGNITE-10985?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vladimir Ozerov updated IGNITE-10985:
-------------------------------------
Description: Although we removed _VER support, real {{GridCacheVersion}} is
still deserialized when we convert link to {{CacheDataRowAdapter}}. Let's avoid
that when possible. (was: Currently we use {{GridH2KeyValueRowOnheap}} for
both update and search operations. This leads to *huge* memory overhead during
{{SELECT}} execution. If you take a closer look on what is inside the row, you
will note the following:
# It has both serialized and deserialized {{GridCacheVersion}} which is never
needed
# It has wrapped key and value object
# It has reference to {{CacheDataRow}} which is not needed either
# It has {{valCache}} field which is never used in SELECT
The goal of this ticket is to created optimized version of row which will be
created during {{SELECT}} operations only. It should contain only minimally
necessary information:
# Key (unwrapped!)
# Value (unwrapped!)
# Version (unwrapped, we will remove it completely in separate ticket
IGNITE-10986)
It should not contain reference to {{CacheDataRow}}. There is a chance that we
will need some pieces from it (e.g. cache ID and link for caching purposes),
but it definitely will be only small subset of the whole
{{CacheDataRowAdapter}} (or even worse - {{MvccDataRow}}).
Entry point: {{H2Tree.createRowFromLink}} methods. Note that they return
{{GridH2Row}}, while in their usages only very relaxed version of
{{GridH2SearchRow}} is needed. So let's start with new implementation of row
for these methods and then gradually remove all unnecessary stuff from there.)
> SQL: Do not deserialize GridCacheVersion when possible
> ------------------------------------------------------
>
> Key: IGNITE-10985
> URL: https://issues.apache.org/jira/browse/IGNITE-10985
> Project: Ignite
> Issue Type: Task
> Components: sql
> Reporter: Vladimir Ozerov
> Assignee: Vladimir Ozerov
> Priority: Major
> Labels: performance
> Fix For: 2.8
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Although we removed _VER support, real {{GridCacheVersion}} is still
> deserialized when we convert link to {{CacheDataRowAdapter}}. Let's avoid
> that when possible.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)