GEODE-2384: not to create AEQ for accessor

Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/1aec1f83
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/1aec1f83
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/1aec1f83

Branch: refs/heads/feature/GEODE-1930-2
Commit: 1aec1f835003f4ccdd73b7e811686bb58c8f32ea
Parents: 72739d8
Author: zhouxh <gz...@pivotal.io>
Authored: Mon Jan 30 16:36:17 2017 -0800
Committer: zhouxh <gz...@pivotal.io>
Committed: Tue Jan 31 13:58:34 2017 -0800

----------------------------------------------------------------------
 .../cache/lucene/internal/LuceneIndexImpl.java  |  8 ++++
 .../geode/cache/lucene/LuceneQueriesPRBase.java |  6 ++-
 .../LuceneQueriesPeerPROverflowDUnitTest.java   |  4 +-
 .../LuceneQueriesPeerPRPersistentDUnitTest.java | 41 ++++++++++++++++++++
 .../cache/lucene/test/LuceneTestUtilities.java  |  6 +++
 5 files changed, 62 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/1aec1f83/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexImpl.java
----------------------------------------------------------------------
diff --git 
a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexImpl.java
 
b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexImpl.java
index 0b6685d..8d24a83 100644
--- 
a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexImpl.java
+++ 
b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexImpl.java
@@ -166,6 +166,11 @@ public abstract class LuceneIndexImpl implements 
InternalLuceneIndex {
     AsyncEventQueueFactoryImpl factory =
         (AsyncEventQueueFactoryImpl) cache.createAsyncEventQueueFactory();
     if (dataRegion instanceof PartitionedRegion) {
+      PartitionedRegion pr = (PartitionedRegion) dataRegion;
+      if (pr.getPartitionAttributes().getLocalMaxMemory() == 0) {
+        // accessor will not create AEQ
+        return null;
+      }
       factory.setParallel(true); // parallel AEQ for PR
     } else {
       factory.setParallel(false); // TODO: not sure if serial AEQ working or 
not
@@ -183,6 +188,9 @@ public abstract class LuceneIndexImpl implements 
InternalLuceneIndex {
   }
 
   private AsyncEventQueue createAEQ(AsyncEventQueueFactoryImpl factory) {
+    if (factory == null) {
+      return null;
+    }
     LuceneEventListener listener = new LuceneEventListener(repositoryManager);
     String aeqId = LuceneServiceImpl.getUniqueIndexName(getName(), regionPath);
     AsyncEventQueue indexQueue = factory.create(aeqId, listener);

http://git-wip-us.apache.org/repos/asf/geode/blob/1aec1f83/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesPRBase.java
----------------------------------------------------------------------
diff --git 
a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesPRBase.java
 
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesPRBase.java
index 1e965da..c877f93 100644
--- 
a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesPRBase.java
+++ 
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesPRBase.java
@@ -93,7 +93,8 @@ public abstract class LuceneQueriesPRBase extends 
LuceneQueriesBase {
     putEntryInEachBucket();
 
     dataStore2.invoke(() -> initDataStore(createIndex));
-    assertTrue(waitForFlushBeforeExecuteTextSearch(accessor, 60000));
+    assertTrue(waitForFlushBeforeExecuteTextSearch(dataStore2, 60000)); // 
accessor?
+    assertTrue(waitForFlushBeforeExecuteTextSearch(dataStore1, 60000));
 
     rebalanceRegion(dataStore2);
 
@@ -117,7 +118,8 @@ public abstract class LuceneQueriesPRBase extends 
LuceneQueriesBase {
     rebalanceRegion(dataStore2);
     dataStore1.invoke(() -> LuceneTestUtilities.resumeSender(getCache()));
 
-    assertTrue(waitForFlushBeforeExecuteTextSearch(accessor, 60000));
+    assertTrue(waitForFlushBeforeExecuteTextSearch(dataStore2, 60000)); // 
accessor?
+    assertTrue(waitForFlushBeforeExecuteTextSearch(dataStore1, 60000));
 
     executeTextSearch(accessor, "world", "text", NUM_BUCKETS);
   }

http://git-wip-us.apache.org/repos/asf/geode/blob/1aec1f83/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesPeerPROverflowDUnitTest.java
----------------------------------------------------------------------
diff --git 
a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesPeerPROverflowDUnitTest.java
 
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesPeerPROverflowDUnitTest.java
index 254156f..86ce713 100644
--- 
a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesPeerPROverflowDUnitTest.java
+++ 
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesPeerPROverflowDUnitTest.java
@@ -39,6 +39,8 @@ public class LuceneQueriesPeerPROverflowDUnitTest extends 
LuceneQueriesPRBase {
 
   @Override
   protected void initAccessor(final SerializableRunnableIF createIndex) throws 
Exception {
-    initDataStore(createIndex);
+    createIndex.run();
+    getCache().createRegionFactory(RegionShortcut.PARTITION_PROXY)
+        
.setPartitionAttributes(getPartitionAttributes(true)).create(REGION_NAME);
   }
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/1aec1f83/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesPeerPRPersistentDUnitTest.java
----------------------------------------------------------------------
diff --git 
a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesPeerPRPersistentDUnitTest.java
 
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesPeerPRPersistentDUnitTest.java
new file mode 100644
index 0000000..4e809ce
--- /dev/null
+++ 
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesPeerPRPersistentDUnitTest.java
@@ -0,0 +1,41 @@
+/*
+ * 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.lucene;
+
+import static 
org.apache.geode.cache.lucene.test.LuceneTestUtilities.REGION_NAME;
+
+import org.apache.geode.cache.RegionShortcut;
+import org.apache.geode.test.dunit.SerializableRunnableIF;
+import org.apache.geode.test.junit.categories.DistributedTest;
+
+import org.junit.experimental.categories.Category;
+
+@Category(DistributedTest.class)
+public class LuceneQueriesPeerPRPersistentDUnitTest extends 
LuceneQueriesPRBase {
+
+  @Override
+  protected void initDataStore(final SerializableRunnableIF createIndex) 
throws Exception {
+    createIndex.run();
+    getCache().createRegionFactory(RegionShortcut.PARTITION_PERSISTENT)
+        
.setPartitionAttributes(getPartitionAttributes(false)).create(REGION_NAME);
+  }
+
+  @Override
+  protected void initAccessor(final SerializableRunnableIF createIndex) throws 
Exception {
+    createIndex.run();
+    getCache().createRegionFactory(RegionShortcut.PARTITION_PROXY)
+        
.setPartitionAttributes(getPartitionAttributes(true)).create(REGION_NAME);
+  }
+}

http://git-wip-us.apache.org/repos/asf/geode/blob/1aec1f83/geode-lucene/src/test/java/org/apache/geode/cache/lucene/test/LuceneTestUtilities.java
----------------------------------------------------------------------
diff --git 
a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/test/LuceneTestUtilities.java
 
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/test/LuceneTestUtilities.java
index c4081c5..9f062bb 100644
--- 
a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/test/LuceneTestUtilities.java
+++ 
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/test/LuceneTestUtilities.java
@@ -224,6 +224,9 @@ public class LuceneTestUtilities {
 
   public static void pauseSender(final Cache cache) {
     final AsyncEventQueueImpl queue = (AsyncEventQueueImpl) 
getIndexQueue(cache);
+    if (queue == null) {
+      return;
+    }
     queue.getSender().pause();
 
     AbstractGatewaySender sender = (AbstractGatewaySender) queue.getSender();
@@ -232,6 +235,9 @@ public class LuceneTestUtilities {
 
   public static void resumeSender(final Cache cache) {
     final AsyncEventQueueImpl queue = (AsyncEventQueueImpl) 
getIndexQueue(cache);
+    if (queue == null) {
+      return;
+    }
     queue.getSender().resume();
   }
 }

Reply via email to