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

Ivan Pavlukhin updated IGNITE-9314:
-----------------------------------
    Description: 
Need to change DataStreamer semantics (make it transactional)

Currently clients can see DataStreamer partial writes and two subsequent 
selects, which are run in scope of one transaction at load time, may return 
different results.

Related thread:
 
[http://apache-ignite-developers.2346864.n4.nabble.com/MVCC-and-IgniteDataStreamer-td32340.html]

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

  was:
Need to change DataStreamer semantics (make it transactional)

Currently clients can see DataStreamer partial writes and two subsequent 
selects, which are run in scope of one transaction at load time, may return 
different results.

Related thread:
 
[http://apache-ignite-developers.2346864.n4.nabble.com/MVCC-and-IgniteDataStreamer-td32340.html]

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 when all existing mvcc row versions are aborted or last committed one 
is _remove_ version.}}


> MVCC TX: Datastreamer operations
> --------------------------------
>
>                 Key: IGNITE-9314
>                 URL: https://issues.apache.org/jira/browse/IGNITE-9314
>             Project: Ignite
>          Issue Type: Task
>          Components: mvcc, sql
>            Reporter: Igor Seliverstov
>            Priority: Major
>             Fix For: 2.7
>
>
> Need to change DataStreamer semantics (make it transactional)
> Currently clients can see DataStreamer partial writes and two subsequent 
> selects, which are run in scope of one transaction at load time, may return 
> different results.
> Related thread:
>  
> [http://apache-ignite-developers.2346864.n4.nabble.com/MVCC-and-IgniteDataStreamer-td32340.html]
> 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
(v7.6.3#76005)

Reply via email to