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

Dmitry Konstantinov updated IGNITE-10733:
-----------------------------------------
    Description: When GridCacheWriteBehindStore writes data synchronously to an 
underline store using back-pressure logic (flushSingleValue) - the operation is 
happened in a transaction. CassandraCacheStore uses presence of transaction to 
clarify is a atomicity needed: if there is a transaction - CassandraCacheStore 
accumulates data in a session-local attribute to flush at the end of the 
transaction using Cassandra batches. When transaction is committed 
GridCacheWriteBehindStore is notified about the related session end but 
underline CassandraCacheStore is not notified (and not subscribed using a 
session listener), as a result CassandraStore does not flush the accumulated 
values written via flushSingleValue and they are lost.  (was: When 
WriteBehindStore writes data synchronously to an underline store using 
back-pressure logic (storeSingleValue) - the operation is happened in a 
transaction. CassandraStore uses presence of transaction to clarify is a 
atomicity needed: if there is a transaction - CassandraStore accumulates data 
in a session-local attribute to flush at the end of the transaction using 
Cassandra batches. When transaction is committed WriteBehindStore is notified 
about the related session end but underline CassandraStore is not notified (and 
not subscribed using a session listener), as a result CassandraStore does not 
flush the accumulated values written via storeSingleValue and they are lost.)

> CassandraStore in write behind mode loses data when back-pressure is active
> ---------------------------------------------------------------------------
>
>                 Key: IGNITE-10733
>                 URL: https://issues.apache.org/jira/browse/IGNITE-10733
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache, cassandra
>    Affects Versions: 2.5, 2.6, 2.7
>            Reporter: Dmitry Konstantinov
>            Priority: Critical
>
> When GridCacheWriteBehindStore writes data synchronously to an underline 
> store using back-pressure logic (flushSingleValue) - the operation is 
> happened in a transaction. CassandraCacheStore uses presence of transaction 
> to clarify is a atomicity needed: if there is a transaction - 
> CassandraCacheStore accumulates data in a session-local attribute to flush at 
> the end of the transaction using Cassandra batches. When transaction is 
> committed GridCacheWriteBehindStore is notified about the related session end 
> but underline CassandraCacheStore is not notified (and not subscribed using a 
> session listener), as a result CassandraStore does not flush the accumulated 
> values written via flushSingleValue and they are lost.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to