ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vladimir Ozerov (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (IGNITE-7015) SQL: index should be updated only when relevant values changed
Date Fri, 24 Nov 2017 13:55:00 GMT

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

Vladimir Ozerov updated IGNITE-7015:
    Labels: iep-1 performance  (was: iep-1)

> SQL: index should be updated only when relevant values changed
> --------------------------------------------------------------
>                 Key: IGNITE-7015
>                 URL: https://issues.apache.org/jira/browse/IGNITE-7015
>             Project: Ignite
>          Issue Type: Task
>          Components: sql
>            Reporter: Vladimir Ozerov
>              Labels: iep-1, performance
>             Fix For: 2.4
> See {{GridH2Table.update}} method. Whenever value is updated, we propagate it to all
indexes. Consider the following case:
> 1) Old row is not null, so this is "update", not "create".
> 2) Link hasn't changed
> 3) Indexed fields haven't changed
> If all conditions are met, we can skip index update completely, as state before and after
will be the same. This is especially important when persistence is enabled because currently
we generate unnecessary dirty pages what increases IO pressure.
> Suggested fix:
> 1) Iterate over index columns, skipping key and affinity columns (as they are guaranteed
to be the same);
> 2) Compare relevant index columns of both old and new rows
> 3) If all columns are equal, do nothing.
> Fields should be read through {{GridH2KeyValueRowOnheap#getValue}}, because in this case
we will re-use value cache transparently.

This message was sent by Atlassian JIRA

View raw message