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/07/26 21:22:07 UTC
[lucene-solr] branch reference_impl updated: @360 it really whips
the llama's ...
This is an automated email from the ASF dual-hosted git repository.
markrmiller pushed a commit to branch reference_impl
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/reference_impl by this push:
new 6f4e915 @360 it really whips the llama's ...
6f4e915 is described below
commit 6f4e915f5ce23d4e5eb43cb3ce3b8de69b8e0776
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Sun Jul 26 16:21:44 2020 -0500
@360 it really whips the llama's ...
---
.../src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java | 7 ++++++-
.../src/java/org/apache/solr/update/UpdateShardHandler.java | 10 ++--------
.../org/apache/solr/client/solrj/impl/Http2SolrClient.java | 9 +++++++++
3 files changed, 17 insertions(+), 9 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java b/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java
index 26116d9..cbfd097 100644
--- a/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java
+++ b/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java
@@ -120,7 +120,7 @@ public class ZkStateWriter {
prevState = reader.getClusterState();
stats = new Stats();
numUpdates = 0;
- lastUpdatedTime = 0;
+ lastUpdatedTime = -1;
continue;
// log.info("BadVersion");
// throw new AlreadyClosedException();
@@ -174,6 +174,8 @@ public class ZkStateWriter {
if (log.isDebugEnabled()) {
log.debug("writePendingUpdates() - start updates.size={}", updates.size());
}
+
+
assert prevState != null;
Timer.Context timerContext = stats.time("update_state");
boolean success = false;
@@ -186,6 +188,9 @@ public class ZkStateWriter {
String path = ZkStateReader.getCollectionPath(name);
DocCollection c = entry.getValue();
int prevVersion = -1;
+ if (lastUpdatedTime == -1) {
+ prevVersion = 0;
+ }
Stat stat = new Stat();
try {
diff --git a/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java b/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java
index 5e4e9a9..fd9396e 100644
--- a/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java
+++ b/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java
@@ -35,12 +35,10 @@ import org.apache.solr.common.ParWork;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.util.ExecutorUtil;
-import org.apache.solr.common.util.IOUtils;
import org.apache.solr.common.util.ObjectReleaseTracker;
import org.apache.solr.common.util.SolrNamedThreadFactory;
import org.apache.solr.core.SolrInfoBean;
import org.apache.solr.metrics.SolrMetricManager;
-import org.apache.solr.metrics.SolrMetricProducer;
import org.apache.solr.metrics.SolrMetricsContext;
import org.apache.solr.security.HttpClientBuilderPlugin;
import org.apache.solr.update.processor.DistributedUpdateProcessor;
@@ -65,8 +63,6 @@ public class UpdateShardHandler implements SolrInfoBean {
private ExecutorService recoveryExecutor;
- private final InstrumentedPoolingHttpClientConnectionManager updateOnlyConnectionManager;
-
private final InstrumentedPoolingHttpClientConnectionManager defaultConnectionManager;
private final InstrumentedHttpRequestExecutor httpRequestExecutor;
@@ -82,12 +78,9 @@ public class UpdateShardHandler implements SolrInfoBean {
public UpdateShardHandler(UpdateShardHandlerConfig cfg) {
ObjectReleaseTracker.track(this);
- updateOnlyConnectionManager = new InstrumentedPoolingHttpClientConnectionManager(HttpClientUtil.getSocketFactoryRegistryProvider().getSocketFactoryRegistry());
defaultConnectionManager = new InstrumentedPoolingHttpClientConnectionManager(HttpClientUtil.getSocketFactoryRegistryProvider().getSocketFactoryRegistry());
ModifiableSolrParams clientParams = new ModifiableSolrParams();
if (cfg != null ) {
- updateOnlyConnectionManager.setMaxTotal(cfg.getMaxUpdateConnections());
- updateOnlyConnectionManager.setDefaultMaxPerRoute(cfg.getMaxUpdateConnectionsPerHost());
defaultConnectionManager.setMaxTotal(cfg.getMaxUpdateConnections());
defaultConnectionManager.setDefaultMaxPerRoute(cfg.getMaxUpdateConnectionsPerHost());
clientParams.set(HttpClientUtil.PROP_SO_TIMEOUT, cfg.getDistributedSocketTimeout());
@@ -114,6 +107,7 @@ public class UpdateShardHandler implements SolrInfoBean {
.maxConnectionsPerHost(cfg.getMaxUpdateConnectionsPerHost());
}
updateOnlyClient = updateOnlyClientBuilder.markInternalRequest().build();
+ updateOnlyClient.enableCloseLock();
updateOnlyClient.addListenerFactory(updateHttpListenerFactory);
Set<String> queryParams = new HashSet<>(2);
queryParams.add(DistributedUpdateProcessor.DISTRIB_FROM);
@@ -217,7 +211,7 @@ public class UpdateShardHandler implements SolrInfoBean {
if (recoveryExecutor != null) {
recoveryExecutor.shutdownNow();
}
-
+ updateOnlyClient.disableCloseLock();
try (ParWork closer = new ParWork(this, true)) {
closer.collect(() -> {
HttpClientUtil.close(defaultClient);
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
index 49b706f..9c48636 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
@@ -861,6 +861,14 @@ public class Http2SolrClient extends SolrClient {
return request(request, collection, null);
}
+ public void enableCloseLock() {
+ closeTracker.enableCloseLock();
+ }
+
+ public void disableCloseLock() {
+ closeTracker.disableCloseLock();
+ }
+
public void setRequestWriter(RequestWriter requestWriter) {
this.requestWriter = requestWriter;
}
@@ -1109,6 +1117,7 @@ public class Http2SolrClient extends SolrClient {
public byte[] bytes;
}
+
public static SimpleResponse GET(String url, Http2SolrClient httpClient)
throws InterruptedException, ExecutionException, TimeoutException {
return doGet(url, httpClient);