You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vladimir Ozerov (JIRA)" <ji...@apache.org> on 2019/01/17 10:00:10 UTC

[jira] [Commented] (IGNITE-10964) SQL: Concurrent dml and alter table

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