[
https://issues.apache.org/jira/browse/GEODE-9248?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17376748#comment-17376748
]
ASF subversion and git services commented on GEODE-9248:
--------------------------------------------------------
Commit b12b8f6102bdb3d449fd994351f6ceddd2ace418 in geode's branch
refs/heads/develop from Jakov Varenina
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=b12b8f6 ]
GEODE-9248: Server hosting CQ queue uneccessary fills bucketToTempQueue (#6646)
Issue reproduces when following conditions are fulfilled:
- Redundant partition region must be configured
- Number of servers must be greater than number of redundant copies of
partition region
- Parallel gateway sender must be configured on partition region
- Client must register CQs for the region
- Transactions must be used with put operations
- Events must be enqueued in parallel gateway senders (remote site is
unavailable)
Server that is hosting primary bucket will send TXCommitMessage to the secondary
server, and also to the server that is hosting CQ subscription queue (if CQ
condition is fulfilled).
The problem occurs when the server that is hosting CQ subscription queue does
not host
the bucket for which event is received. In that case the server will store the
event in
bucketToTempQueueMap, because it assumes that the bucket is in the process of
the
creation, which is not correct.
The solution:
At reception of CommitProcessForTXIdMessage the events received with
TXCommitMessage will not
be stored in temporary queue, if targeted bucket region is not hosted in the
server. Following
checks are performed on receiving server in order to identify those events:
1. Check that targeted bucket region in not available locally on server
2. Check from filterRoutingInfo that the receiving server hosts
CQ/RegionInterests queue for that event
If above checks are fulfilled then tailKey is set to -1 on receiving server to
avoid enqueuing of
event in temporary queue.
Co-authored-by: Jakov Varenina <[email protected]>
> Server hosting cq subscription queue uneccessary fills bucketToTempQueueMap
> while in multi site split brain
> -----------------------------------------------------------------------------------------------------------
>
> Key: GEODE-9248
> URL: https://issues.apache.org/jira/browse/GEODE-9248
> Project: Geode
> Issue Type: Bug
> Reporter: Jakov Varenina
> Assignee: Jakov Varenina
> Priority: Major
> Labels: pull-request-available
>
> The problem reproduces when you use transactions and have more servers than
> redundant copies of the partition region, and also events are queued in
> parallel gateway-senders due to ongoing multi-site split brain. In this case
> all members send events to the member with subscription queue, which then
> fills variable *bucketToTempQueueMap* with traffic intended for the buckets
> that it doesn't host.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)