[
https://issues.apache.org/jira/browse/IGNITE-10964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16744848#comment-16744848
]
Vladimir Ozerov commented on IGNITE-10964:
------------------------------------------
I would say that {{GridH2Table}} is more or less OK wrt concurrency at the
moment. Every column update leads to creation of new array. The only problem
there is that {{columns}} field is not volatile, meaning that potentially we
may have visibility problems. This is already addressed in IGNITE-10307.
Bigger problem is {{QueryTypeDescriptorImpl}} which is also updated during
{{ALTER TABLE}} command. It has a number of non-thread safe collections.
Provided that {{ALTER TABLE}} command is relatively rare, I would think about
copy-on-write approach here: get old descriptor, create a copy, update the
copy, install the copy.
> SQL: Concurrent dml and alter table
> -----------------------------------
>
> Key: IGNITE-10964
> URL: https://issues.apache.org/jira/browse/IGNITE-10964
> Project: Ignite
> Issue Type: Test
> Components: sql
> Reporter: Pavel Kuznetsov
> Priority: Major
>
> Our tests doesn't cover the case first user select or insert to table and
> another user alters the same table. There are some parts of {{GridH2Table}}
> that may cause data races in this case.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)