You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2020/10/05 17:21:07 UTC
[lucene-solr] 02/03: @942 Revert a few things.
This is an automated email from the ASF dual-hosted git repository.
markrmiller pushed a commit to branch reference_impl_dev
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 5f6c6554f9e12a22c6cc53fcfbdb2de975a403b8
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Mon Oct 5 11:25:03 2020 -0500
@942 Revert a few things.
---
.../org/apache/solr/cloud/OverseerTaskProcessor.java | 20 ++++++++++++--------
.../OverseerCollectionMessageHandler.java | 2 +-
.../solr/configsets/_default/conf/solrconfig.xml | 2 +-
.../org/apache/solr/common/PerThreadExecService.java | 2 +-
4 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java b/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java
index 7a3ee82..4078432 100644
--- a/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java
+++ b/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java
@@ -251,13 +251,13 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
continue;
}
OverseerMessageHandler messageHandler = selector.selectOverseerMessageHandler(message);
-// OverseerMessageHandler.Lock lock = messageHandler.lockTask(message, taskBatch);
-// if (lock == null) {
-// log.debug("Exclusivity check failed for [{}]", message.toString());
-// // we may end crossing the size of the MAX_BLOCKED_TASKS. They are fine
-// if (blockedTasks.size() < MAX_BLOCKED_TASKS) blockedTasks.put(head.getId(), head);
-// continue;
-// }
+ OverseerMessageHandler.Lock lock = messageHandler.lockTask(message, taskBatch);
+ if (lock == null) {
+ log.debug("Exclusivity check failed for [{}]", message.toString());
+ // we may end crossing the size of the MAX_BLOCKED_TASKS. They are fine
+ if (blockedTasks.size() < MAX_BLOCKED_TASKS) blockedTasks.put(head.getId(), head);
+ continue;
+ }
try {
markTaskAsRunning(head, asyncId);
if (log.isDebugEnabled()) {
@@ -273,7 +273,7 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, e);
}
if (log.isDebugEnabled()) log.debug(messageHandler.getName() + ": Get the message id:" + head.getId() + " message:" + message.toString());
- Runner runner = new Runner(messageHandler, message, operation, head, null);
+ Runner runner = new Runner(messageHandler, message, operation, head, lock);
taskFutures.put(runner, ParWork.getRootSharedExecutor().submit(runner));
}
@@ -420,6 +420,7 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
protected class Runner implements Runnable {
final ZkNodeProps message;
final String operation;
+ private final OverseerMessageHandler.Lock lock;
volatile OverseerSolrResponse response;
final QueueEvent head;
final OverseerMessageHandler messageHandler;
@@ -429,6 +430,7 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
this.operation = operation;
this.head = head;
this.messageHandler = messageHandler;
+ this.lock = lock;
}
@@ -486,6 +488,8 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
return;
}
log.error("Exception running task", e);
+ } finally {
+ lock.unlock();
}
if (log.isDebugEnabled()) {
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java
index c34d0ae..b82af75 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java
@@ -906,7 +906,7 @@ public class OverseerCollectionMessageHandler implements OverseerMessageHandler,
private LockTree.Session lockSession;
@Override
- public synchronized Lock lockTask(ZkNodeProps message, OverseerTaskProcessor.TaskBatch taskBatch) {
+ public Lock lockTask(ZkNodeProps message, OverseerTaskProcessor.TaskBatch taskBatch) {
if (lockSession == null || sessionId != taskBatch.getId()) {
//this is always called in the same thread.
//Each batch is supposed to have a new taskBatch
diff --git a/solr/server/solr/configsets/_default/conf/solrconfig.xml b/solr/server/solr/configsets/_default/conf/solrconfig.xml
index 6ae79d7..e1855f8 100644
--- a/solr/server/solr/configsets/_default/conf/solrconfig.xml
+++ b/solr/server/solr/configsets/_default/conf/solrconfig.xml
@@ -284,7 +284,7 @@
-->
<updateLog>
<str name="dir">${solr.ulog.dir:}</str>
- <int name="numVersionBuckets">${solr.ulog.numVersionBuckets:32768}</int>
+ <int name="numVersionBuckets">${solr.ulog.numVersionBuckets:65536}</int>
</updateLog>
<!-- AutoCommit
diff --git a/solr/solrj/src/java/org/apache/solr/common/PerThreadExecService.java b/solr/solrj/src/java/org/apache/solr/common/PerThreadExecService.java
index b8dc010..4f67e31 100644
--- a/solr/solrj/src/java/org/apache/solr/common/PerThreadExecService.java
+++ b/solr/solrj/src/java/org/apache/solr/common/PerThreadExecService.java
@@ -25,7 +25,7 @@ public class PerThreadExecService extends AbstractExecutorService {
private static final Logger log = LoggerFactory
.getLogger(MethodHandles.lookup().lookupClass());
- private static final int MAX_AVAILABLE = Math.max(ParWork.PROC_COUNT / 4, 2);
+ private static final int MAX_AVAILABLE = Math.max(ParWork.PROC_COUNT / 2, 3);
private final Semaphore available = new Semaphore(MAX_AVAILABLE, false);
private final ExecutorService service;