You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by "Anthony Baker (JIRA)" <ji...@apache.org> on 2017/03/02 15:00:53 UTC

[jira] [Commented] (GEODE-1702) Release transaction lock before calling AsyncEventListener

    [ https://issues.apache.org/jira/browse/GEODE-1702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15892364#comment-15892364 ] 

Anthony Baker commented on GEODE-1702:
--------------------------------------

[~swapnil.bawaskar] How is the AEQ user implementation affected when invoked with the TX locks held?  It seems incorrect to deliver uncommitted events to the AEQ right?

Changing this behavior sounds complex since we would have to account for rolled back / suspended txns for enqueued entries.

> Release transaction lock before calling AsyncEventListener
> ----------------------------------------------------------
>
>                 Key: GEODE-1702
>                 URL: https://issues.apache.org/jira/browse/GEODE-1702
>             Project: Geode
>          Issue Type: Bug
>          Components: transactions
>            Reporter: Swapnil Bawaskar
>
> The relavent workflow of transaction commit processing is as follows:
> 1. Grab transaction locks
> 2. perform conflict checks
> 3. apply changes to locally
> 4. enqueue events in AsyncEventQueue
> 5. release transaction locks
> However this is problematic since the AsyncEventListener could be called while the tx locks are held. This prevents same entry from being modified in the AsyncEventListener (within a transaction). 
> Transaction locks cannot be released before the events are enqueued to prevent out-of-order events.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)