[
https://issues.apache.org/jira/browse/GEODE-9575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Owen Nichols closed GEODE-9575.
-------------------------------
> redis publish sends an extra message to each server
> ---------------------------------------------------
>
> Key: GEODE-9575
> URL: https://issues.apache.org/jira/browse/GEODE-9575
> Project: Geode
> Issue Type: Improvement
> Components: redis
> Reporter: Darrel Schneider
> Assignee: Darrel Schneider
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.15.0
>
>
> The redis publish command uses a geode function to distribute the publish to
> each server that may have subscriptions. When it does this it calls
> PartitionRegionHelper.getPartitionRegionInfo. It turns out the implementation
> of this method sends a message to each data store:
> FetchPartitionDetailsMessage.
> Since all redis publish wanted to do was execute the function on each server
> that has the redis data region, it could have instead done it like so in
> RegionProvider.getRegionMembers:
> {code:java}
> Set<InternalDistributedMember> otherMembers =
> partitionedRegion.getRegionAdvisor().adviseDataStore();
> Set<DistributedMember> result = new HashSet<>(otherMembers.size()+1);
> result.addAll(otherMembers);
>
> result.add(partitionedRegion.getDistributionManager().getDistributionManagerId());
> return result;
> {code}
> When I did this I started seeing one of the tests fail. It looked like it
> might had to do with something left around from one test method interfering
> with another. It is possible that the older slow code works in this test
> because the extra messaging slows publish down. It was a dunit test that did
> some ha (starting and stopping servers). I verified that this code does
> produce the same set of members as the old code but I did not figure out what
> was wrong with the test that started failing.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)