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
             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

Reply via email to