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)