This is an automated email from the ASF dual-hosted git repository.
nnag pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new 784327a328 Revert "GEODE-9632: Allow INDEX_THRESHOLD_SIZE System
property to override CompiledValue.RESULT_LIMIT (#7010)" (#7787)
784327a328 is described below
commit 784327a328bf8ec31305b3375261001e3b00c3a7
Author: Nabarun Nag <[email protected]>
AuthorDate: Wed Jun 8 19:54:40 2022 -0700
Revert "GEODE-9632: Allow INDEX_THRESHOLD_SIZE System property to override
CompiledValue.RESULT_LIMIT (#7010)" (#7787)
This reverts commit 67359dcd
---
.../query/functional/LimitClauseJUnitTest.java | 20 +-
.../NonDistinctOrderByReplicatedJUnitTest.java | 2 +-
.../functional/OrderByReplicatedJUnitTest.java | 2 +-
.../internal/AbstractGroupOrRangeJunction.java | 4 +
.../geode/cache/query/internal/QueryUtils.java | 5 -
.../query/internal/index/CompactRangeIndex.java | 9 -
.../cache/query/internal/index/HashIndex.java | 4 -
.../cache/query/internal/index/IndexManager.java | 2 -
.../query/internal/index/PrimaryKeyIndex.java | 12 +-
.../cache/query/internal/index/RangeIndex.java | 4 -
.../query/dunit/QueryWithRangeIndexDUnitTest.java | 206 ---------------------
11 files changed, 18 insertions(+), 252 deletions(-)
diff --git
a/geode-core/src/integrationTest/java/org/apache/geode/cache/query/functional/LimitClauseJUnitTest.java
b/geode-core/src/integrationTest/java/org/apache/geode/cache/query/functional/LimitClauseJUnitTest.java
index 9e4a635049..06a494133a 100644
---
a/geode-core/src/integrationTest/java/org/apache/geode/cache/query/functional/LimitClauseJUnitTest.java
+++
b/geode-core/src/integrationTest/java/org/apache/geode/cache/query/functional/LimitClauseJUnitTest.java
@@ -673,7 +673,7 @@ public class LimitClauseJUnitTest {
assertEquals(5, result.size());
SelectResults wrapper = result;
assertEquals(5, wrapper.asSet().size());
- assertFalse(observer.limitAppliedAtIndex);
+ assertTrue(observer.limitAppliedAtIndex);
} catch (Exception e) {
CacheUtils.getLogger().error(e);
fail(e.toString());
@@ -710,7 +710,7 @@ public class LimitClauseJUnitTest {
assertEquals(5, result.size());
SelectResults wrapper = result;
assertEquals(5, wrapper.asSet().size());
- assertFalse(observer.limitAppliedAtIndex);
+ assertTrue(observer.limitAppliedAtIndex);
} catch (Exception e) {
CacheUtils.getLogger().error(e);
fail(e.toString());
@@ -754,7 +754,7 @@ public class LimitClauseJUnitTest {
assertEquals(5, result.size());
SelectResults wrapper = result;
assertEquals(5, wrapper.asSet().size());
- assertFalse(observer.limitAppliedAtIndex);
+ assertTrue(observer.limitAppliedAtIndex);
} catch (Exception e) {
CacheUtils.getLogger().error(e);
fail(e.toString());
@@ -799,7 +799,7 @@ public class LimitClauseJUnitTest {
assertEquals(5, result.size());
SelectResults wrapper = result;
assertEquals(5, wrapper.asSet().size());
- assertFalse(observer.limitAppliedAtIndex);
+ assertTrue(observer.limitAppliedAtIndex);
} catch (Exception e) {
CacheUtils.getLogger().error(e);
fail(e.toString());
@@ -837,7 +837,7 @@ public class LimitClauseJUnitTest {
SelectResults wrapper = result;
assertEquals(5, wrapper.asSet().size());
assertTrue(wrapper.getCollectionType().getElementType() instanceof
StructType);
- assertFalse(observer.limitAppliedAtIndex);
+ assertTrue(observer.limitAppliedAtIndex);
} catch (Exception e) {
CacheUtils.getLogger().error(e);
fail(e.toString());
@@ -919,7 +919,7 @@ public class LimitClauseJUnitTest {
assertEquals(5, result.size());
SelectResults wrapper = result;
assertEquals(5, wrapper.asSet().size());
- assertFalse(observer.limitAppliedAtIndex);
+ assertTrue(observer.limitAppliedAtIndex);
} catch (Exception e) {
CacheUtils.getLogger().error(e);
fail(e.toString());
@@ -1051,7 +1051,7 @@ public class LimitClauseJUnitTest {
SelectResults wrapper = result;
assertEquals(10, wrapper.asSet().size());
assertFalse(observer.limitAppliedAtIndex &&
observer.indexName.equals("idIndex"));
- assertFalse(observer.limitAppliedAtIndex &&
observer.indexName.equals("statusIndex"));
+ assertTrue(observer.limitAppliedAtIndex &&
observer.indexName.equals("statusIndex"));
} catch (Exception e) {
CacheUtils.getLogger().error(e);
fail(e.toString());
@@ -1130,7 +1130,7 @@ public class LimitClauseJUnitTest {
query = qs.newQuery(qstr);
result = (SelectResults) query.execute();
assertEquals(10, result.size());
- assertFalse(observer.limitAppliedAtIndex &&
observer.indexName.equals("statusIndex"));
+ assertTrue(observer.limitAppliedAtIndex &&
observer.indexName.equals("statusIndex"));
}
} catch (Exception e) {
CacheUtils.getLogger().error(e);
@@ -1528,7 +1528,7 @@ public class LimitClauseJUnitTest {
assertNotNull(idIndex);
SelectResults resultsWithIndex = (SelectResults) query.execute();
- assertFalse(observer.limitAppliedAtIndex);
+ assertTrue(observer.limitAppliedAtIndex);
assertEquals(5, resultsWithIndex.size());
}
@@ -1753,7 +1753,7 @@ public class LimitClauseJUnitTest {
assertNotNull(idIndex);
SelectResults resultsWithIndex = (SelectResults) query.execute();
- assertFalse(observer.limitAppliedAtIndex);
+ assertTrue(observer.limitAppliedAtIndex);
assertEquals(5, resultsWithIndex.size());
}
diff --git
a/geode-core/src/integrationTest/java/org/apache/geode/cache/query/functional/NonDistinctOrderByReplicatedJUnitTest.java
b/geode-core/src/integrationTest/java/org/apache/geode/cache/query/functional/NonDistinctOrderByReplicatedJUnitTest.java
index f96fd35c4d..2a044dd661 100644
---
a/geode-core/src/integrationTest/java/org/apache/geode/cache/query/functional/NonDistinctOrderByReplicatedJUnitTest.java
+++
b/geode-core/src/integrationTest/java/org/apache/geode/cache/query/functional/NonDistinctOrderByReplicatedJUnitTest.java
@@ -188,7 +188,7 @@ public class NonDistinctOrderByReplicatedJUnitTest extends
NonDistinctOrderByTes
Region r1 = createRegion("portfolio1", Portfolio.class);
- for (int i = 0; i < 200; i++) {
+ for (int i = 0; i < 50; i++) {
r1.put(i + "", new Portfolio(i));
}
diff --git
a/geode-core/src/integrationTest/java/org/apache/geode/cache/query/functional/OrderByReplicatedJUnitTest.java
b/geode-core/src/integrationTest/java/org/apache/geode/cache/query/functional/OrderByReplicatedJUnitTest.java
index f8898c20bd..493a88e590 100644
---
a/geode-core/src/integrationTest/java/org/apache/geode/cache/query/functional/OrderByReplicatedJUnitTest.java
+++
b/geode-core/src/integrationTest/java/org/apache/geode/cache/query/functional/OrderByReplicatedJUnitTest.java
@@ -433,7 +433,7 @@ public class OrderByReplicatedJUnitTest extends
OrderByTestImplementation {
Region r1 = createRegion("portfolio1", Portfolio.class);
- for (int i = 0; i < 200; i++) {
+ for (int i = 0; i < 50; i++) {
r1.put(i + "", new Portfolio(i));
}
diff --git
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/AbstractGroupOrRangeJunction.java
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/AbstractGroupOrRangeJunction.java
index 6f77927320..31060b0f62 100644
---
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/AbstractGroupOrRangeJunction.java
+++
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/AbstractGroupOrRangeJunction.java
@@ -35,11 +35,15 @@ import
org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.apache.geode.cache.query.internal.types.StructTypeImpl;
import org.apache.geode.cache.query.types.ObjectType;
import org.apache.geode.internal.Assert;
+import org.apache.geode.util.internal.GeodeGlossary;
public abstract class AbstractGroupOrRangeJunction extends
AbstractCompiledValue
implements Filter, OQLLexerTokenTypes {
/** left operand */
final CompiledValue[] _operands;
+ private static final int INDEX_RESULT_THRESHOLD_DEFAULT = 100;
+ public static final String INDX_THRESHOLD_PROP_STR =
+ GeodeGlossary.GEMFIRE_PREFIX + "Query.INDEX_THRESHOLD_SIZE";
private static final int indexThresholdSize =
Integer.getInteger(INDX_THRESHOLD_PROP_STR,
INDEX_RESULT_THRESHOLD_DEFAULT);
private int _operator = 0;
diff --git
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/QueryUtils.java
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/QueryUtils.java
index 3d798037b1..5967ddd23c 100644
---
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/QueryUtils.java
+++
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/QueryUtils.java
@@ -14,8 +14,6 @@
*/
package org.apache.geode.cache.query.internal;
-import static
org.apache.geode.cache.query.internal.CompiledValue.indexThresholdSize;
-
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
@@ -669,9 +667,6 @@ public class QueryUtils {
limit = context.cacheGet(CompiledValue.RESULT_LIMIT) != null
? (Integer) context.cacheGet(CompiledValue.RESULT_LIMIT) : -1;
}
- if (limit != -1 && limit < indexThresholdSize) {
- limit = indexThresholdSize;
- }
return limit;
}
diff --git
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/CompactRangeIndex.java
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/CompactRangeIndex.java
index 6ba7f30131..5d27434488 100644
---
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/CompactRangeIndex.java
+++
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/CompactRangeIndex.java
@@ -14,8 +14,6 @@
*/
package org.apache.geode.cache.query.internal.index;
-import static
org.apache.geode.cache.query.internal.CompiledValue.indexThresholdSize;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
@@ -95,7 +93,6 @@ public class CompactRangeIndex extends AbstractIndex {
private final IndexStore indexStore;
-
@MutableForTesting
static boolean TEST_ALWAYS_UPDATE_IN_PROGRESS = false;
@@ -484,9 +481,6 @@ public class CompactRangeIndex extends AbstractIndex {
Boolean applyLimit = (Boolean)
context.cacheGet(CompiledValue.CAN_APPLY_LIMIT_AT_INDEX);
if (applyLimit != null && applyLimit) {
limit = (Integer) context.cacheGet(CompiledValue.RESULT_LIMIT);
- if (limit < indexThresholdSize) {
- limit = indexThresholdSize;
- }
}
Boolean orderByClause = (Boolean)
context.cacheGet(CompiledValue.CAN_APPLY_ORDER_BY_AT_INDEX);
@@ -521,9 +515,6 @@ public class CompactRangeIndex extends AbstractIndex {
Boolean applyLimit = (Boolean)
context.cacheGet(CompiledValue.CAN_APPLY_LIMIT_AT_INDEX);
if (applyLimit != null && applyLimit) {
limit = (Integer) context.cacheGet(CompiledValue.RESULT_LIMIT);
- if (limit != -1 && limit < indexThresholdSize) {
- limit = indexThresholdSize;
- }
}
Boolean orderByClause = (Boolean)
context.cacheGet(CompiledValue.CAN_APPLY_ORDER_BY_AT_INDEX);
diff --git
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/HashIndex.java
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/HashIndex.java
index d98fee6d3a..06e818f111 100755
---
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/HashIndex.java
+++
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/HashIndex.java
@@ -15,7 +15,6 @@
package org.apache.geode.cache.query.internal.index;
import static java.lang.System.lineSeparator;
-import static
org.apache.geode.cache.query.internal.CompiledValue.indexThresholdSize;
import java.util.ArrayList;
import java.util.Collection;
@@ -494,9 +493,6 @@ public class HashIndex extends AbstractIndex {
Boolean applyLimit = (Boolean)
context.cacheGet(CompiledValue.CAN_APPLY_LIMIT_AT_INDEX);
if (applyLimit != null && applyLimit) {
limit = (Integer) context.cacheGet(CompiledValue.RESULT_LIMIT);
- if (limit != -1 && limit < indexThresholdSize) {
- limit = indexThresholdSize;
- }
}
Boolean orderByClause = (Boolean)
context.cacheGet(CompiledValue.CAN_APPLY_ORDER_BY_AT_INDEX);
diff --git
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/IndexManager.java
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/IndexManager.java
index a297c3af20..7b6b01af4b 100644
---
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/IndexManager.java
+++
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/IndexManager.java
@@ -86,8 +86,6 @@ public class IndexManager {
public static final int RECREATE_INDEX = 4;
private final InternalCache cache;
protected final Region region;
- String indexThresholdSize =
- System.getProperty(GeodeGlossary.GEMFIRE_PREFIX +
"Query.INDEX_THRESHOLD_SIZE");
private final boolean isOverFlowToDisk;
private final boolean offHeap;
diff --git
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/PrimaryKeyIndex.java
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/PrimaryKeyIndex.java
index 5dd05d90ba..8761fd8d3d 100644
---
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/PrimaryKeyIndex.java
+++
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/PrimaryKeyIndex.java
@@ -14,8 +14,6 @@
*/
package org.apache.geode.cache.query.internal.index;
-import static
org.apache.geode.cache.query.internal.CompiledValue.indexThresholdSize;
-
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
@@ -107,9 +105,6 @@ public class PrimaryKeyIndex extends AbstractIndex {
Boolean applyLimit = (Boolean)
context.cacheGet(CompiledValue.CAN_APPLY_LIMIT_AT_INDEX);
if (applyLimit != null && applyLimit) {
limit = (Integer) context.cacheGet(CompiledValue.RESULT_LIMIT);
- if (limit != -1 && limit < indexThresholdSize) {
- limit = indexThresholdSize;
- }
}
QueryObserver observer = QueryObserverHolder.getInstance();
if (limit != -1 && results.size() == limit) {
@@ -186,11 +181,8 @@ public class PrimaryKeyIndex extends AbstractIndex {
Boolean applyLimit = (Boolean)
context.cacheGet(CompiledValue.CAN_APPLY_LIMIT_AT_INDEX);
- if (applyLimit != null && applyLimit) {
- limit = (Integer) context.cacheGet(CompiledValue.RESULT_LIMIT);
- if (limit != -1 && limit < indexThresholdSize) {
- limit = indexThresholdSize;
- }
+ if (applyLimit != null && applyLimit.booleanValue()) {
+ limit = ((Integer)
context.cacheGet(CompiledValue.RESULT_LIMIT)).intValue();
}
if (limit != -1 && results.size() == limit) {
observer.limitAppliedAtIndexLevel(this, limit, results);
diff --git
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/RangeIndex.java
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/RangeIndex.java
index a80f80e3cf..6504de4759 100644
---
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/RangeIndex.java
+++
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/RangeIndex.java
@@ -15,7 +15,6 @@
package org.apache.geode.cache.query.internal.index;
import static java.lang.Integer.MAX_VALUE;
-import static
org.apache.geode.cache.query.internal.CompiledValue.indexThresholdSize;
import static org.apache.geode.util.internal.UncheckedUtils.uncheckedCast;
import java.util.ArrayList;
@@ -1168,9 +1167,6 @@ public class RangeIndex extends AbstractIndex {
Boolean applyLimit = (Boolean)
context.cacheGet(CompiledValue.CAN_APPLY_LIMIT_AT_INDEX);
if (applyLimit != null && applyLimit) {
limit = (Integer) context.cacheGet(CompiledValue.RESULT_LIMIT);
- if (limit != -1 && limit < indexThresholdSize) {
- limit = indexThresholdSize;
- }
}
Boolean orderByClause = (Boolean)
context.cacheGet(CompiledValue.CAN_APPLY_ORDER_BY_AT_INDEX);
diff --git
a/geode-cq/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryWithRangeIndexDUnitTest.java
b/geode-cq/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryWithRangeIndexDUnitTest.java
deleted file mode 100644
index 99e7a78244..0000000000
---
a/geode-cq/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryWithRangeIndexDUnitTest.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
contributor license
- * agreements. See the NOTICE file distributed with this work for additional
information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache
License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express
- * or implied. See the License for the specific language governing permissions
and limitations under
- * the License.
- */
-
-package org.apache.geode.cache.query.dunit;
-
-import static org.apache.geode.cache.Region.SEPARATOR;
-import static
org.apache.geode.distributed.ConfigurationProperties.HTTP_SERVICE_PORT;
-import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER;
-import static
org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_PORT;
-import static
org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_START;
-import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
-import static
org.apache.geode.internal.AvailablePortHelper.getRandomAvailableTCPPorts;
-import static org.apache.geode.internal.lang.SystemProperty.GEMFIRE_PREFIX;
-import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
-import static org.apache.geode.test.dunit.VM.getVM;
-import static org.apache.geode.test.dunit.VM.getVMId;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.io.File;
-import java.io.Serializable;
-import java.util.HashMap;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-
-import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheFactory;
-import org.apache.geode.cache.Region;
-import org.apache.geode.cache.query.QueryService;
-import org.apache.geode.cache.query.data.Portfolio;
-import org.apache.geode.distributed.LocatorLauncher;
-import org.apache.geode.distributed.ServerLauncher;
-import org.apache.geode.distributed.internal.InternalLocator;
-import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.rules.DistributedRule;
-import org.apache.geode.test.junit.rules.GfshCommandRule;
-import
org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
-
-@SuppressWarnings("ALL")
-public class QueryWithRangeIndexDUnitTest implements Serializable {
-
- @Rule
- public transient GfshCommandRule gfsh = new GfshCommandRule();
-
- @Rule
- public DistributedRule distributedRule = new DistributedRule();
-
- @Rule
- public SerializableTemporaryFolder temporaryFolder = new
SerializableTemporaryFolder();
-
- private static final String locatorName = "locator";
- private static final String serverName = "server";
-
- private File locatorDir;
- private File serverDir;
-
- private int locatorPort;
- private int locatorJmxPort;
- private int serverPort;
-
- private String locators;
-
- private VM server;
-
- private static final String regionName = "exampleRegion";
-
- @Before
- public void setUp() throws Exception {
- VM locator = getVM(0);
- server = getVM(1);
-
- locatorDir = temporaryFolder.newFolder(locatorName);
- serverDir = temporaryFolder.newFolder(serverName);
-
- int[] port = getRandomAvailableTCPPorts(3);
- locatorPort = port[0];
- locatorJmxPort = port[1];
- serverPort = port[2];
-
- locators = "localhost[" + locatorPort + "]";
-
- locator.invoke(() -> startLocator(locatorDir, locatorPort,
locatorJmxPort));
-
- gfsh.connectAndVerify(locatorJmxPort, GfshCommandRule.PortType.jmxManager);
-
- server.invoke(() -> startServer(serverDir, serverPort, locators));
- }
-
- @Test
- public void testQueryWithWildcardAndIndexOnAttributeFromHashMap() {
- gfsh.executeAndAssertThat("create region --name=" + regionName + "
--type=PARTITION")
- .statusIsSuccess();
-
- server.invoke(() -> {
- Cache cache = CacheFactory.getAnyInstance();
- QueryService cacheQS = cache.getQueryService();
- cacheQS.createIndex("IdIndex", "value.positions['SUN']",
- SEPARATOR + regionName + ".entrySet");
- Region<Integer, Portfolio> region =
- cache.getRegion(regionName);
-
- for (int i = 1; i < 10001; i++) {
- Portfolio p1 = new Portfolio(i, i);
- p1.positions = new HashMap<>();
- p1.positions.put("IBM", "something");
- if (i == 1) {
- p1.positions.put("SUN", "something");
- } else {
- p1.positions.put("SUN", "some");
- }
- region.put(i, p1);
- }
- });
-
- String query = "query --query=\"<trace> select e.key, e.value from " +
- SEPARATOR + regionName + ".entrySet e where e.value.positions['SUN']
like 'somethin%'\"";
-
- String cmdResult =
String.valueOf(gfsh.executeAndAssertThat(query).getResultModel());
- assertThat(cmdResult).contains("\"Rows\":\"1\"");
- assertThat(cmdResult).contains("indexesUsed(1):IdIndex(Results: 10000)");
- }
-
- @Test
- public void testLimitIsAppliedOnlyOnQueryResults() {
- gfsh.executeAndAssertThat("create region --name=" + regionName + "
--type=PARTITION")
- .statusIsSuccess();
-
- server.invoke(() -> {
- Cache cache = CacheFactory.getAnyInstance();
- QueryService cacheQS = cache.getQueryService();
- cacheQS.createIndex("IdIndex", "value.positions['SUN']",
- SEPARATOR + regionName + ".entrySet");
- Region<Integer, Portfolio> region =
- cache.getRegion(regionName);
-
- for (int i = 1; i < 10001; i++) {
- Portfolio p1 = new Portfolio(i, i);
- p1.positions = new HashMap<>();
- p1.positions.put("IBM", "something");
- if (i % 2 == 0) {
- p1.positions.put("SUN", "something");
- } else {
- p1.positions.put("SUN", "some");
- }
- region.put(i, p1);
- }
- });
-
- String query = "query --query=\"<trace> select e.key, e.value from " +
- SEPARATOR + regionName
- + ".entrySet e where e.value.positions['SUN'] like 'somethin%' limit
5\"";
-
- String cmdResult =
String.valueOf(gfsh.executeAndAssertThat(query).getResultModel());
- assertThat(cmdResult).contains("\"Rows\":\"5\"");
- assertThat(cmdResult).contains("indexesUsed(1):IdIndex(Results: 10000)");
- }
-
- private static void startLocator(File workingDirectory, int locatorPort,
- int jmxPort) {
- LocatorLauncher locatorLauncher = new LocatorLauncher.Builder()
- .setMemberName(locatorName)
- .setPort(locatorPort)
- .setWorkingDirectory(workingDirectory.getAbsolutePath())
- .set(JMX_MANAGER, "true")
- .set(JMX_MANAGER_PORT, String.valueOf(jmxPort))
- .set(JMX_MANAGER_START, "true")
- .build();
-
- locatorLauncher.start();
-
- await().untilAsserted(() -> {
- InternalLocator locator = (InternalLocator) locatorLauncher.getLocator();
- assertThat(locator.isSharedConfigurationRunning())
- .as("Locator shared configuration is running on locator" + getVMId())
- .isTrue();
- });
- }
-
- private static void startServer(File workingDirectory, int serverPort,
- String locators) {
- System.setProperty(GEMFIRE_PREFIX + "Query.INDEX_THRESHOLD_SIZE", "10000");
- ServerLauncher serverLauncher = new ServerLauncher.Builder()
- .setDeletePidFileOnStop(Boolean.TRUE)
- .setMemberName(serverName)
- .setServerPort(serverPort)
- .setWorkingDirectory(workingDirectory.getAbsolutePath())
- .set(HTTP_SERVICE_PORT, "0")
- .set(LOCATORS, locators)
- .build();
-
- serverLauncher.start();
- }
-}