[
https://issues.apache.org/jira/browse/GEODE-8455?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17183856#comment-17183856
]
ASF GitHub Bot commented on GEODE-8455:
---------------------------------------
albertogpz opened a new pull request #5476:
URL: https://github.com/apache/geode/pull/5476
…lter region with gw sender
Geode behaves differently with respect to transactions when
creating a partitioned region with a parallel gateway sender to
when first the partitioned region is created and then the
parallel gateway sender is added by altering the region.
In the first case (create region with gateway sender), when
sending a transaction for the region, an event is sent
to each server hosting the bucket for the data in the transaction.
In the second case (create region + alter region),
when sending a transaction for the region, an event
is sent to every cache member and not only to those hosting
the bucket for the data in the transaction. This leads to,
in the servers not hosting the bucket for the data,
that the events are stored in the
bucketToTempQueueMap member variable of the
ParallelGatewaySenderQueue.
The behavior in the first case is the right one.
The wrong behavior is provoked by the setting to true of the
requiresNotification variable of the PartitionedRegion
by the distributeUpdatedProfileOnSenderCreation method.
This method should only set this variable to true
in case the sender is serial as it is done when
a partitioned region is initialized.
Thank you for submitting a contribution to Apache Geode.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
### For all changes:
- [ ] Is there a JIRA ticket associated with this PR? Is it referenced in
the commit message?
- [ ] Has your PR been rebased against the latest commit within the target
branch (typically `develop`)?
- [ ] Is your initial contribution a single, squashed commit?
- [ ] Does `gradlew build` run cleanly?
- [ ] Have you written or updated unit tests to verify your changes?
- [ ] If adding new dependencies to the code, are these dependencies
licensed in a way that is compatible for inclusion under [ASF
2.0](http://www.apache.org/legal/resolved.html#category-a)?
### Note:
Please ensure that once the PR is submitted, check Concourse for build
issues and
submit an update to your PR as soon as possible. If you need help, please
send an
email to [email protected].
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> Different behavior in transactions on partitioned regions between creating
> the region with a parallel gateway sender vs altering the region to add the
> parallel gateway sender
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: GEODE-8455
> URL: https://issues.apache.org/jira/browse/GEODE-8455
> Project: Geode
> Issue Type: Bug
> Components: core
> Reporter: Alberto Gomez
> Assignee: Alberto Gomez
> Priority: Major
>
> When creating a partitioned region and then altering it by adding a parallel
> gateway sender, I have observed that, when sending transactions to the
> partitioned region, an event (GatewaySenderEvent) for each transaction is
> sent to every server hosting buckets for the partitioned region and not only
> to that/those hosting the bucket where the data in the transaction belongs.
> So, for example, in a partitioned region provided by two cache servers where
> redundancy is zero, when a transaction is sent, the put is done on the server
> hosting the bucket where the data in the transaction is to be stored but an
> event for the put is sent to the two members. This provokes in the server not
> hosting locally the bucket for the data in the event that the event
> (GatewaySenderEven) is stored in the bucketToTempQueueMap member variable of
> the ParallelGatewaySenderQueue.
> Those events are eventually removed from that member as events are sent by
> the gateway sender to the remote site. Nevertheless, if the remote site
> cannot be reached, the events are kept in that member which could provoke a
> heap exhaustion problem if there is a sufficient amount of incoming
> transactions and the remote site cannot be reached for the required amount of
> time.
> Events for a transaction should only be sent to the servers hosting the
> bucket for the data in the transaction and not to all servers.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)