You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Maxim Muzafarov (Jira)" <ji...@apache.org> on 2019/10/03 09:59:02 UTC

[jira] [Updated] (IGNITE-9314) MVCC TX: Datastreamer operations

     [ https://issues.apache.org/jira/browse/IGNITE-9314?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Maxim Muzafarov updated IGNITE-9314:
------------------------------------
    Fix Version/s:     (was: 2.8)
                   2.9

> MVCC TX: Datastreamer operations
> --------------------------------
>
>                 Key: IGNITE-9314
>                 URL: https://issues.apache.org/jira/browse/IGNITE-9314
>             Project: Ignite
>          Issue Type: Task
>          Components: mvcc
>            Reporter: Igor Seliverstov
>            Priority: Major
>             Fix For: 2.9
>
>
> Need to change DataStreamer semantics.
> {{allowOverwrite=false}} mode currently is inconsistent with interval _partition counters_ update approach used by MVCC transactions.
> {{allowOverwrite=true}} mode is terribly slow when using single {{cache.put}} operations (snapshot request, tx commit on coordinator overhead). Batched mode using {{cache.putAll}} should handle write conflicts and possible deadlocks.
> Also there is a problem when {{DataStreamer}} with {{allowOverwrite == false}} does not insert value when versions for entry exist but they all are aborted. Proper transactional semantics should developed for such case. After that attention should be put on Cache.size method behavior. Cache.size addressed in https://issues.apache.org/jira/browse/IGNITE-8149 could be decremented improperly in {{org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManager#mvccRemoveAll}} method (called during streamer processing) when all existing mvcc row versions are aborted or last committed one is _remove_ version.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)