ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexey Goncharuk (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IGNITE-6933) Consider executing updates in-place when SQL indexes are present or object size is smaller than the old object size
Date Thu, 16 Nov 2017 11:38:00 GMT
Alexey Goncharuk created IGNITE-6933:
----------------------------------------

             Summary: Consider executing updates in-place when SQL indexes are present or
object size is smaller than the old object size
                 Key: IGNITE-6933
                 URL: https://issues.apache.org/jira/browse/IGNITE-6933
             Project: Ignite
          Issue Type: Task
      Security Level: Public (Viewable by anyone)
            Reporter: Alexey Goncharuk


Currently, we are able to execute in-place updates when the new object size exactly matches
the old object size and SQL indexes are absent. This leads to a significant performance cost
because of extra FreeList updates and extra indexes updates when only one field has changed.

A few possibilities which should be carefully examined:
1) Allow in-place updates if a new object size is smaller than the old object size (allow
some space leak into the data page) and defer FreeList update to some later time (introduce
a threshold?)
2) Examine (or propagate) the list of changed fields and allow in-place updates if indexed
fields did not change
3) Investigate if we can implement an in-place update even with indexed fields - first, remove
the value from indexes, then update, then insert value to indexes (note that there is a window
when the value is not accessible via indexes in this case, so this is not a safe option).
Also, do not update indexes if the indexed value did not change



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message