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

ASF subversion and git services commented on GEODE-7971:
--------------------------------------------------------

Commit e4328553fb5783e8310833df42e1f17e48dc2ac4 in geode's branch 
refs/heads/develop from Alberto Gomez
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=e432855 ]

GEODE-7971: Gw sender deliver TX events atomically to Gw receivers (#4928)

* GEODE-7971: Gw sender deliver TX events atomically to Gw receivers

A new flag is added to gateway senders: group-transaction-events.
If set to true, events for the same transaction will not be
spread across different batches, i.e. it is guaranteed that
they will be delivered inside the same batch.

In order to implement this behavior,
the last event for each transaction is marked with a new flag
and the transactionId before it is put in the sender's queue
(new flag added to GatewaySenderEvent). That way, it is possible
for the gateway senders to go through a
batch ready to be sent and verify if the last event for
each transaction is present in the batch.
If not, the gateway sender will traverse the sender queue
to get the missing events for the incomplete transactions
and once they are added to the batch, the batch will be sent.

This feature has the following restrictions:
- The group-transaction-events can only be set on
serial gateway senders with just 1 dispatcher thread
or on parallel gateway senders.
- In order to guarantee that the events of a transaction
are to not spread
across different batches, the regions involved in the
transaction must all have the same senders with the
group-transaction-events flag set to true configured.

* GEODE-7971: small fix in gwSenderFactory + extra info on config error

* GEODE-7971: Add logic for case when batches are redistributed

Also added parameter for retries when not all
events for a transaction can be read from the queue.

* GEODE-7971: Undo changes on cache*.dtd files unneeded

Also changed a couple of timeouts in test cases.

* feature/GEODE-7971: Changes after review

* feature/GEODE-7971: Simplify test JUnit test case

* GEODE-7971: Update create document and refactor test case

* GEODE-7971: Add check in serial gwsender creation with threads>1 and 
group-trans-events=true.

Also corrected some documentation errors.

* GEODE-7971: Add HA test cases and fix bug in SerialGatewaySenderQueue

* feature/GEODE-7971: Documentation change after review and flaxy test fix

* GEODE-7971: Doc changes after review

> Gateway sender to deliver transaction events atomically to gateway receivers
> ----------------------------------------------------------------------------
>
>                 Key: GEODE-7971
>                 URL: https://issues.apache.org/jira/browse/GEODE-7971
>             Project: Geode
>          Issue Type: Improvement
>          Components: wan
>            Reporter: Alberto Gomez
>            Assignee: Alberto Gomez
>            Priority: Major
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> The goal of this ticket is to implement the necessary changes in the gateway 
> sender to prevent that events belonging to the same transaction are spread 
> across different batches. In other words, to ensure that events from the same 
> transaction are sent inside the same batch.
> This will be an optional feature on gateway senders to be enabled via a new 
> parameter (--group-transaction-events) and will be restricted to serial 
> gateway senders with just one dispatcher thread or to parallel gateway 
> senders.
> Apart from the above restriction, grouping of events for a transaction inside 
> the same batch may only be attained if the regions to which the events belong 
> are replicated by the same set of gateway senders with the 
> --group-transaction-events flag enabled. If this condition is not met, the 
> events will be correctly delivered by the gateway senders but it will not be 
> guaranteed that all events will always be sent inside the same batch.
> For more details see: 
> [https://cwiki.apache.org/confluence/display/GEODE/Gw+sender+to+deliver+transaction+events+atomically+to+receivers]
>  



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

Reply via email to