You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Dave Barnes (Jira)" <ji...@apache.org> on 2020/09/10 15:52:13 UTC
[jira] [Closed] (GEODE-7980) Incorrect member count in rebalance
output when rebalancing colocated regions
[ https://issues.apache.org/jira/browse/GEODE-7980?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dave Barnes closed GEODE-7980.
------------------------------
> Incorrect member count in rebalance output when rebalancing colocated regions
> ------------------------------------------------------------------------------
>
> Key: GEODE-7980
> URL: https://issues.apache.org/jira/browse/GEODE-7980
> Project: Geode
> Issue Type: Bug
> Reporter: Donal Evans
> Assignee: Mario Kevo
> Priority: Major
> Fix For: 1.13.0
>
> Time Spent: 1h 10m
> Remaining Estimate: 0h
>
> When colocated regions are present during rebalance, incorrect member counts are reported in the rebalance results:
>
> {code:java}
> [vm0] [info 2020/04/10 11:28:50.895 PDT <RebalanceCommand1> tid=0x56] Rebalanced partition regions /childRegion
> [vm0] Total bytes in all redundant bucket copies created during this rebalance = 0
> [vm0] Total time (in milliseconds) spent creating redundant bucket copies during this rebalance = 0
> [vm0] Total number of redundant copies created during this rebalance = 0
> [vm0] Total bytes in buckets moved during this rebalance = 0
> [vm0] Total time (in milliseconds) spent moving buckets during this rebalance = 0
> [vm0] Total number of buckets moved during this rebalance = 0
> [vm0] Total time (in milliseconds) spent switching the primary state of buckets during this rebalance = 0
> [vm0] Total primaries transferred during this rebalance = 0
> [vm0] Total time (in milliseconds) for this rebalance = 0
> [vm0] Total number of members in system on which rebalance is executed = 0
> [vm0] [info 2020/04/10 11:28:50.896 PDT <RebalanceCommand1> tid=0x56] Rebalanced partition regions /parentRegion
> [vm0] Total bytes in all redundant bucket copies created during this rebalance = 0
> [vm0] Total time (in milliseconds) spent creating redundant bucket copies during this rebalance = 0
> [vm0] Total number of redundant copies created during this rebalance = 0
> [vm0] Total bytes in buckets moved during this rebalance = 18426
> [vm0] Total time (in milliseconds) spent moving buckets during this rebalance = 2715
> [vm0] Total number of buckets moved during this rebalance = 132
> [vm0] Total time (in milliseconds) spent switching the primary state of buckets during this rebalance = 0
> [vm0] Total primaries transferred during this rebalance = 0
> [vm0] Total time (in milliseconds) for this rebalance = 5506
> [vm0] Total number of members in system on which rebalance is executed = 4
> {code}
>
>
> A test to reproduce the issue is provided below.
> {code:java}
> public class RebalanceMembersColocationTest {
> public static final String PARENT_REGION_NAME = "parentRegion";
> public static final String CHILD_REGION_NAME = "childRegion";
> @Rule
> public ClusterStartupRule cluster = new ClusterStartupRule();
> @Rule
> public GfshCommandRule gfsh = new GfshCommandRule();
> @Test
> public void testRebalanceResultOutputMemberCountWIthColocatedRegions() throws Exception {
> MemberVM locator = cluster.startLocatorVM(0);
> MemberVM server1 = cluster.startServerVM(1, locator.getPort());
> MemberVM server2 = cluster.startServerVM(2, locator.getPort());
> server1.invoke(() -> {
> Region<Object, Object> parentRegion = Objects.requireNonNull(ClusterStartupRule.getCache())
> .createRegionFactory(RegionShortcut.PARTITION).create(PARENT_REGION_NAME);
> IntStream.range(0, 500).forEach(i -> parentRegion.put("key" + i, "value" + 1));
> PartitionAttributesImpl attributes = new PartitionAttributesImpl();
> attributes.setColocatedWith(PARENT_REGION_NAME);
> Region<Object, Object> childRegion = Objects.requireNonNull(ClusterStartupRule.getCache())
> .createRegionFactory(RegionShortcut.PARTITION).setPartitionAttributes(attributes)
> .create(CHILD_REGION_NAME);
> IntStream.range(0, 500).forEach(i -> childRegion.put("key" + i, "value" + 1));
> });
> server2.invoke(() -> {
> Objects.requireNonNull(ClusterStartupRule.getCache())
> .createRegionFactory(RegionShortcut.PARTITION).create(PARENT_REGION_NAME);
> PartitionAttributesImpl attributes = new PartitionAttributesImpl();
> attributes.setColocatedWith(PARENT_REGION_NAME);
> Objects.requireNonNull(ClusterStartupRule.getCache())
> .createRegionFactory(RegionShortcut.PARTITION).setPartitionAttributes(attributes)
> .create(CHILD_REGION_NAME);
> });
> locator.waitUntilRegionIsReadyOnExactlyThisManyServers("/" + PARENT_REGION_NAME, 2);
> locator.waitUntilRegionIsReadyOnExactlyThisManyServers("/" + CHILD_REGION_NAME, 2);
> gfsh.connectAndVerify(locator);
> Map<String, List<String>> rebalanceResult = gfsh.executeAndAssertThat("rebalance")
> .statusIsSuccess().hasTableSection().getActual().getContent();
> assertThat(rebalanceResult.get("Value").get(9)).isEqualTo("2");
> }
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)