[ https://issues.apache.org/jira/browse/GEODE-7971?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17116598#comment-17116598 ]
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)